2016-08-02
授课内容:
用户和组管理命令
理解并设置文件权限
默认权限
特殊权限
文件ACL
用户和组管理命令
用户和组的配置文件:/etc/default/useradd(相当于useradd -D)、/etc/skel(创建用户的家目录配置文件)、/etc/login.defs(修改用户的密码策略配置)
/etc/default/useradd(相当于useradd -D)
[[email protected] ~]# ll /etc/default/useradd -rw-r--r--. 1 root root 119 Mar 6 2015 /etc/default/useradd [[email protected] ~]# cat !^ cat /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes [[email protected] ~]# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
/etc/skel(创建用户的家目录配置文件)
[[email protected] ~]# ls -a /etc/skel/ . .. .bash_logout .bash_profile .bashrc .mozilla [[email protected] ~]# useradd user111 [[email protected] ~]# ls -a /home/user111/ . .. .bash_logout .bash_profile .bashrc .mozilla
/etc/login.defs(修改用户的密码策略配置)
用户管理:
①useradd [options] LOGIN:添加用户
-u:指定UID
-o:no-uniq,【不唯一,配合-u使用,如将普通用户提权为管理员】
-g:指定组(前提是组必须存在)
-G:添加附加组
-s:指定shell
-c:添加注释内容
-M:不创建家目录
-r:system,创建系统用户
例:添加一个用户hello,其UID指定3500,属组是3550,附加是root,注释为“你好”,系统用户,不能登陆系统,同时不创建家目录
useradd hello -u 3500 -g 3500 -G root -c "nihao" -r -s /sbin/nologin -M
②usermod [OPTION] login:用户属性更改
-u:更改用户UID
-g:更改用户属组
-aG:更改用户附加组,直接-G原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append
-s:修改shell
-c:修改注释信息
-L:锁定用户不能登陆
-U:解锁用户
-l:login_name,修改用户的登陆名字
③userdel [OPTION]... login
-r:删除家目录
④passwd [OPTIONS] UserName: 修改指定用户的密码,仅root用户权限
-l:锁定用户
-u:解锁
-e:强制用户下次登陆需要更改密码
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
⑤chage [OPTION]... LOGIN:修改用户的密码策略(实际是修改了/etc/login.defs的配置文件)
[[email protected] ~]# chage hill Changing the aging information for hill Enter the new value, or press ENTER for the default Minimum Password Age [0]: Maximum Password Age [99999]: Last Password Change (YYYY-MM-DD) [2016-08-01]: Password Expiration Warning [7]: Password Inactive [-1]: Account Expiration Date (YYYY-MM-DD) [-1]:
⑥id [OPTION]... [USER]:查看用户信息
-u:
-g:
-n:
⑦finger UserName:查看用户信息
⑧chfn:修改注释信息
⑨chsh: 修改shell
用户组管理:
①groupadd [OPTION]... group_name:添加组
-r:系统组
-g:GID
②groupmod [OPTION]... group:组属性修改
-g
-n:新组名字
③groupdel GROUP:组删除
④gpasswd [OPTION] GROUP:修改密码
-a:添加组用户
-A;user1,user2,...: 设置有管理权限的用户列表
-d:删除组用户
批量增加用户和修改密码
批量增加用户:
先创建一个文件,里面输入需要添加的账号,格式与passwd格式一致,然后用newusers命令运行账号文件即可
[[email protected] ~]# cat user.txt user11:X:3000:3000::/testdir/user11:/bin/bash user12:X:3001:3001::/testdir/user12:/bin/bash user13:X:3002:3002::/testdir/user13:/bin/bash user14:X:3003:3003::/testdir/user14:/bin/bash user15:X:3004:3004::/testdir/user15:/bin/bash [[email protected] ~]# newusers user.txt
批量修改密码:
先创建一个文件,里面输入需要批量修改密码的账号,格式【账号:密码】,然后重定向给chpasswd命令运行账号文件即可
[[email protected] ~]# cat pass.txt user11:centos user12:centos user13:centos user14:centos user15:centos [[email protected] ~]# cat pass.txt |chpasswd
【】练习:手动添加一个用户hive,uid=gid=5000,附加组是bin
1.vipw 2.vigr 3.vim /etc/shadow 4.vim /etc/gshadow 5.cp -r /etc/skel/. /home/hive 6.chown -R hive:hive /home/hive 7.chmod -R go= /home/hive
文件权限和管理
文件权限
[[email protected] ~]# ll total 5280 -rw-r--r--. 1 root root 37 Jul 31 14:48 11111 -rw-r--r--. 1 root root 61 Jul 31 14:41 11.sh drwxr-xr-x. 2 root root 6 Aug 1 09:04 1.a.nihaoma
其中drwxr-xr-x.指的是文件的类型及权限
每三位为一组,对应:u(属主),g(属组),o(其他)
权限为r(读)、w(写)、x(执行)
文件:
r: 可使用文件查看类工具获取其内容
w: 可修改其内容
x: 可以把此文件提请内核启动为一个进程(一般为二进制程序或者脚本)
目录:
r: 可以使用ls查看此目录中文件列表
w: 可在此目录中创建文件,也可删除此目录中的文件【重点理解】
x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录
X:只给目录x权限,不给文件x权限
1、chmod WHO OPT FILE:文件权限修
WHO:u,g,o,a
OPT:+,-,=
修改文件的属主和属组
2、chown [OPTION]... [OWNER][:[GROUP]] FILE...:修改文件的属主
-R:递归
chown USERNAME:GROUPNAMDE FILE... :一并修改文件的属主和属组【】
3、chgrp [OPTION]... GROUP FILE...:修改文件的属组
-R:递归
chown:只有root有权限
chgrp:只有root和所有者有权限
新建文件和目录的默认权限和掩码umask
umask:从最大权限中屏蔽掉相应的权限位,从而得出默认权限
[[email protected] ~]# umask 0022
新建文件和目录的默认权限
新建FILE权限: 666-umask
如果所得结果某位存在执行(奇数)权限,则将其权限+1【即系统默认是不会给文件有执行权限】
[[email protected] ~]# umask 113 [[email protected] ~]# touch f22222 [[email protected] ~]# ll f22222 -rw-rw-r--. 1 root root 0 Aug 2 20:27 f22222
文件f22222的某位存在执行(奇数)权限,则将其权限+1
新建DIR权限: 777-umask
特殊权限:SUID SGID STICKY(sst)
suid:【只作用在二进制的可执行的文件】,添加了s权限后,所运行的程序就可以以命令的属主身份权限进行运行
【当文件本身属主u有执行权限x时,加上s权限会在x权限的位置显示小写的s,如果没有x执行权限,则会变成大写的S】
chmod u+s FILENAME
chmod u-s FILENAME
-rwxr-xr-x. 1 root root 117616 Nov 20 2015 /usr/bin/ls [[email protected] ~]# ll f22222 -rw-rw-r--. 1 root root 0 Aug 2 20:27 f22222 [[email protected] ~]# chmod u+s f22222 [[email protected] ~]# ll f22222 -rwSrw-r--. 1 root root 0 Aug 2 20:27 f22222
sgid:作用在可执行文件或者目录
chmod g+s FILENAME/Documents
chmod g-s FILENAME/Documents
当作用在文件时,添加了s权限后,所运行的程序就可以以命令的属主身份权限进行运行
当作用在目录时:
默认情况下,用户创建文件时,其属组为此用户所属的主组,一旦某目录被设定了SGID,
【则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组】
【当文件本身属组g有执行权限x时,加上s权限会在x权限的位置显示小写的s,如果没有x执行权限,则会变成大写的S】
sticky:【具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权
在目录设置Sticky 位,只有文件的所有者或root可以删除该文件】
【只作用在目录上】
【当文件本身其他用户o有执行权限x时,加上s权限会在x权限的位置显示小写的t,如果没有x执行权限,则会变成大写的T】
chmod o+t DIR...
chmod o-t DIR...
[[email protected] ~]# ll -d TTTT/ drwxr-xr-x. 2 root root 18 Aug 2 14:48 TTTT/ [[email protected] ~]# chmod o+t TTTT/ [[email protected] ~]# ll -d TTTT/ drwxr-xr-t. 2 root root 18 Aug 2 14:48 TTTT/
特殊权限数字法:
SUID SGID STICKY
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
chmod4777 /tmp/a.txt
chattr:修改文件属性
只有超级权限的用户才具有使用该命令的权限,这项指令可改变存放在ext2、ext3、ext4、xfs、ubifs、reiserfs、jfs等文件系统上的文件或目录属性
+i:即Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
+a:Append-only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
文件访问控制列表(file ACL)
[[email protected] ~]# ll -d TTTT/ drwxrwxr-x+ 2 root root 18 Aug 2 14:48 TTTT/ ll user.txt -rw-rw-r--+ 1 root root 230 Aug 2 09:46 user.txt
已添加文件访问控制列表的目录或文件在最有一位显示为+
getfacl file |directory:查看文件或目录当前的facl情况
setfacl -m u:user:rwx file/document:添加某个用户的访问控制列表
setfacl -m g:group:rw file| directory:添加某个组的访问控制列表
setfacl -x u:user file |directory:删除某个用户的访问控制列表
setfacl -x g:group file |directory:删除某个组的访问控制列表
setfacl -b file 清除所有ACL权限