Jump to content

chmod

chmod
Оригинальный автор(ы) AT&T Bell Laboratories
Разработчик(и) Различные с открытым исходным кодом и коммерческие разработчики разработчики
Первоначальный выпуск 3 ноября 1971 г .; 52 года назад ( 1971-11-03 )
Написано в План 9: С
Операционная система Unix , Unix-подобные , Plan 9 , Inferno , IBM i
Платформа Кросс-платформенный
Тип Команда
Лицензия основные утилиты : GPLv3
План 9: МОЯ лицензия

В Unix и -подобных операционных системах Unix chmod — это команда и системный вызов, используемые для изменения прав доступа и флагов специального режима ( флаги setuid , setgid и Sticky ) объектов файловой системы ( файлов и каталогов ). В совокупности они первоначально назывались его режимами . [1] и имя chmod был выбран как сокращение change mode от 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]

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

  • -R Рекурсивный, т.е. включение объектов в подкаталоги.
  • -v подробный, показать измененные объекты (неизмененные объекты не отображаются).

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

Чтобы просмотреть файловый режим, ls или stat можно использовать команды:

$ ls -l findPhoneNumbers.sh
-rwxr-xr--  1 dgerman  staff  823 Dec 16 15:03 findPhoneNumbers.sh
$ stat -c %a findPhoneNumbers.sh
754

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

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

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

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

  • три крайних левых символа, rwx, определите разрешения для класса User (т. е. владельца файла).
  • средние три символа, r-x, определите разрешения для класса Group (т. е. группы, владеющей файлом)
  • три крайних правых символа, ---, определите разрешения для класса Others . В этом примере пользователи, которые не являются владельцами файла и не являются членами группы ( и, следовательно, относятся к классу Others ), не имеют разрешения на доступ к файлу.

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

[ редактировать ]

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

# Сумма rwx Разрешение
7 4(г) + 2(ш) + 1(х) rwx читать, писать и выполнять
6 4(г) + 2(ж) rw- читать и писать
5 4(г) + 1(х) r-x прочитать и выполнить
4 4(р) r-- только чтение
3 2(ш) + 1(х) -wx написать и выполнить
2 2 (ж) -w- писать только
1 1(х) --x выполнять только
0 0 --- никто

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

  • «чтение» (4), «запись» (2) и «выполнение» (1) для класса User ; т. е. 7 (4 + 2 + 1).
  • «прочитать» (4) и «выполнить» (1) для класса Group ; т. е. 5 (4 + 1).
  • Только «прочитать» (4) для класса «Другие» .

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

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

[ редактировать ]

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

$ ls -l sharedFile
-rw-r--r--  1 jsmith programmers 57 Jul  3 10:13  sharedFile
$ chmod 664 sharedFile
$ ls -l sharedFile
-rw-rw-r--  1 jsmith programmers 57 Jul  3 10:13  sharedFile

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

$ chmod 0664 sharedFile

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

[ редактировать ]

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

$ chmod [references][operator][modes] file ...

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

Ссылка Сорт Описание
в пользователь владелец файла
г группа члены группы файла
тот другие пользователи, которые не являются ни владельцами файла, ни членами группы файла
а все все три из вышеперечисленных, такие же, как ugo
(пустой) по умолчанию то же, что и «все», за исключением того, что биты в маске не изменятся.

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

Оператор Описание
+ добавляет указанные режимы к указанным классам
- удаляет указанные режимы из указанных классов
= указанные режимы должны быть точными режимами для указанных классов

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

Режим Имя Описание
р читать прочитать файл или просмотреть содержимое каталога
В писать записать в файл или каталог
х выполнять выполнить каталогов файл или рекурсивно просмотреть дерево
Х специальная казнь которое не является разрешением само по себе, но может использоваться вместо х . Он применяет разрешения на выполнение к каталогам независимо от их текущих разрешений и применяет разрешения на выполнение к файлу, у которого уже установлен хотя бы один бит разрешения на выполнение (либо User , Group или Others ). Это действительно полезно только при использовании с + и обычно в сочетании с -R флаг для предоставления группе или другим доступа к большому дереву каталогов без установки разрешения на выполнение для обычных файлов (таких как текстовые файлы), что обычно происходит, если вы просто использовали chmod -R a+rx ., тогда как с Х ты можешь сделать chmod -R a+rX . вместо
с setuid/гид
т липкий

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

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

[ редактировать ]
  • Добавить разрешение на запись ( w ) Группе ( ж ) режимы доступа к каталогу, позволяющие пользователям одной группы добавлять файлы:
    $ ls -ld shared_dir # show access modes before chmod
    drwxr-xr-x   2 jsmitt  northregion 96 Apr 8 12:53 shared_dir
    $ chmod  g+w shared_dir
    $ ls -ld shared_dir  # show access modes after chmod
    drwxrwxr-x   2 jsmitt  northregion 96 Apr 8 12:53 shared_dir
    
  • Удалить права на запись ( w ) для всех классов ( a ), запрещая кому-либо писать в файл:
    $ ls -l ourBestReferenceFile
    -rw-rw-r--   2 tmiller  northregion 96 Apr 8 12:53 ourBestReferenceFile
    $ chmod a-w ourBestReferenceFile
    $ ls -l ourBestReferenceFile
    -r--r--r--   2 tmiller  northregion 96 Apr 8 12:53 ourBestReferenceFile
    
  • Установите разрешения для пользователя ( и группы уг ) для чтения и выполнения ( rx ) только (без разрешения на запись) на referenceLib , запрещающий кому-либо добавлять файлы.
    $ ls -ld referenceLib
    drwxr-----   2 ebowman  northregion 96 Apr 8 12:53 referenceLib
    $ chmod ug=rx referenceLib
    $ ls -ld referenceLib
    dr-xr-x---   2 ebowman  northregion 96 Apr 8 12:53 referenceLib
    
  • Добавьте разрешения на чтение и запись для классов пользователей и групп файла или каталога с именем образец :
    $ chmod ug+rw sample
    $ ls -ld sample
    drw-rw----   2 rsanchez  budget       96 Dec  8 12:53 sample
    
  • Удалите все разрешения, чтобы никто не мог читать, записывать или выполнять файл с именем образец бесполезен.
    $ chmod a-rwx sample
    $ ls -l sample
    ----------   2 rswven  planning       96 Dec  8 12:53 sample
    
  • Измените разрешения для пользователя и группы только на чтение и выполнение (без разрешения на запись) образец .
    $ # Sample file permissions before command
    $ ls -ld sample
    drw-rw----   2 oschultz  warehousing       96 Dec  8 12:53 NY_DBs
    $ chmod ug=rx sample
    $ ls -ld sample
    dr-xr-x---   2 oschultz  warehousing       96 Dec  8 12:53 NJ_DBs
    

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

[ редактировать ]

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

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

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

[ редактировать ]
Команда Объяснение
chmod a+r publicComments.txt Добавляет разрешение на чтение для всех классов (например пользователя , , группы и других )
chmod a-x publicComments.txt Удаляет разрешение на выполнение для всех классов
chmod a+rx viewer.sh Добавляет разрешения на чтение и выполнение для всех классов.
chmod u=rw,g=r,o= internalPlan.txt Устанавливает права на чтение и запись для пользователя . , устанавливает чтение для группы и запрещает доступ другим
chmod -R u+w,go-w docs Добавляет разрешение на запись в документы каталога и все его содержимое (т. е. рекурсивно ) для владельца и удаляет разрешение на запись для группы и других.
chmod ug=rw groupAgreements.txt Устанавливает разрешения на чтение и запись для пользователя . и группы
chmod 664 global.txt чтение и запись для пользователя Устанавливает разрешения на и группы и предоставляет чтение другим .
chmod 744 Show_myCV.sh устанавливает разрешения на чтение, запись и выполнение для пользователя для , а также устанавливает разрешения на чтение группы и других
chmod 1755 findReslts.sh Устанавливает липкий бит (это предполагает, что сценарий сохраняется в памяти), устанавливает разрешения на чтение, запись и выполнение для владельца, а также устанавливает разрешения на чтение и выполнение для группы и других.
chmod 4755 setCtrls.sh Устанавливает UID , устанавливает разрешения на чтение, запись и выполнение для пользователя , а также устанавливает разрешения на чтение и выполнение для группы и других.
chmod 2755 setCtrls.sh устанавливает GID , устанавливает разрешения на чтение, запись и выполнение для пользователя , а также устанавливает разрешения на чтение и выполнение для группы и других.
chmod -R u+rw,g-,o-rx privateStuff Рекурсивно (т. е. для всех файлов и каталогов в PrivateStuff ) добавляет разрешения на чтение, запись для , пользователя удаляет разрешения на чтение, запись и выполнение для группы и удаляет разрешения на чтение и выполнение для других.
chmod -R a-x+X publicDocs Рекурсивно (т.е. для всех файлов и каталогов в publicDocs ) удаляет разрешение на выполнение для всех классов и добавляет специальное разрешение на выполнение для всех классов.

См. также

[ редактировать ]
  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. ^ ИБМ . «Программирование Qshell в IBM System i версии 7.2» (PDF) . ИБМ . Проверено 5 сентября 2020 г.
  7. ^ «Страница руководства chmod с примерами и калькулятором — Linux — SS64.com» . ss64.com .
  8. ^ «Справочник команд AIX 5.5» . Центр знаний IBM . ИБМ . Проверено 30 августа 2015 г.
  9. ^ «Маскировка разрешений с помощью umask, chmod, 777 восьмеричных разрешений» . Learning.idallen.com .
[ редактировать ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8f797efe43bac28f2a7c102db28b7f0e__1701202860
URL1:https://arc.ask3.ru/arc/aa/8f/0e/8f797efe43bac28f2a7c102db28b7f0e.html
Заголовок, (Title) документа по адресу, URL1:
chmod - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)