我遇到了一段代码,其中 chmod 权限被映射到一个整数。
33204 // -rw-rw-r--
36863 // -rwsrwsrwt
36855 // -rwsrwSrwt
36799 // -rwSrwsrwt
36351 // -rwsrwsrwx
36343 // -rwsrwSrwx
这些权限如何映射到整数?
我正在尝试查找这些数字33261, 41453
映射到什么权限?我查看了各种链接,但我找到了一个将权限转换为数字的链接。有人可以帮助我进行转换吗?提前致谢!
答案1
它们仅在八进制中才“有意义”。这是第一行使用我的节目之一转换:
$ hex 33204
33204: 33204 0100664 0x81b4 text "\201\264" utf8 \350\206\264
这0100664
意味着它是一个具有读/写(用户)、读/写(组)和只读(其他)的常规文件。手册chmod
页应该提到这一点,但第一位(S_IFREG
值)没有提到——即使是POSIX- 和其他旗帜一样频繁。这是标题中的示例:
#define S_IFMT 00170000
#define S_IFSOCK 0140000
#define S_IFLNK 0120000
#define S_IFREG 0100000
#define S_IFBLK 0060000
#define S_IFDIR 0040000
#define S_IFCHR 0020000
#define S_IFIFO 0010000
#define S_ISUID 0004000
#define S_ISGID 0002000
#define S_ISVTX 0001000
进一步阅读: