day6总结

主要内容:

useradd与usermod对比

groupadd与groupmod对比

passwd与chage对比

gpasswd与groupmems对比

切换用户

chown与chgrp用法

一般权限与特殊权限

chmod用法


 

useradd创建用户的初始信息存放在/etc/login.defs/etc//default/useradd文件中。

   /etc/login.defs: 设置mail_dir目录、mail_file、密码最短时效,最长时效,警告时间,最小的UID,最大的UID。最大的GID以及最小的GID,是否创建家目录,umask

 

   /etc/default/useradd: 默认shell,家目录,skel目录,是否创建邮件目录。

注:家目录从/etc/skel/文件中复制文件。

 

4个配置文件:

/etc/passwd 用户信息 用户名:密码:用户id:组id:注释:家目录:bash

当用户有附加组时,是否会显示?不会显示,会显示在/etc/group中

/etc/group 组信息    组名:组id:密码:以该组为附加组的用户

/etc/shadow       用户名:密码:最近一次修改时间:最小使用时间:最大使用时间:警告时间

/etc/gshadow  组名:密码:管理员账户:以该组为附加组的用户名。  

 

newusers passwd格式的文件:批量创建用户

chpasswd 批量修改用户密码

 

useradd用法与usermod用法对比

useradd用法

usermod用法

-u   UID

指定新建用户的UID

-u UID 

修改新UID

-g   GID

指定新建用户的GID,必须存在

-g GID

修改新GID

-d HOME_DIR

指定家目录

-d HOME 

修改家目录,-m搬过来

-s  SHELL

指定shell

-s SHELLS

修改shell

-G  grp1,grp2

添加附加组

-l login_name 

新的名字

-N

不创建私用组做主组

-L 

锁定指定用户,密码栏增加!

 -r

创建系统用户

-U 

-U解锁用户,密码栏减少!

 -o

解除uid唯一性限制

-e 

指明用户账户过期日期

 -c comment

注释

-f

设定非活动期限

useradd -N user:创建一个用户user,不创建私用组作为主组,而使用users组作为主组。

userdel [option] …login:删除指定用户

-r删除指定用户,包括家目录。

 

id [option]… user

-u:UID    查看用户的UID

-g:GID    查看用户的GID

-G:Groups  查看用户的组

-n:Name   查看用户的名字

 

su  [options] [-] [user]

切换用户方式:

su username:非登录式切换,不会读取用户的配置文件,不改变当前的工作目录。

su – username:登录式切换,会读取用户的配置文件,切换至家目录,完全切换。

 

使用另一个用户执行命令:

su – UserName -c COMMAND

 

passwdchage用法对比

passwd用法

chage用法

-l

锁定指定用户

-l

显示密码策略

-u

解锁指定用户

-d

last_day

-e

强制用户下次修改密码

-E

过期时间

-n

密码最短使用期限

-m

密码最小使用期限

-x

密码最大使用期限

-M

密码最大使用期限

-w

提前多少天开始警告

-W

提前多少天开始警告

-i

非活动期限

-I

非活动期限

–stdin

从标准输入接收密码

chage -d 0 test1:下次登录强制重设密码。

 

groupadd

groupadd -g GID :创建组时指明GID

-r:创建系统组

groupmod

-n group_name:新名字

-g GID:新的GID

组删除:

groupdel group:当有组中有用户时,无法进行删除。

 

gpasswdgroupmems用法对比

gpasswd用法

groupmems用法

-a user group

user添加到指定组中

-a user

指定用户加入组中

-d user group

从指定组中移除user

-d user

从组中删除指定用户

-A user1,user2

设置有管理权限的user

-p

从组中清空用户

-l

显示组成员列表

newgrp:临时切换组。

groups username:查看用户属组信息。

 

文件权限:

chown:设置文件的所有者

chown [option]…[owner][:group] file:

chown user file修改属组

chown user : group file 也可以同时修改属组

chown :group file 也可以单独修改属组

-R 递归

chown –reference=RFILE FILE….  修改为与文件同样的权限。

 

chgrp:设置文件的属组信息。

chgrp [option] …group file:修改文件属组。

chgrp [option]…–reference=RFILE FILE..

-R 递归

 

文件的权限主要针对三类对象进行定义: owner: 属主, u group: 属组, g other: 其他 每个文件针对每类访问者都定义了三种权限: r: Readable w: Writable x: eXcutable

 

文件:

r: 可使用文件查看类工具获取其内容 

w: 可修改其内容 

x: 可以把此文件提请内核启动为一个进程  

目录:

r: 可以使用ls查看此目录中文件列表 

w: 可在此目录中创建文件,也可删除此目录中的文件 

x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录 

X:只给目录x权限,不给文件x权限

chmod用法:

chmod [options] 八进制数字(3位)file

-R:递归修改权限。

 

chmod [options] 字母模式 file

修改一类用户所有权限。

u=,g=,o= ,a= 

u+,u_,g+,o+,o-,a+,a-

 

chmod [options] –reference=RFILE FILE

 

新建文件和目录的默认权限:

umask:设置用户创建文件的默认权限。

新建FILE默认权限:666-umask

如果所得结果某位为奇数(存在执行位),权限加1

新建DIR权限:777-umask

非特权用户umask002

rootumask022

umask:查看umask

umask 3位数字:设定umask的值

umask -S模式方式显示umask

umask -p输出可被调用

全局设置:/etc/bashrc  用户设置:~/.bashrc

 

 

Linux文件系统上的特殊权限 

三种常用权限:r, w, x    user, group, other 

安全上下文 

前提:进程有属主和属组;文件有属主和属组

(1) 任何一个可执行程序文件能不能启动为进程:取决发起者 对程序文件是否拥有执行权限 

(2) 启动为进程之后,其进程的属主为发起者;进程的属组为 发起者所属的组

(3) 进程访问文件时的权限,取决于进程的发起者 

   (a)进程的发起者,同文件的属主:则应用文件属主权限

   (b) 进程的发起者,属于文件属组;则应用文件属组权限 

   (c) 应用文件“其它”权限

任何一个可执行程序文件能不能启动为进程:取决发起者对 程序文件是否拥有执行权限启动为进程之后,其进程的属主为原程序文件的属主。

 

SUID权限:

任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限。 

启动为进程之后,其进程的属主为原程序文件的属主(比如其它用户执行cat之后,这个进程的属主就变成了root

SUID只对二进制可执行程序有效,SUID设置在目录上无意义 

权限设定: chmod u+s FILE… chmod u-s FILE…

 

可执行文件上SGID权限

  任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限。  

  启动为进程之后,其进程的属主为原程序文件的属组。 

  权限设定: chmod g+s FILE… chmod g-s FILE…

 

   一旦某目录被设定了SGID,则对此目录有写权限的用户在此 目录中创建的文件所属的组为此目录的属组。 

   通常用于创建一个协作目录 

权限设定: chmod g+s DIR… chmod g-s DIR…

 

Sticky位:

 具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权,在目录设置Sticky 位,只有文件的所有者或root可以删除该文件。

 sticky 设置在文件上无意义 

     权限设定: chmod o+t DIR… chmod o-t DIR… 

4表示SUID, 2表示SGID,1表示Sticky

 

权限位映射

SUID: user,占据属主的执行权限位 s: 属主拥有x权限 S:属主没有x权限   4

  SGID: group,占据属组的执行权限位 s: group拥有x权限 Sgroup没有x权限  2

  Sticky: other,占据other的执行权限位 t: other拥有x权限 Tother没有x权限 1

 

chattr +i 不能删除,改名,更改 

chattr +a 只能增加 

lsattr 显示特定属性

 

setfacl命令:

   -b,–remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。

   -k,–remove-default:删除缺省的acl规则。如果没有缺省规则,将不提示。

   -n–no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。 

  –mask:重新计算有效权限,即使ACL mask被明确指定。 

-d–default:设定默认的acl规则。 

–restore=file:从文件恢复备份的acl规则(这些文件可由getfacl -R产生)。通过这种机制可以恢复整个目录树的acl规则。此参数不能和除–test以外的任何参数一同执行。 

–test:测试模式,不会改变任何文件的acl规则,操作后的acl规格将被列出。 

-R–recursive:递归的对所有文件及目录进行操作。 

-L–logical:跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录

-P–physical:跳过所有符号链接,包括符号链接文件。 

 –version:输出setfacl的版本号并退出。 

–help:输出帮助信息。 

 

     选项-m-x后边跟以acl规则。多条acl规则以逗号(,)隔开。选项-M-X用来从文件或标准输入读取acl规则。 

     选项–set–set-file用来设置文件或目录的acl规则,先前的设定将被覆盖。

     选项-m(–modify)-M(–modify-file)选项修改文件或目录的acl规则。 

     选项-x(–remove)-X(–remove-file)选项删除acl规则。

 

ACL组成部分:

Entry tag type:(标签入口类型)

   ACL_USER_OBJ:相当于Linuxfile_ownerpermission 

   ACL_USER:定义了额外的用户可以对此文件拥有的permission 

   ACL_GROUP_OBJ:相当于Linuxgrouppermission 

   ACL_GROUP:定义了额外的组可以对此文件拥有的permission

   ACL_MASK:定义了ACL_USER, ACL_GROUP_OBJACL_GROUP的最大权限  

   ACL_OTHER:相当于Linuxotherpermission

 

一开始文件没有ACL的额外属性:

 

 [root@localhost ~]# ls -l -rw-rw-r– 1 root admin 0 Jul 3 22:06 test.txt [root@localhost ~]# getfacl –omit-header ./test.txt 

 

user::rw- 

group::rw- 

other::r– 

 

 

设置格式:setfacl -m user:john:rw- ./test.txt

查看格式: getfacl –omit-header ./test.txt

 

我们先让用户john拥有对test.txt文件的读写权限: 

[root@localhost ~]# setfacl -m user:john:rw- ./test.txt

 [root@localhost ~]# getfacl –omit-header ./test.txt

 user::rw- 

user:john:rw- 

group::rw- 

mask::rw- 

other::r– 

 

这时我们就可以看到john用户在ACL里面已经拥有了对文件的读写权。

这个时候如果我们查看一下linuxpermission我们还会发现一个不一样的地方。 [root@localhost ~]# ls -l ./test.txt -rw-rw-r–+ 1 root admin 0 Jul 3 22:06 ./test.txt 

在文件permission的最后多了一个+号,当任何一个文件拥有了ACL_USER或者ACL_GROUP的值以后我们就可以称它为ACL文件,这个+号就是用来提示我们的。

我们还可以发现当一个文件拥有了ACL_USER或者ACL_GROUP的值时ACL_MASK同时也会被定义。 接下来我们来设置dev组拥有read permission

 [root@localhost ~]# setfacl -m group:dev:r– ./test.txt 

[root@localhost ~]# getfacl –omit-header ./test.txt 

user::rw- 

user:john:rw- 

group::rw- 

group:dev:r– 

mask::rw- 

other::r–

注意:在Linux file permission里面大家都知道比如对于rw-rw-r–来说当中的那个rw-是指文件组的permission. 但是在ACL里面这种情况只是在ACL_MASK不存在的情况下成立。如果文件有ACL_MASK值,那么当中那个rw-代表的就是mask值而不再是group permission了。

Default ACL:针对目录的。Access ACL针对文件。

设置格式:setfacl -d -m user:john:rw ./dir

 

注意:删除aclsetfacl -x不能删除+,应该使用chfacl才能彻底删除。

原创文章,作者:liuzhuo,如若转载,请注明出处:http://www.178linux.com/30526

(0)
liuzhuoliuzhuo
上一篇 2016-08-08
下一篇 2016-08-08

相关推荐

  • linux文本处理三剑客—grep

      cat:concatenate 文本文件查看工具 cat [option] filename… -n:给显示出来的文本行加上编号 -b:非空行编号 -V:显示 ^ -E:显示行结束符$ -T:显示制表符 -A:显示所有控制符-A=-VET -s:压缩连续…

    系统运维 2016-08-05
  • xen虚拟化基础篇

    Xen介绍:  xen是一个开放的源代码虚拟机监视器,有剑桥大学研发。它打算在单个计算机上运行多达128个满足特征的操作系统,操作系统必须进行显示地修改("移植")以在Xen上运行(但是提供对用户应用的兼容性)。这使得无需特殊硬件支持,就能达到高性能的虚拟化。 Xen由三部分组成:     第一部分…

    Linux干货 2015-08-26
  • 设计模式 ( 十七) 状态模式State(对象行为型)

    设计模式 ( 十七) 状态模式State(对象行为型) 1.概述 在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接的解决方案是将这些所有可能发生的情况全都考虑到。然后使用if… ellse语句来做状态判断来进行不同情况的处理。但是对复杂状态的判断就显得“力不从心了”。随着增加新的状态或者修改一个状体(if else(或swit…

    Linux干货 2015-07-27
  • 语言的歧义

    语言是人与人相互沟通的途径,而计算机语言则是人和计算机沟通的途径。就算是任何再完美的自然语言都会有歧义,但是又是什么让人和计算计算机间产生了歧义呢?下面这篇文章来自Gowri Kumar的Puzzle C一文。我做了一些整理,挑选了其中的一些问题,并在之后配上相应的答案(这些答案是我加的,如果需要原版的答案可以直接和本文作者Gowri Kumar联系,作者的…

    Linux干货 2016-05-08
  • 关于shell脚本基础编程第五篇

                  shellb编程基础第五篇              本章内容:数组 变量:存储单个元素的内存空间数组:存储多个元素的连续的内存空间…

    系统运维 2016-08-24
  • redis主从复制(1)— 慢查询导致复制中断

    redis的异常行为是一件令人头疼的问题。redis提供的错误日志只提供了一些server的运行状态信息,而没有server在故障现场的操作日志,比如执行了什么命令,命令操作对象的数据结构信息。如果redis也有mysql的slow-log,那么很多性能和故障问题也很容易处理。1、redis rdb在redis2.8版本以前,redis主从数据复制在生产上存…

    Linux干货 2016-04-12