5.Linux下的权限管理
一、权限查看及读取
1.权限查看
- ls -l file 查看文件权限
- ls -ld dir 查看目录权限
2.权限读取
二、文件用户用户组管理
-
chown
chown username file 更改文件拥有者 -
chgrp
chgrp groupname file 更改文件拥有组
chown username.groupname file 同时更改文件拥有者和拥有组
chown username:groupname file 同时更改文件拥有者和拥有组
chown / chgrp -R user / group dir 更改目录本身及目录中内容的拥有者或拥有组
三、普通权限的类型及作用
-
rwx | r-- | r-- 分别对应 u g o
-
user>group>other
-
r:可读
###对于文件:可以读取文件内容
###对于目录:可以ls列出目录中的文件
w:可写
###对于文件:可以更改文件内容
###对于目录:可以在目录中新建或删除文件
x:可执行
###对于文件:可以用文件名称调用文件内记录的程序
###对于目录:可以进入目录中
对于目录:w 权限在 x 权限的基础上开启
四、设定普通权限的方法
-
chmod 设定文件权限
chmod --reference=/tmp /mnt/dir 复制/tmp目录的权限到/mnt/dir目录中
chmod -R --reference=/tmp /mnt/dir 复制/tmp目录的权限到/mnt/dir目录及目录中的文件
-R 表示递归的含义chmod u/g/o +/-/= r/w/x file 字符方式设定文件权限
r - 4 w - 2 x - 1 rwxrwxrwx对应777
例题
groupadd -g 8000 shengchan
groupadd -g 8001 caiwu
groupadd -g 8002 jishu
useradd -G shengchan,jishu westosuser
useradd -u 8001 -g 8001 -G jishu lee
vim /etc/passwd
westosadmin:x:0:0::/home/westosadmin:/bin/bash
mkdir /home/westosadmin
ps /etc/skel/.* /home/westosadmin
mkdir /sc /cw /js /pub
chgrp shengchan /sc
chgrp caiwu /cw
chgrp jishu /js
chmod 770 /sc /cw /js
chmod 777 /pub
五、系统默认权限设定
-
umask 表示系统保留权力
umask 查看保留权力
umask 权限值 临时设定系统预留权力文件默认权限 = 777 - umask - 111
目录默认权限 = 777 - umask临时更改:
umask 077
永久更改:
vim /etc/bashrc | vim /etc/profile ----- source /etc/bashrc | source /etc/profile
六、特殊权限的设定
-
stickyid 粘制位
只针对目录:如果一个目录的stickyid开启,那么这个目录中的文件只能被文件所有人删除chmod o+t dir
chmod 1原始权限 dir
-
sgid 强制位
针对目录:目录中新建的文件自动归属到目录的所属组中
针对二进制的可执行文件(c程序):当运行二进制可执行文件时都以文件拥有组身份运行chmod g+s dir/file
chmod 2原始权限 dir/file
-
suid 冒险位
只针对二进制的可执行文件(c程序):当运行二进制可执行文件时都以文件拥有者身份运行,和执行用户无关chmod u+s file
chmod 4原始权限 file
例题:root用户也无法使用rm命令删除文件useradd -M -s /sbin/nologin norm chown norm.norm /bin/rm chmod ug+s /bin/rm rm -fr /mnt/ #没有删除权限
七、acl权限列表
acl权限列表:限制特殊用户或用户组对特殊文件的权限
-
getfacl
getfacl dir/file 查看权限列表
注:打开权限列表后,不要用ls -l / -ld 查看文件的权限,其中g位表示的mask的值 -
setfacl
setfacl -m u:westos:rwx dir/file 设定列表中特定用户的权限
setfacl -m g:westos:rwx dir/file 设定列表中特定用户组的权限
setfacl -x u:westos dir/file 删除列表中的user
setfacl -x g:westos dir/file 删除列表中的group
setfacl -b dir/file 关闭权限列表
setfacl -m u/g:westos:rwx dir 设定目录本身的权限列表
setfacl -Rm u/g:westos:rwx dir 设定目录及目录中子文件的权限列表
setfacl -m d:u/g:westos:rwx dir 设定目录中新建文件的权限列表-R 表示递归
set -m m:rwx dir/file 设定权限列表中的mask值
mask是能够赋予指定用户权限的最大阀值
acl 权限优先级:拥有者 > 特殊指定用户 > 权限多的组 > 权限少的组 > 其他
八、attr权限
attr权限:限制所有用户
-
lsattr
lsattr dir/file 查看目录或文件的attr权限 -
chattr
i 不能做任何的更改
a 对目录能够添加不能删除,对文件能够修改内容不能删除
其中对于文件a/i使用vim模式/echo >都不能修改内容,a中echo >> 可以修改内容
chattr +/- i/a dir/file
例题
groupadd -g 8000 shengchan groupadd -g 8001 caiwu groupadd -g 8002 jishu useradd -G shengchan,jishu westosuser useradd -u 8001 -g 8001 -G jishu lee useradd -s /sbin/nologin linux vim /etc/passwd westosadmin:x:0:0::/home/westosadmin:/bin/bash mkdir /home/westosadmin cp /etc/skel/.* /home/westosadmin echo westos | passwd --stdin westosuser echo westos | passwd --stdin lee echo westos | passwd --stdin linux echo westos | passwd --stdin westosadmin passwd -e -x 30 -w 2 westosuser passwd -e lee passwd -e linux passwd -e westosadmin passwd -x 30 -w 2 westosuser passwd -x 30 -w 2 lee passwd -x 30 -w 2 linux passwd -x 30 -w 2 westosadmin mkdir /sc /cw /js /pub chgrp shengchan /sc chgrp caiwu /cw chgrp jishu /js chmod 2770 /sc /cw /js chmod o+t /sc /cw /js chmod 1777 /pub setfacl -m u:westosadmin:rwx /sc /cw /js /pub