如何在Ubuntu上将文件设置为drwxrwsrwx权限

11
我该如何将文件权限设置为 drwxrwsrwx?我需要和我的文件夹一样。谢谢!
2个回答

55

chmod 777 不能 应用于 rwxrwsrwx。这意味着隐含地应该使用chmod 0777,它会应用rwxrwxrwx,与rwxrwsrwx显著不同。

权限rwxrwsrwx可以通过以下方式应用:

chmod 2777 your_target
您可以使用以下命令显示文件或目录的有效权限字符串:

ls -lad your_target
一个文件看起来会像这样:
-rwxrwsrwx    1 user  group         0 Feb  3 13:24 foo

目录结构可能如下所示:

drwxrwsrwx    2 user  group      4096 Feb  3 13:24 bar
字符串的第一个字符表示它所代表的对象类型。普通文件为 -,目录则为 d。其他对象可能有其他标识。
剩余的9个字符按顺序表示用户所有者、组所有者和其他每个人的读/写/执行权限。
在您的示例中,用户所有者和每个人的权限都是 rwx,这意味着用户所有者和每个人都可以读取、写入和执行该对象。
在您的示例中,组所有者权限为 rws,这意味着组所有者具有读取、写入和执行进程的权限,而且该对象设置了setguid位(这是rws中的s)。对于文件,setgid位表示如果执行文件,则会以组所有者的有效权限运行该文件(而不是执行它的用户的权限)。对于目录,setgid位表示如果在目录中创建文件,则其组所有者将是目录的所有者(而不是创建它的用户)。
您可以阅读有关Linux权限的信息,包括有关文件和目录上读取/写入/执行权限的含义,此处此处

3
谢谢您解释 s 的含义,我在其他地方找不到。 - Davos

11

编辑:正确答案由用户112358132134提供


我的错误答案:

drwxrwsrwx 的第一个字符是 d,这意味着它是一个目录。你不能设置一个文件使其成为目录,因为它就是一个文件 :)

要将当前目录中的所有文件设置为 -rwxrwsrwx,可以使用 chmod 777 *

要递归地执行此操作,请从当前目录使用:chmod -R 777 *

尝试使用 man chmod 获取更多信息。希望能有所帮助。


编辑:正确答案由用户112358132134提供


编辑:我检查一下:

enter image description here


谢谢,我对权限不是很擅长 :) 感谢帮助! :) - DragonSlayer
3
你似乎错漏了“rws”中的“s”,它与“rwx”不同。user112358132134 看起来是对的。 - reconbot
我已经做了。我会编辑我的答案以反映出来。我相信有人可以更改被接受的答案。 - jon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接