linux的特殊权限

2018-8-16

在linux下用ls -l 命令就可以查看文件的详细信息,最一开始的就是文件权限。例如:

[root@centos ~]# ls -l test/
总用量 8
drwxr-xr-x. 3 root root 15 8月 16 10:15 1

d代表文件夹,后面的rwx三个一重复分别代表所有者、所属组、其他用户对其的权限:r代表读,w代表写,x代表执行。但是linux还有三种特殊权限——suid、sgid、sticky。

suid只作用在可执行的二进制文件,作用是执行该文件(运行程序)时以root身份操作。

例如linux中passwd文件权限为-rwsr-xr-x.,该文件是修改用户密码的命令文件。passwd命令说在文件夹是/bin/passwd,密码储存在/etc/passwd,运行passwd命令其实就是在修改/etc/passwd。但是/etc/passwd文件只能root用户修改,普通用户不方便切换root用户怎么办?rws中的s就是赋予普通用户/bin/passwd命令一个特权:用root身份执行。

看资料时说还有大小s之分,大s是原来没有x权限,小s是原来有x权限。但是假设某个命令原来没有x(执行权),那它存在有什么意义?有点想不通。但是可以先找一找linux中哪个命令是S:

find /usr/bin -type f -perm 4555 -exec ls -l {} ;

找遍所有命令文件夹,没有4555权限的二进制文件。。。

发呆想了会。可能这么设计方便用户更改一些脚本、软件吧。可能存在这种情况:一个脚本所有者(非root)没有执行权限(x),因为它只用来读写root用户才能修改的文件。

好像能说通,但是passwd不就是这样的吗,为什么是小s?我把/bin/passwd改成大S权限,然后测试普通用户能修改密码。这说明/bin/passwd不需要小s,大S权限也不影响使用。

大小s有什么用呢?看来这个问题只能先放一放了。

    原文作者:awsome365
    原文地址: https://www.jianshu.com/p/a670c7cd3d74
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞