04基本权限和归属 、 附加权限 、 ACL策略管理

#基本权限与归属

• 访问权限

– 读取:允许查看内容-read

– 写入:允许修改内容-write

– 可执行:允许运行和切换-execute

对于文本文件:

​ r读取权限:cat、less、grep、head、tail

​ w写入权限:vim、> 、 >>

​ x可执行权限:Shell与Python

• 归属关系

– 所有者(属主):拥有此文件/目录的用户-user

– 所属组(属组):拥有此文件/目录的组-group

– 其他用户:除所有者、所属组以外的用户-other

• 执行 ls -l或者ls -ld 命令查看

​ 以-开头:文本文件

​ 以d开头:目录

以l开头:快捷方式

[jack@localhost root]$ ls -ld /etc/
drwxr-xr-x. 111 root root 12288  6月10日 23:05 /etc/
[jack@localhost root]$ ls -l /etc/passwd
-rw-r--r--. 1 root root 2378  6月10日 21:40 /etc/passwd
[jack@localhost root]$ ls -ld /tmp
drwxrwxrwt. 9 root root 180  6月11日 22:44 /tmp

root@localhost ~]# ls -ld /home/zhangsan/
drwx------. 2 zhangsan zhangsan 4096  6月11日 23:39 /home/zhangsan/

修改权限 chmod命令

– 格式:chmod [ugoa] [±=][rwx] 文件…

• 常用命令选项

练习:

root@localhost ~]# mkdir /nsd10
[root@localhost ~]# ls -ld /nsd10/
drwxr-xr-x. 2 root root 4096  6月12日 10:46 /nsd10/
[root@localhost ~]# chmod u-w /nsd10/ #所有者去掉w权限
[root@localhost ~]# ls -ld
dr-xr-x---. 3 root root 4096  6月11日 22:51 .
[root@localhost ~]# chmod u+w /nsd10/  #所有者加上w权限
[root@localhost ~]# ls -ld /nsd10/
drwxr-xr-x. 2 root root 4096  6月12日 10:46 /nsd10/
[root@localhost ~]# chmod g=r /nsd10/  #所属组重新定义权限
[root@localhost ~]# ls -ld /nsd10/
drwxr--r-x. 2 root root 4096  6月12日 10:46 /nsd10/
[root@localhost ~]# chmod a=rwx /nsd10/   #a表示所有人
[root@localhost ~]# ls -ld /nsd10/
drwxrwxrwx. 2 root root 4096  6月12日 10:46 /nsd10/
[root@localhost ~]# chmod u=---,g=rx,o=rwx /nsd10/
[root@localhost ~]# ls -ld /nsd10/
d---r-xrwx. 2 root root 4096  6月12日 10:46 /nsd10/

-R:递归修改权限

练习

[root@localhost ~]# mkdir -p /opt/aa/bb/cc
[root@localhost ~]# ls -ld /opt/aa/
drwxr-xr-x. 3 root root 4096  6月12日 11:01 /opt/aa/
[root@localhost ~]# ls -ld /opt/aa/bb
drwxr-xr-x. 3 root root 4096  6月12日 11:01 /opt/aa/bb
[root@localhost ~]# ls -ld /opt/aa/bb/cc/
drwxr-xr-x. 2 root root 4096  6月12日 11:01 /opt/aa/bb/cc/
[root@localhost ~]# chmod -R o=--- /opt/aa/
[root@localhost ~]# ls -ld /opt/a
aa/    a.txt  
[root@localhost ~]# ls -ld /opt/aa/
d-wx--x---. 3 root root 4096  6月12日 11:01 /opt/aa/
[root@localhost ~]# ls -ld /opt/aa/bb/
drwxr-x---. 3 root root 4096  6月12日 11:01 /opt/aa/bb/
[root@localhost ~]# ls -ld /opt/aa/bb/cc/
drwxr-x---. 2 root root 4096  6月12日 11:01 /opt/aa/bb/cc/

案例1:设置基本权限

1)以root身份新建/nsddir1/目录,在此目录下新建readme.txt文件

[root@localhost ~]# mkdir /nsddir1
[root@localhost ~]# echo 123456 > /nsddir1/readme.txt
[root@localhost ~]# cat /nsddir1/readme.txt 
123456

2)使用户zhangsan能够修改readme.txt文件内容

[root@localhost ~]# chmod o+w /nsddir1/readme.txt

3)使用户zhangsan不可以修改readme.txt文件内容

[root@localhost ~]# chmod o-w /nsddir1/readme.txt

4)使用户zhangsan能够在此目录下创建/删除子目录

[root@localhost ~]# chmod o+w /nsddir1/

5)调整此目录的权限,使任何用户都不能进入,然后测试用户zhangsan是否还能修改readme.txt(测试结果不能,对父目录没有权限)

[root@localhost ~]# chmod a-x /nsddir1/

6)为此目录及其下所有文档设置权限 rwxr-x—

[root@localhost ~]# chmod -R u=rwx,g=rx,o=--- /nsddir1/

限利用数字方式表示

• 权限位的8进制数表示

– r、w、x分别对应4、2、1,后3组分别求和

chown命令

基本语法:

chown [选项] [新所有者][:新所属组] 文件或目录...
]# mkdir  /nsd15
]# ls -ld   /nsd15
]#groupadd   tmooc        #创建组tmooc
]# chown   lisi:tmooc   /nsd15    #修改所有者与所属组
]# ls -ld /nsd15
]# chown   zhangsan   /nsd15    #仅修改所有者
]# ls -ld /nsd15
]# chown   :root  /nsd15     #仅修改所属组
]# ls  -ld   /nsd15

修改完权限需要

案例2:归属关系练习

利用root的身份新建/tarena目录,并进一步完成下列操作

[root@localhost ~]# mkdir /tarena

将/tarena属主设为gelin01,属组设为tmooc组**

[root@localhost ~]# useradd gelin01

[root@localhost ~]# groupadd tmooc

[root@localhost ~]# chown gelin01:tmooc /tarena

使用户gelin01对此目录具有rwx权限,除去所有者与所属组之外的用户对此目录无任何权限**

[root@localhost ~]# chmod o=— /tarena

使用户gelin02能进入、查看此目录**

[root@localhost ~]# useradd gelin02

[root@localhost ~]# gpasswd -a gelin02 tmooc

将gelin01加入tmooc组,将tarena目录的权限设为450,测试gelin01用户能否进入此目录**

[root@localhost ~]# gpasswd -a gelin01 tmooc

[root@localhost ~]# chmod 450 /tarena

附加权限(特殊权限) Sticky Bit chmod +t

粘滞位,Sticky Bit 权限

– 占用其他人(Other)的 x 位

– 显示为 t 或 T,取决于其他人是否有 x 权限

– 适用于目录,用来限制用户滥用写入权

– 在设置了t权限的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档

[root@localhost ~]# mkdir /home/public
[root@localhost ~]# chmod 777 /home/public/
[root@localhost ~]# ls -ld /home/public/
drwxrwxrwx. 2 root root 4096  6月14日 19:49 /home/public/
[root@localhost ~]# chmod o+t /home/public/
[root@localhost ~]# ls -ld /home/public/
drwxrwxrwt. 2 root root 4096  6月14日 19:49 /home/publ  t 权限非属主无法删除

Set GID权限(SGID)

– 占用属组(Group)的 x 位

– 显示为 s 或 S,取决于属组是否有 x 权限

– 对目录有效

– 在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份

[root@localhost ~]# mkdir /nsd18
[root@localhost ~]# chown  :tmooc /nsd18
[root@localhost ~]# ls -ld /nsd18
drwxr-xr-x. 2 root tmooc 4096  6月14日 20:43 /nsd18
[root@localhost ~]# mkdir /nsd18/abc01
[root@localhost ~]# ls -ld /nsd18/abc01
drwxr-xr-x. 2 root root 4096  6月14日 20:44 /nsd18/abc01
[root@localhost ~]# chmod g+s /nsd    赋予SGID权限
nsd10/   nsd15/   nsd18/   nsddir1/ 
[root@localhost ~]# chmod g+s /nsd18
[root@localhost ~]# ls -ld /nsd18
drwxr-sr-x. 3 root tmooc 4096  6月14日 20:44 /nsd18
[root@localhost ~]# mkdir /nsd18/abc02
[root@localhost ~]# ls -ld /nsd18/abc02
drwxr-sr-x. 2 root tmooc 4096  6月14日 20:51 /nsd18/abc02

ACL策略管理

• 文档归属的局限性:

– 任何人只属于三种角色:属主、属组、其他人

– 针对特殊的人实现更精细的控制

• acl访问策略作用:

能够对个别用户、个别组设置独立的权限

– 大多数挂载的EXT3/4、XFS文件系统默认已支持

• setfacl命令

– 格式:setfacl [选项] u:用户名:权限 文件…

​ setfacl [选项] g:组名:权限 文件…

• 常用命令选项

– -m:修改ACL策略

– -x:清除指定的ACL策略

– -b:清除所有已设置的ACL策略

– -R:递归设置ACL策略

[root@localhost ~]# mkdir /nsd19
[root@localhost ~]# chmod 770 /nsd19
[root@localhost ~]# ls -ld /nsd19
drwxrwx---. 2 root root 4096  6月14日 21:19 /nsd19 
[root@localhost ~]# setfacl -m u:dc:rx /nsd19
[root@localhost ~]# getfacl /nsd19
getfacl: Removing leading '/' from absolute path names
# file: nsd19
# owner: root
# group: root
user::rwx
user:dc:r-x
group::rwx
mask::rwx
other::---

root@localhost ~]# ls -ld /nsd19
drwxrwx---+ 2 root root 4096  6月14日 21:19 /nsd19 这里的加号代表 有设置acl

[root@localhost ~]# setfacl -x u:dc /nsd19 删除acl
[root@localhost ~]# setfacl -b /nsd19   #删除所有的acl
  

练习

[root@localhost ~]# mkdir /nsd22
[root@localhost ~]# setfacl -m u:dc:rx /nsd22
[root@localhost ~]# setfacl -m u:zhangsan:rwx /nsd22
[root@localhost ~]# setfacl -m u:lisi:rx /nsd22
[root@localhost ~]# setfacl -m u:gelin01:rwx /nsd22
[root@localhost ~]# getfacl /nsd22
getfacl: Removing leading '/' from absolute path names
# file: nsd22
# owner: root
# group: root
user::rwx
user:lisi:r-x
user:dc:r-x
user:zhangsan:rwx
user:gelin01:rwx
group::r-x
mask::rwx
other::r-x

[root@localhost ~]# setfacl -x u:zhangsan /nsd22
[root@localhost ~]# getfacl  /nsd22
getfacl: Removing leading '/' from absolute path names
# file: nsd22
# owner: root
# group: root
user::rwx
user:lisi:r-x
user:dc:r-x
user:gelin01:rwx
group::r-x
mask::rwx
other::r-x

[root@localhost ~]# setfacl -x u:dc /nsd22
[root@localhost ~]# setfacl -b /nsd22
[root@localhost ~]# getfacl /nsd22
getfacl: Removing leading '/' from absolute path names
# file: nsd22
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

附加权限SUID权限

占用属主(User)的 x 位

显示为 s 或 S,取决于属主是否有 x 权限

仅对可执行的程序有意义

当其他用户执行带SUID标记的程序时,具有此程序属主的身份和相应权限

chmod u+s /usr/bin/hahadir

[root@localhost ~]# which mkdir
/usr/bin/mkdir
[root@localhost ~]# /usr/bin/mkdir   /opt/abc01
[root@localhost ~]# ls /opt/abc01/
[root@localhost ~]# ls /opt
aa     a.txt  b.txt       c.txt  man.txt  op               p.txt
abc01  boot   containerd  haha   myhome   patch_workspace  shells
[root@localhost ~]# cp /usr/bin/mkdir /usr/bin/hahadir
[root@localhost ~]# ll /usr/bin/hahadir 
-rwxr-xr-x. 1 root root 104824  6月14日 22:47 /usr/bin/hahadir
[root@localhost ~]# /usr/bin/hahadir /opt/abc02
[root@localhost ~]# ls /opt
aa     a.txt  containerd  man.txt  patch_workspace
abc01  boot   c.txt       myhome   p.txt
abc02  b.txt  haha        op       shells
[root@localhost ~]# chmod u+s /usr/bin/hahadir 
[dc@localhost nsd19]$ /usr/bin/hahadir zs01

文件/目录的默认权限

• 新建文件/目录的默认权限

– 一般文件默认均不给 x 执行权限

– 其他取决于 umask(权限掩码) 设置

– 新建目录默认权限为755

– 新建文件默认权限为644

[root@localhost ~]# umask

0022

[root@A ~]# umask -S

u=rwx,g=rx,o=rx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值