day 7
[root@localhost ~]# groupadd sysmgrs
[root@localhost ~]# useradd natasha
[root@localhost ~]# usermod -G sysmgrs natasha
[root@localhost ~]# useradd -G sysmgrs harry 或 gpasswd -a harry sysmgrs
[root@localhost ~]# useradd -s /sbin/nologin sarah
[root@localhost ~]# echo “modteed” | passwd --stdin natasha
[root@localhost ~]# echo “modteed” | passwd --stdin harry
[root@localhost ~]# echo “modteed” | passwd --stdin sarah
2.
[root@localhost ~]# cp -p /etc/fstab /var/tmp/(fstab)
[root@localhost ~]# chown root /var/tmp/fstab
[root@localhost ~]# chgrp root /var/tmp/fstab 或 chown root:root /var/tmp/fstab
[root@localhost ~]# chmod a-x /var/tmp/fstab
[root@localhost ~]# setfacl -m u:natasha:rw /var/tmp/fstab
[root@localhost ~]# setfacl -m u:harry:- /var/tmp/fstab
3.
[root@localhost ~]# mkdir /home/managers
[root@localhost ~]# chgrp sysmgrs /home/managers
[root@localhost ~]# chmod g+rwx /home/managers
[root@localhost ~]# chmod o-rwx /home/managers 或 chmod o=- /home/managers
[root@localhost ~]# chmod g+s /home/managers
权限两种表示方式:
字符形式:r w x
数值形式:4 2 1 (2的2,1,0次方)
目录文件的最高权限值:777
文本文件的最高权限值:666 (一般情况下文本文件无法执行所以缺少x)
权限过滤值:(权限掩码)
umask 022(默认值)
则创建目录:755 文本文件:644
注:umask是可修改的
例如:umask改为055
则:目录: 722
文本:622(不是611)
按字符过滤而不是数值相减
对于文本文件:
r 读取文件内容(cat tac more less head tail grep)
w 编辑文件内容(vim echo > cat << EOF > file)
x (excule) 解释运行文件的内容(命令文件)
[root@localhost ~]# vim aa
[root@localhost ~]# ./aa
bash: ./aa: Permission denied
[root@localhost ~]# ll aa
-rw-r--r--. 1 root root 29 Dec 3 14:38 aa
[root@localhost ~]# chmod a+x aa
[root@localhost ~]# ll aa
-rwxr-xr-x. 1 root root 29 Dec 3 14:38 aa
[root@localhost ~]# ./aa
Dec 3
[root@localhost ~]#
对于目录文件:
r 读其中的文件名的权限
w 编辑目录的权限
x 进入并读取文件信息的权限
命令执行过程:
可执行文件进程的所属身份是用户发起者的身份 判断进程发起者是否是目标文件的所属用户,是,则匹配目标文件所属用户的权限:不是则判断进程发起者身份是否是目标文件的所属组用户,是,则直接匹配目标文件组权限,不是,则直接匹配目标文件其他用户权限;
更改权限值:
chmod ugo=rwx file
chmod u=rwx,g+w,o-r file
chmod a=rwx file
chmod -x file (有a的效果)
chmod u=7 file (**错误的写法**)
[root@localhost ~]# chmod +rwx aaa
[root@localhost ~]# ll aaa
-rwxr-xr-x. 1 root root 15 Dec 3 14:49 aaa
[root@localhost ~]#
[root@localhost ~]# chmod 7 a
[root@localhost ~]# ll
total 20
d------rwx. 2 root root 6 Dec 3 15:03 a
u (user)
g (group)
o (other)
a (all,包括u、g、o)
对于普通用户:只能更改属于自己的文件的权限
chowm
chgrp
特殊权限:
u+s (suid)4 所属用户的禁锢位
-rwSr--r--. 1 mny root 0 Dec 3 15:37 a.t
-rwsr--r--. 1 mny root 0 Dec 3 15:37 a.t (s = S+x)
含义:仅对可执行文件(命令文件)设置有意义可执行文件进程的所属身份是执行文件自身的身份
passwd 修改当前用户的密码,更改的是 /etc/shadow
[root@localhost ~]# ll /etc/shadow
----------. 1 root root 1547 Dec 3 15:40 /etc/shadow
为什么普通用户可以修改该文件密码信息?
原因是passwd进程的身份是root,作为root可以忽略普通权限
g+s (sgid) 2 所属组的禁锢位
对可执行文件、目录文件设置有意义
[root@localhost ~]# mkdir /te
[root@localhost ~]# chmod 777 /te
[mny@localhost ~]$ cd /te
[mny@localhost te]$ touch r1
[mny@localhost te]$ ll r1
-rw-rw-r--. 1 mny mny 0 Dec 3 16:19 r1
[root@localhost ~]# chmod g+s /te
[root@localhost ~]#
[mny@localhost te]$ touch r2
[mny@localhost te]$ ll r2
-rw-rw-r--. 1 mny *root* 0 Dec 3 16:20 r2 创键文件的所属组取决于/te所属组
[mny@localhost te]$
o+t 1 sticky冒险位
仅对目录文件设置有意义:(当前用户如果没有w权限则不能删除文件)
用户只能删除该目录下属于自己的文件且不能删除别人的文件(对于目录文件只有w时,用户可以随意删除其他人的文件)
扩展权限:
. 表示无扩展权限; + 表示有扩展权限
查看文件的权限列表:
getfacl filename
设置扩展权限列表:
setfacl -m u(或g):用户名:权限 filename
删除列表:
setfacl -x u:用户名: filename
清空扩展权限:
setfacl -b filename