xushxbigbear微信 2020-05-29
Linux文件与目录的权限设置:SUID SGID STICKY_BIT
一、文件和目录权限的基础知识:
-rwxrwxrwx. 1 root root 0 May 29 00:59 test
说明:
---- 文件和目录的第1个字段的第2个字符至第10个字符,为文件权限设置字符串。
---- 文件所有者权限owner(红色):第2个字符至第4个字符。
---- 文件的属组权限group(绿色):第5个字符至第7个字符。
---- 文件的其他人权限other(蓝色):第8个字符至第10个字符。
二、SUID(set user id,4,u+s)
1、功能:将文件的非所有者用户的权限,短暂提升为文件owner权限。
2、使用条件(同时满足所有条件):文件为二进制可执行文件suid_file;二进制可执行文件的非所有者用户至少拥有suid_file文件的可执行权限x。
3、使用范围:suid只能用于文件。
4、设置过程:
---- suid权限代表数字为4,符号为s;s替代文件的owner的x权限。
---- touch suid_file
---- chmod 4777 suid_file
---- 结果:-rwsrwxrwx. 1 root root 0 May 29 00:59 suid_file
5、总结:suid只能用于文件,不能用于文件夹(目录)。suid把非所有者权限短暂提升为所有者权限。
三、SGID(set group id,2,g+s)
1、功能:在具有sgid权限的文件夹下,建立的文件或文件夹与具有sgid属性的父级文件夹具有相同的属组。
2、使用条件(同时满足条件):用户至少拥有文件夹的可执行权限x;具有sgid权限的文件夹具有可执行权限。
3、使用范围:文件和文件夹,常用于文件夹。
4、设置过程:
---- sgid权限代表数字为2,符号为s,s替代group的x权限。
---- groupadd horse
---- mkdir sgid_folder
---- chown .horse sgid_folder
---- chmod 2777 sgid_folder
---- 结果:drwxrwsrwx. 3 root horse 37 May 29 01:28 sgid_folder
---- 说明:在sgid_folder文件夹下面建立的文件或目录的属组默认都是horse。
5、总结:sgid对文件和文件夹都有效,常用于文件夹。sgid设置其内的文件及文件夹的默认属组,管理员常常通过属组管理用户权限。
四、STICKY_BIT(粘滞位,1,o+t)
1、功能:具有sticky_bit权限的文件夹里面的文件或文件夹,只有文件或文件夹的所有者和root用户才有权利删除。在共享目录环境中,防止其他用户误删他人建立的文件。
2、使用条件:文件夹具有sticky_bit权限;用户至少具有x权限。
3、使用范围:文件夹。
4、设置过程:
---- sticky_bit权限代表数字为1,代表字符为t;t替代other权限的x位置。
---- mkdir sticky_bit_folder
---- chmod 1777 sticky_bit_folder
---- 结果:drwxrwxrwt. 2 root root 6 May 29 01:58 sticky_bit_folder
---- 说明:在sticky_bit_folder文件夹下建立的文件与文件夹,只能由文件与文件夹的所有者和root账户才能删除,其他人不能删除他人文件或文件夹。
5、总结:sticky_bit用于防止他人误删文件。
五、重点说明:
1、设置“suid/sgid/sticky_bit”权限的文件、文件夹、用户至少具有x权限,缺少x权限会出现大写"S或者T",出现“S/T”意味着设置不成功。
2、同时具有“suid/sgid/sticky_bit”权限的设置方法(没啥实际意义,7= suid4 + sgid2 +sticky_bit1):chmod 7777 file_folder