stringtranslate.com

chmod

В Unix и Unix-подобных операционных системах chmod — это команда и системный вызов , используемые для изменения прав доступа и флагов специального режима (флаги setuid , setgid и Sticky ) объектов файловой системы ( файлов и каталогов ). Первоначально они назывались его режимами [1] , а имя chmod было выбрано как аббревиатура режима изменения e . [2]

История

Команда chmod впервые появилась в AT&T Unix версии 1 вместе с системным вызовом chmod .

По мере роста количества и типов пользователей в системах во многие файловые системы в дополнение к этим основным режимам добавлялись списки контроля доступа [3] для повышения гибкости.

Версия chmod , входящая в состав GNU coreutils, была написана Дэвидом Маккензи и Джимом Мейерингом. [4] Команда доступна в виде отдельного пакета для Microsoft Windows как часть коллекции UnxUtils , состоящей из собственных Win32- портов распространенных GNU Unix-подобных утилит. [5] Команда chmod также была перенесена в операционную систему IBM i . [6]

Синтаксис команды

В этом разделе пользователь ссылается на владельца файла, как напоминание о том, что в символической форме команды используется « u ».

chmod [options] mode[,mode] file1 [file2 ...][7]

Обычно реализуемые варианты включают в себя:

Если указана символическая ссылка , это затрагивает целевой объект. Режимы файлов, непосредственно связанные с символическими ссылками, обычно не используются.

Для просмотра файлового режима можно использовать команды lsили :stat

$ ls  -l  findPhoneNumbers.sh -rwxr-xr-- 1 dgerman Staff 823 16 декабря 15:03 findPhoneNumbers.sh $ stat  -c  %a  findPhoneNumbers.sh 754

, и определяют доступ для чтения, записи и выполнения (первый символ rвывода ls обозначает тип объекта; дефис представляет простой файл). Сценарий findPhoneNumbers.sh может быть прочитан, записан и выполнен пользователем dgerman ; прочитаны и исполнены членами штатной группы ; и читаться только другими пользователями.wx

Основные части разрешений chmod :

Например:rwxr-x---

Каждая группа из трех символов определяет разрешения для каждого класса :

Числовые разрешения

Числовой формат chmod допускает до четырех цифр . Три крайние правые цифры определяют права доступа для пользователя файла, группы и других пользователей. Необязательная начальная цифра, если задано 4 цифры, указывает специальные флаги setuid , setgid и Sticky . Каждая цифра из трех крайних правых цифр представляет собой двоичное значение, которое управляет разрешениями «чтение», «запись» и «выполнение» соответственно. Значение 1 означает, что классу разрешено это действие, а 0 означает, что оно запрещено.

Например, 754позволит:

Числовой код разрешает выполнение тогда и только тогда, когда он нечетный (т.е. 1, 3, 5или 7). Числовой код разрешает «чтение» тогда и только тогда, когда он больше или равен 4(т.е. 4, 5, 6или 7). Числовой код разрешает «запись» тогда и только тогда, когда это 2, 3, 6или 7.

Числовой пример

Измените разрешения, чтобы разрешить членам группы программистов обновлять файл:

$ ls  -l  SharedFile -rw-r--r-- 1 программист jsmith 57 3 июля 10:13 SharedFile $ chmod 664 SharedFile $ ls -l SharedFile -rw-rw-r-- 1 программист jsmith 57 3 июля 10:13 общий файл    

Поскольку биты setuid , setgid и Sticky не указаны, это эквивалентно:

$ chmod 0664 общий файл  

Символические режимы

Команда chmod также принимает более детальную символическую запись, [8] которая позволяет изменять определенные режимы, оставляя другие режимы нетронутыми. Символьный режим состоит из трех компонентов, которые объединяются в одну текстовую строку:

$  chmod [ ссылки ][ оператор ][ режимы ] файл ...   

Классы пользователей используются для определения того, к кому применяются разрешения. Если классы не указаны, подразумевается «все». Классы обозначаются одной или несколькими из следующих букв:

Программа chmod использует оператор, чтобы указать, как следует настраивать режимы файла. Принимаются следующие операторы:

Режимы указывают, какие разрешения следует предоставить или удалить из указанных классов. Существует три основных режима, соответствующих основным разрешениям:

Множественные изменения можно указать, разделив несколько символьных режимов запятыми (без пробелов). Если пользователь не указан, chmodбудет проверена маска , и эффект будет такой же, как если бы был указан « a », за исключением того, что биты, установленные в маске, не будут затронуты. [9]

Символические примеры

Специальные режимы

Команда chmod также способна изменять дополнительные разрешения или специальные режимы файла или каталога. В символических режимах используется ' s ' для обозначения режимов setuid и setgid , а ' t ' - для обозначения режима закрепления . Режимы применяются только к соответствующим классам, независимо от того, указаны ли другие классы.

Большинство операционных систем поддерживают числовое указание специальных режимов, особенно в восьмеричном формате, но некоторые этого не делают. В этих системах можно использовать только символические режимы.

Примеры командной строки

Смотрите также

Рекомендации

  1. ^ Режимы/разрешения отображаются при перечислении файлов в длинном формате.
  2. ^ «Учебник по chmod». catcode.com .
  3. ^ «Управление системой AIX 5.3» . Центр знаний IBM . ИБМ . Проверено 30 августа 2015 г.
  4. ^ «chmod(1): изменить биты режима файла — справочная страница Linux». linux.die.net .
  5. ^ «Собственные порты Win32 некоторых утилит GNU» . unxutils.sourceforge.net .
  6. ^ IBM . «IBM System i Версия 7.2 Программирование Qshell» (PDF) . ИБМ . Проверено 5 сентября 2020 г.
  7. ^ "Страница руководства chmod с примерами и калькулятором - Linux - SS64.com" . ss64.com .
  8. ^ «Справочник команд AIX 5.5» . Центр знаний IBM . ИБМ . Проверено 30 августа 2015 г.
  9. ^ «Маскировка разрешений с помощью umask, chmod, 777 восьмеричных разрешений» . Learning.idallen.com .

Внешние ссылки