#################################################
权限和归属
基本权限
• 访问方式(权限)
– 读取:允许查看内容-read r 4
– 写入:允许修改内容-write w 2
– 可执行:允许运行和切换-execute x 1
对文本文件:
r: cat less head tail
w: vim 保存 > >>
x: 书写Shell脚本或Python脚本
• 权限适用对象(归属)
– 所有者(属主):拥有此文件/目录的用户-user u
– 所属组(属组):拥有此文件/目录的组-group g
– 其他用户:除所有者、所属组以外的用户-other o
####################################################
查看权限
• 使用 ls -l 命令
– ls -ld 文件或目录...
以d开头:目录
以-开头:文件
以l开头:快捷方式
[root@server0 ~]# ls -ld /etc/
[root@server0 ~]# ls -l /etc/passwd
[root@server0 ~]# ls -l /etc/shadow
[root@server0 ~]# ls -ld /home/student
[root@server0 ~]# ls -ld /tmp
####################################################
设置基本权限
• 使用 chmod 命令
– chmod 归属关系+-=权限类别 文档...
[root@server0 ~]# mkdir /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod g+w /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod u-w /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod o=--- /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod u=rwx,g=rx,o=rx /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod ugo=rwx /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# mkdir -p /opt/aa/bb/cc
[root@server0 ~]# ls -ld /opt/aa
[root@server0 ~]# ls -ld /opt/aa/bb/
[root@server0 ~]# ls -ld /opt/aa/bb/cc/
[root@server0 ~]# chmod -R o=--- /opt/aa
[root@server0 ~]# ls -ld /opt/aa
##################################################
Linux判定用户具备的权限 匹配及停止
1.判定用户对该文档的身份 所有者>所属组>其他人
2.查看相应身份 权限位的权限
Permission denied :权限不足
目录的 r 权限:能够 ls 浏览此目录内容
目录的 w 权限:能够执行 rm/mv/cp/mkdir/touch/等更改目录内容的操作
目录的 x 权限:能够 cd 切换到此目录
以root用户新建/nsddir目录,在此目录下新建readme.txt文件
并进一步完成下列操作
1)使用户lisi能够在此目录下创建子目录 切换用户 su - lisi
chmod o+w /nsddir/
2)使用户lisi不能够在此目录下创建子目录
chmod o-w /nsddir/
3)使用户lisi能够修改readme.txt文件内容
chmod o+w /nsddir/readme.txt
4)调整此目录的权限,使所有用户都不能cd进入此目录
chmod u-x,g-x,o-x /nsddir/
5)为此目录及其下所有文档设置权限 rwxr-x---
chmod -R u=rwx,g=rx,o=--- /nsddir/
-R:递归设置权限,目录下及目录下所有
#################################################
设置文档归属
• 使用 chown 命令
– chown -R 属主 文档...
– chown -R :属组 文档...
– chown -R 属主:属组 文档...
[root@server0 ~]# groupadd tedu
[root@server0 ~]# mkdir /nsd03
[root@server0 ~]# ls -ld /nsd03
[root@server0 ~]# chown lisi:tedu /nsd03
[root@server0 ~]# ls -ld /nsd03
[root@server0 ~]# chown zhangsan /nsd03
[root@server0 ~]# ls -ld /nsd03
[root@server0 ~]# chown :root /nsd03
[root@server0 ~]# ls -ld /nsd03
###################################################
附加权限(特殊权限)
Set GID
• 附加在属组的 x 位上
属组的权限标识会变为 s
适用于目录,Set GID可以使目录下新增的文档自动设置与父目录相同的属组
让父目录下,新增的子文档继承父目录的所属组身份
[root@server0 ~]# mkdir /nsd07
[root@server0 ~]# chown :tedu /nsd07 #修改所属组
[root@server0 ~]# ls -ld /nsd07
[root@server0 ~]# mkdir /nsd07/abc
[root@server0 ~]# ls -ld /nsd07/abc
[root@server0 ~]# chmod g+s /nsd07/ #设置Set GID权限
[root@server0 ~]# ls -ld /nsd07/
[root@server0 ~]# mkdir /nsd07/test
[root@server0 ~]# ls -l /nsd07/
[root@server0 ~]# touch /nsd07/1.txt
[root@server0 ~]# ls -l /nsd07/
##################################################
Set UID
• 附加在属主的 x 位上
属主的权限标识会变为 s
适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限
[root@server0 ~]# /usr/bin/mkdir /opt/haha
[root@server0 ~]# ls /opt/
[root@server0 ~]# cp /usr/bin/mkdir /usr/bin/hahadir
[root@server0 ~]# /usr/bin/hahadir /opt/xixi
[root@server0 ~]# ls /opt/
[root@server0 ~]# chmod u+s /usr/bin/hahadir
[root@server0 ~]# ls -l /usr/bin/hahadir
[root@server0 ~]# su - lisi
[lisi@server0 ~]$ /usr/bin/mkdir test01
[lisi@server0 ~]$ /usr/bin/hahadir test02
[lisi@server0 ~]$ ls
test01 test02
[lisi@server0 ~]$ ls -l
[lisi@server0 ~]$ exit
###################################################
Sticky Bit
• 附加在其他人的 x 位上
其他人的权限标识会变为 t
适用于开放 w 权限的目录,可以阻止用户滥用 w 写入权限(禁止操作别人的文档)
[root@server0 ~]# mkdir /public
[root@server0 ~]# chmod ugo=rwx /public
[root@server0 ~]# ls -ld /public
[root@server0 ~]# chmod o+t /public/
[root@server0 ~]# ls -ld /public/
##################################################
ACL权限(策略)
acl策略的作用
• 文档归属的局限性
– 任何人只属于三种角色:属主、属组、其他人
– 无法实现更精细的控制
• acl访问策略
– 能够对个别用户、个别组设置独立的权限
– 大多数挂载的EXT3/4、XFS文件系统默认已支持
设置acl访问控制策略
• 使用 getfacl、setfacl 命令
– getfacl 文档...(查看acl权限)
– setfacl -R -m u:用户名:权限类别 文档...
– setfacl -R -m g:组名:权限类别 文档...
– setfacl -R -b 文档... #删除所有ACL策略
– setfacl -R -x u:用户名 文档... #删除指定ACL策略
[root@server0 ~]# mkdir /nsd01
[root@server0 ~]# chmod o=--- /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# su - student
[student@server0 ~]$ cd /nsd01
-bash: cd: /nsd01: Permission denied
[student@server0 ~]$ exit
logout
[root@server0 ~]# setfacl -m u:student:rx /nsd01
[root@server0 ~]# getfacl /nsd01 #查看ACL策略
[root@server0 ~]# su - student
[student@server0 ~]$ cd /nsd01
[student@server0 nsd01]$ pwd
#####################################################
[root@server0 ~]# mkdir /nsd02
[root@server0 ~]# setfacl -m u:student:rwx /nsd02
[root@server0 ~]# setfacl -m u:dc:rx /nsd02
[root@server0 ~]# setfacl -m u:lisi:rx /nsd02
[root@server0 ~]# setfacl -m u:zhangsan:rwx /nsd02
[root@server0 ~]# getfacl /nsd02
[root@server0 ~]# setfacl -x u:dc /nsd02 #删除指定ACL
[root@server0 ~]# getfacl /nsd02
[root@server0 ~]# setfacl -b /nsd02 #删除所有ACL策略
[root@server0 ~]# getfacl /nsd02
###################################################
设置黑名单
[root@server0 ~]# mkdir /public
[root@server0 ~]# chmod ugo=rwx /public
[root@server0 ~]# ls -ld /public
[root@server0 ~]# setfacl -m u:lisi:--- /public
[root@server0 ~]# getfacl /public
[root@server0 ~]# su - lisi
[lisi@server0 ~]$ cd /public/
-bash: cd: /public/: Permission denied
[lisi@server0 ~]$ ls /public/
ls: cannot open directory /public/: Permission denied
[lisi@server0 ~]$ exit
标签:ld,nsd01,基础,server0,命令,ls,linux,权限,root
From: https://www.cnblogs.com/qgw258/p/17999289