【linux】Linux的环境中如何生成srw-rw---- 的文件权限?

在Linux的某个目录中发现了这样一个从前没注意过的权限:
srw-rw----。

我知道:

r=4

w=2

x=1

这样如果不考虑开头s,那么两对rw应当意味着属主和所属组可读可写,但不能执行,其它人无该文件权限。

在一个在线演示和计算chmod的网站尝试了多次,即使在增加了suid之后,也只能够生成:
-rwSrwS---
而这样的结果出现的S不但是大写,它也不出现在首位。

对于s以及t我并不怎么了解,但在网上查询chmod这个命令及例子中也根本找不到首位为s的说明和解释。
想问首位s这样的权限是何意义,它是如何通过chmod命令生成的?

回答

权限位只有九位,第一个字符代表文件类型,s指的是unix domain socket文件,在man ls有说明

根据 @jokester 的回答,我尝试了以下做法。
mkdir chmodTest && cd $_ && touch demofile && ls -lh 生成一个文件demofile,结果如下:
-rw-r--r-- 1 root root 0 Sep 7 22:23 demofile
然后设定UID,chmod 4755 demofile && ls -lh,生成如下结果:
-rwsr-xr-x 1 root root 0 Sep 7 22:23 demofile
出现了s但是并不在第一位。

随后根据 @Feng_Yu 的回答查找man上面ls的说明,没找到。不过在以下链接页面的底部看到了说明和范例,还包括其它几个字母的说明,如d、c等。 @Feng_Yu 给出的是正确答案,多谢。
http://www.linuxnix.com/file-...

【linux】Linux的环境中如何生成srw-rw---- 的文件权限?

有setuid/gid且没有相应的x就会显示为S (+x就会变成s了)

s的含义可以看man chmod

以上是 【linux】Linux的环境中如何生成srw-rw---- 的文件权限? 的全部内容, 来源链接: utcz.com/a/86716.html

回到顶部