且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ACL,Sticky,suid,sgid,umask的学习使用

更新时间:2022-09-27 10:50:29

ACL,Sticky,suid,sgid,umask的学习使用

umask

umask主要作用是定义用户创建文件或者目录默认权限

umask 默认值是0022一般情况下只看后四位因为第一位表示特殊权限Sticky,suid,sgid。

用户创建的目录的默认权限为 777,文件的权限为666这是因为目录必须有一个X权限位

[root@www ~]# umask 查看默认的umask

0022

[root@www ~]# mkdir test

[root@www ~]# ll -d test

drwxr-xr-x 2 root root 4096 Sep 29 03:02test  test目录权限为777-022=755

[root@www ~]# touch txt

[root@www ~]# ll txt

-rw-r--r-- 1 root root 0 Sep 29 03:03 txt  文件权限666-022=644

自定义umask

[root@www tom]# umask 0033  这种修改方式只在当前shell有效

[root@www tom]# umask

0033

要想umask永久有效就必须将其写入配置文件中

/etc/profile --> /etc/profile.d/*.sh--> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

SUID

suid的权限位在X位上,如果文件当前有X权限则是s否则便是S

suid的作用是用户在执行该程序时,该进程的属主不再是发起者本人,而是这个程序文件的属主

/etc/shadow文件为例

[tom@www tmp]$ ll /etc/shadow

---------- 1 root root 1628 Jun 15 16:50/etc/shadow

root用户操作

[root@www tmp]# cp /bin/cat ./  避免破坏系统的cat所以将cat程序复制到当前目录下

[root@www tmp]# ll cat  查看修改前权限

-rwxr-xr-x 1 root root 48568 Sep 29 03:35cat

[root@www tmp]# chmod u+s cat  添加s权限

[root@www tmp]# ll cat 

-rwsr-xr-x 1 root root 48568 Sep 29 03:35cat

标准用户

[tom@www tmp]$ ./cat /etc/shadow

root:$6$Yw5E.CdTZgWaEn9/$LaEv1ZX2Rr1T2Ky21NdCeM0obRoE7baqBSqd2BcnHQC9CA2iF/wKqM6uFZTzeeUcpHzBPkwZRqdz3HhB9jZEI/:16146:0:99999:7:::

bin:*:15628:0:99999:7:::

daemon:*:15628:0:99999:7:::

adm:*:15628:0:99999:7:::

取消SUID的方法

[root@www tmp]# chmod u-s cat

[root@www tmp]# ll cat

-rwxr-xr-x 1 root root 48568 Sep 29 03:35cat

也可以用十进制数字添加或者删除该权限位

SUID SGID Sticky组成一组权限位表示为

SUID 4

SGID 2

Sticky 1

[root@www tmp]# chmod 7644 cat

[root@www tmp]# ll cat

-rwSr-Sr-T 1 root root 48568 Sep 29 03:35cat

SGIDsticky权限位一样

SGID

属组有s权限,执行此程序时,其进程的属组不再是运行者本人所属的基本组,而是此程序文件的属组

 

[root@www tmp]# groupadd admin  添加一个测试组

[root@www tmp]# usermod -a -G admin job

[root@www tmp]# usermod -a -G admin tom  将这两个用户加入到admin组中 

[root@www tmp]# chown :admin test  改变目录的所属组 

[root@www tmp]# chmod g+ws test  添加GUID

 

[root@www tmp]# ll test/ -d  查看目录权限

drwxr-sr-x 2root admin 4096 Sep 29 05:01 test/ 

 

[tom@www test]$ touch tom  tom用户创建一个tom文件

[tom@www test]$ ll

total 0

-rw-rw-r-- 1 tom  admin 0 Sep 29 05:18 tom

[tom@www test]$ ll

total 4

-rw-rw-r-- 1 job admin 4 Sep 29 05:32 job

-rw-rw-r-- 1 tom admin 0 Sep 29 05:18 tom

验证

[tom@www test]$ echo "tom" >job tom字符加入到job创建的文件中无报错

[tom@www test]$ cat job 表示GUID生效文件中有tom字符

tom 

[tom@www test]$ rm -rf job  tom用户删除job文件

[tom@www test]$ ll

total 0

-rw-rw-r-- 1 tom admin 0 Sep 29 05:18 tom  

Sticky

粘滞位,附加other的权限上,表现为t

表现为一个公共文件夹中的文件,其他用户可读可写但不能删除其他人的文件只有属主才有权限删除

以上面的环境为基础

[root@www tmp]# chmod o+t test/

[root@www tmp]# ll -d test/

drwxrwsr-t 2 root root 4096 Sep 29 06:05test/ 

[job@www test]$ echo "job" >tom 

[job@www test]$ cat tom

job 

[job@www test]$ rm -rf tom

rm: cannot remove `tom': Operation notpermitted 不能删除其他用户的文件

ACL

访问控制列表添加单个用户或组对某个文件的操作权限

setfacl

[job@www ~]$ ll

total 4

drwx------ 2 job job 4096 Sep 29 06:20 mic

[job@www ~]$ setfacl -m u:tom:rw mic  设置某个用户对该文件有什么权限

getfacl

[job@www ~]$ getfacl mic/  查看该文件的ACL

# file: mic/

# owner: job

# group: job

user::rwx

user:tom:rw-

group::---

mask::rw-

other::---

 

[job@www ~]$ setfacl -xu:tom mic  取消该用户的所有权限

[job@www ~]$ getfacl mic/

# file: mic/

# owner: job

# group: job

user::rwx

group::---

mask::---

other::---

 

[job@www ~]$ setfacl -mg:admin:rwx mic/ 设置组的ACL

[job@www ~]$ getfacl mic/

# file: mic/

# owner: job

# group: job

user::rwx

group::---

group:admin:rwx

mask::rwx

[job@www ~]$ setfacl -xg:admin mic  取消组的ACL

本文转自不要超过24个字符博客51CTO博客,原文链接http://blog.51cto.com/cstsncv/1933474如需转载请自行联系原作者


cstsncv