当 I 时ls -la,它会打印许多属性。像这样的东西:
-rwSrwSr-- 1 www-data www-data 45 2012-01-04 05:17 README
Run Code Online (Sandbox Code Playgroud)
可耻的是,我不得不承认我不知道每个属性的确切含义。例如,S字符串中的 big是什么意思-rwSrwSr--?以下是1什么?我粗略了解其他人。
Gil*_*il' 74
ls命令的文档回答了这些问题。在大多数 unix 变体上,查找ls手册页(man ls或在线)。在 Linux 上,查找信息文档 ( info ls) 或在线。
该字母s表示设置了setuid(或 setgid,取决于列)位。当可执行文件为 setuid 时,它以拥有可执行文件的用户而不是调用程序的用户身份运行。字母s代替字母x。文件可能是 setuid 但不是可执行文件;这由 表示S,其中大写S警告您此设置可能是错误的,因为如果文件不可执行,则 setuid 位(几乎总是)无用。
当目录具有 setuid(或 setgid)权限时,在该目录中创建的任何文件都将归与目录所有者(或组)匹配的用户(或组)所有。
权限后面的数字是硬链接数。硬链接是文件的路径(换句话说,是名称)。大多数文件都有一个路径,但您可以使用该ln命令创建更多路径。(这与符号链接不同:符号链接说“哦,实际上,这个文件在别处,转到 <location>”。)目录有 N+2 个硬链接,其中 N 是子目录的数量,因为它们可以被访问从他们的父目录、他们自己(通过.条目)和每个子目录(通过..条目)。
Mat*_*Mat 23
根据 info coreutils ls(可能不完全是你所拥有的):
`s'
如果 setuid 或 setgid 位以及相应的可执行位都被设置。`S'
如果设置了 setuid 或 setgid 位但未设置相应的可执行位。
权限部分后面的数字是硬链接数。
小智 8
用(希望更简单的)术语来说,这意味着。该目录是 setgid。在那里创建的任何文件都将归该文件夹所有者的那个组所有。
但是,该文件夹不能由组执行,因此它以大写字母 S 显示。这通常是在创建目录时,该目录最终将作为 setgid。
嗯.. 不知道这是否真的听起来像上面的简单英语..
小智 5
这是因为缺少可执行文件
s --> 'x' 已启用 S --> 'x' 已禁用。
见下面的例子
$ ls -l
total 0
-rwsrw-r--. 1 bpkmails bpkmails 0 Jun 25 20:18 ca
$ chmod u-x ca
$ ls -l
total 0
-rwSrw-r--. 1 bpkmails bpkmails 0 Jun 25 20:18 ca
$
Run Code Online (Sandbox Code Playgroud)