
Я знаком с 3 «битами» режима файла, определяющими права пользователя, группы и другие разрешения, а также с «битом» setuid/setgid/sticky, но когда я просматриваю stat
корневые каталоги на моем ноутбуке MacOSX, я вижу 1-2 дополнительных поля. Что это?
[onlyanegg@macosx ~]$ stat -f '%p %N' /*
40775 /Applications
40755 /Library
40755 /Network
40755 /System
40755 /Users
41777 /Volumes
40755 /bin
41775 /cores
40555 /dev
120755 /etc
40555 /home
100644 /installer.failurerequests
40555 /mnt
40555 /net
40775 /opt
40755 /private
40755 /sbin
120755 /tmp
40755 /usr
120755 /var
решение1
stat(1)
указывает, что %p
запросы
Тип файла и разрешения.
(ищите "datum" на связанной странице). Отображаемое значение — это все st_mode
(см.stat(2)
:
#define S_IFMT 0170000 /* type of file */ #define S_IFIFO 0010000 /* named pipe (fifo) */ #define S_IFCHR 0020000 /* character special */ #define S_IFDIR 0040000 /* directory */ #define S_IFBLK 0060000 /* block special */ #define S_IFREG 0100000 /* regular */ #define S_IFLNK 0120000 /* symbolic link */ #define S_IFSOCK 0140000 /* socket */ #define S_IFWHT 0160000 /* whiteout */ #define S_ISUID 0004000 /* set user id on execution */ #define S_ISGID 0002000 /* set group id on execution */ #define S_ISVTX 0001000 /* save swapped text even after use */ #define S_IRUSR 0000400 /* read permission, owner */ #define S_IWUSR 0000200 /* write permission, owner */ #define S_IXUSR 0000100 /* execute/search permission, owner */
Это объясняет получаемые вами значения:
- значения, начинающиеся с 4, являются каталогами (
/Applications
,/Library
...) - значения, начинающиеся с 12, являются символическими ссылками (
/etc
,/tmp
,/var
) - значения, начинающиеся с 10, являются обычными файлами (
/installer.failurerequests
)