Linux 八进制数字0权限的用途是什么
我更熟悉Linux 八进制数字0权限的用途是什么,linux,shell,unix,Linux,Shell,Unix,我更熟悉drwx权限,但我想了解一下八进制权限0代表-?我理解r表示4w表示2,x表示1。我不太明白0代表什么 比如说 语言的符号表征 0774 会是 rwxr 但我不明白0的目的 在Linux权限中,权限有四个八进制数字。有3个大家都知道的权限,读、写和执行,但权限中还有额外的3位: 棘手的一点 设置gid位 设置uid位 因此,设置权限4755将设置setuid位以及“rwxrw-rw-” 同样,2755设置setgid位,1755设置sticky位。可以设置以下各项的任意组合:
drwx
权限,但我想了解一下八进制权限0
代表-
?我理解r
表示4
w表示2
,x表示1
。我不太明白0代表什么
比如说
语言的符号表征
0774
会是
rwxr
但我不明白0的目的
在Linux权限中,权限有四个八进制数字。有3个大家都知道的权限,读、写和执行,但权限中还有额外的3位:
- 棘手的一点
- 设置gid位
- 设置uid位
- 1个粘性钻头
- 2设定位
- 3固定钻头和粘性钻头
- 4 setuid位
- 5 setuid钻头和粘性钻头
- 6 setuid位和setgid位
- 7 setuid位、setgid位和粘性位
- 粘性位不起任何作用(它用来告诉内核将该文件保留在缓存中)
- setuid位如果文件是一个可执行文件,在执行时,它将作为文件的所有者运行,而不是作为运行它的人运行(这就是
为您提供root权限的工作方式--它以sudo
的身份运行,即使它被root
这样的用户调用)guest
- setgid位与setuid位相似,但组所有者除外
- 777文件夹上的粘性位允许用户删除自己的文件,但不允许用户删除其他用户的文件。没有设置粘性位,任何用户都可以删除此目录下任何其他用户的文件。(这就是
的工作原理)/tmp
- 据我所知,文件夹上的setuid位不起任何作用
- 文件夹上的setgid位将强制在该目录中创建的所有新文件将继承该文件夹的组,而不是当时创建的用户的默认组
虽然这些权限很重要,没有它们UNIX就无法工作,但通常最好避免使用它们(至少对于文件),因为编写不好的程序最终可能会给运行它的任何人提供免费的root。因此,最好让sudo担任root的守门人。在Linux权限中,权限有四个八进制数字。有3个大家都知道的权限,读、写和执行,但权限中还有额外的3位:
- 棘手的一点
- 设置gid位
- 设置uid位
- 1个粘性钻头
- 2设定位
- 3固定钻头和粘性钻头
- 4 setuid位
- 5 setuid钻头和粘性钻头
- 6 setuid位和setgid位
- 7 setuid位、setgid位和粘性位
- 粘性位不起任何作用(它用来告诉内核将该文件保留在缓存中)
- setuid位如果文件是一个可执行文件,在执行时,它将作为文件的所有者运行,而不是作为运行它的人运行(这就是
为您提供root权限的工作方式--它以sudo
的身份运行,即使它被root
这样的用户调用)guest
- setgid位与setuid位相似,但组所有者除外
- 777文件夹上的粘性位允许用户删除自己的文件,但不允许用户删除其他用户的文件。没有设置粘性位,任何用户都可以删除此目录下任何其他用户的文件。(这就是
的工作原理)/tmp
- 据我所知,文件夹上的setuid位不起任何作用
- 文件夹上的setgid位将强制在该目录中创建的所有新文件将继承该文件夹的组,而不是当时创建的用户的默认组
虽然这些权限很重要,没有它们UNIX就无法工作,但通常最好避免使用它们(至少对于文件),因为编写不好的程序最终可能会给运行它的任何人提供免费的root。因此,最好让sudo担任root的守门人。在Unix约定中,写入的数字假定为十进制,除非它们的前缀是
0x
(或0x
),在这种情况下,它们是十六进制或前缀是0
,表示它们是八进制数
chmod
命令(可能?)没有执行一般的数字解析(简单的字符串解析就可以了),但是编写示例和文档的程序员会在八进制数前面加上0
,这只是为了确保清楚而已。在Unix惯例中,写入的数字被假定为十进制,除非它们的前缀是0x
(或0x
),在这种情况下,它们是十六进制或前缀是0
,表示它们是八进制数
chmod
命令(可能?)没有执行一般的数字解析(简单的字符串解析就可以了),但是编写示例和文档的程序员会在八进制数前面加上0
,这只是为了确定和清楚。你是说8
代表什么?正如chmod 0755 xyz中的0?不,这不是我的意思@JoshuaRahm,我在问题中添加了一个示例。也许你能更好地理解它。你是说8
代表什么?与chmod 0755 xyz中的0相同?无t
S_ISUID 04000 set-user-ID bit
S_ISGID 02000 set-group-ID bit (see below)
S_ISVTX 01000 sticky bit (see below)