linux中的SUID和SBIT 权限

xiaoxiao2021-02-27  187

关于SUID,需要先参考上一篇文章:

http://blog.csdn.net/qingsong3333/article/details/77726074

SUID

SUID权限和SGID是作用类似的,不过SUID不是针对二进制程序的owner起作用,而是对所属组起作用。当其他用户执行此文件时,会暂时获得文件所属组的权限。

现在把wordcount的SUID权限改为SGID,效果是一样的,因为admin这个组(文件所属组)同样可以访问文件sample,要赋予SGID的权限,需要在原来的权限前加上2: qingsong@db2a:~/cprogram$ chmod 2775 wordcount qingsong@db2a:~/cprogram$ ls -l wordcount -rwxrwsr-x 1 qingsong admin 8732 Aug 30 04:38 wordcount qingsong@db2a:~/cprogram$ su inst97 Password: inst97@db2a:/home/qingsong/cprogram$ ./wordcount sample.txt Lines:34, Words:84, Chars:594 inst97@db2a:/home/qingsong/cprogram$

Sticky Bit

这个 Sticky Bit, SBIT 只针对目录有效,对于文件已经没有效果了。 SBIT 对于目录的作用是: -当用户对于此目录具有 w, x 权限,亦即具有写入的权限时; -当用户在该目录下建立子目录或文件时,仅有自己与 root 才有权力删除该子目录或文件 示例如下,要设置SBIT权限,则在原来权限的前面加上1,在下面的例子中,qingsong创建了一个目录sbittest,并设置了SBIT权限,之后在这个目录下创建了一个文件file1,尽管把file1的权限修改为777了,别的用户还是不能删除它 qingsong@db2a:~$ cd /tmp qingsong@db2a:/tmp$ mkdir sbittest qingsong@db2a:/tmp$ chmod 1777 sbittest qingsong@db2a:/tmp$ ls -ld sbittest/ drwxrwxrwt 2 qingsong admin 4096 Aug 30 05:38 sbittest/ qingsong@db2a:/tmp$ cd sbittest qingsong@db2a:/tmp/sbittest$ touch file1 qingsong@db2a:/tmp/sbittest$ chmod 777 file1 qingsong@db2a:/tmp/sbittest$ ls -l file1 -rwxrwxrwx 1 qingsong admin 0 Aug 30 05:38 file1 qingsong@db2a:/tmp/sbittest$ su inst97 Password: inst97@db2a:/tmp/sbittest$ rm -f file1 rm: cannot remove 'file1': Operation not permitted <--普通用户删不了 inst97@db2a:/tmp/sbittest$ su qingsong Password: qingsong@db2a:/tmp/sbittest$ rm -f file1 qingsong@db2a:/tmp/sbittest$ ls file1 ls: cannot access file1: No such file or directory

转载请注明原文地址: https://www.6miu.com/read-13743.html

最新回复(0)