4

В меню «Файл», если я перехожу к chmod, он возвращает значение chmod для папки / файла.

Я понимаю последние 3 цифры, второй - setuid/setgid/sticky bit (прочитал документы по нему, но его использование мне не совсем понятно)... а затем есть первая цифра, которую я предполагаю для file/ папка а что еще? Как для папки цифра 4, для файла 0 ... как насчет 2 и 6? Я проверил, что символическая ссылка не имеет отдельного значения первой цифры chmod.

1 ответ1

2

chmod , как вы, наверное, знаете, сокращенно от «change mode». «Mode» здесь относится к полю st_mode в inode. stat(2) , справочная страница для системных вызовов stat , fstat и lstat , показывает значения st_mode до семи цифр.  Вот выдержка:

    S_IFSOCK    0140000   socket
    S_IFLNK     0120000   symbolic link
    S_IFREG     0100000   regular file
    S_IFBLK     0060000   block device
    S_IFDIR     0040000   directory
    S_IFCHR     0020000   character device
    S_IFIFO     0010000   FIFO

ОК, первая цифра всегда ноль, чтобы указать, что число восьмеричное; мы можем игнорировать это.  MC, похоже, тоже игнорирует второй.  Итак, вы можете видеть, что обычные файлы имеют 0 для третьей (т. Е. Пятой справа) цифры, а каталоги имеют 4. 2 и 6 - символьное устройство и блочное устройство соответственно; вы должны видеть это только в /dev .  Именованные каналы должны быть 1, а сокеты файловой системы - 4.    Если символические ссылки отображаются как 0, это странно; возможно кто-то думал, что отображение 2 будет слишком запутанным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .