我更熟悉drwx
权限,但我想了解0
代表-
的八进制权限吗?我了解r
代表4
代表2
,x代表1
。我不能正确理解0代表什么。
例如
的象征性表示
0774
将是
rwxrwxr
但我不明白0的目的。
答案 0 :(得分:5)
http://man7.org/linux/man-pages/man2/stat.2.html
S_ISUID 04000 set-user-ID bit
S_ISGID 02000 set-group-ID bit (see below)
S_ISVTX 01000 sticky bit (see below)
答案 1 :(得分:2)
在Linux权限中,权限有四个八进制数字。有3个人都知道,读,写和执行,但权限中还有3位:
因此设置权限4755设置setuid位,以及`rwxrw-rw - '
同样2755设置setgid位,1755设置粘滞位。可以设置这些的任何组合:
这些位对于文件与目录意味着不同。
在文件上,
sudo
的工作方式给你root权限 - 它运行为root
,即使它是由像guest
这样的用户调用的在文件夹上,
/tmp
的工作方式)虽然这些权限很重要,如果没有它们,UNIX就无法运行,一般来说最好避免使用它们(至少对文件来说),因为编写得不好的程序最终会给运行它的任何人提供免费的root权限。所以最好让它成为sudo的守门员。
答案 2 :(得分:1)
在Unix约定中,写入的数字被假定为十进制,除非它们以0x
(或0X
为前缀),在这种情况下它们是十六进制的或以0
为前缀表示它们是八进制数。
chmod
命令(可能是?)没有执行通用数字解析(简单的字符串解析会这样做),但编写示例和文档的程序员会在八进制数字前加0
只是为了一定要清楚。