如何将 chmod 访问权限映射到整数

如何将 chmod 访问权限映射到整数

我遇到了一段代码,其中 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

进一步阅读:

相关内容