Chmod - Википедия - chmod
В chmod команда | |
Оригинальный автор (ы) | AT&T Bell Laboratories |
---|---|
Разработчики) | Разные Открытый исходный код и коммерческий Разработчики |
изначальный выпуск | 3 ноября 1971 г. |
Операционная система | Unix, Unix-подобный, План 9, Inferno, IBM i |
Платформа | Кроссплатформенность |
Тип | Команда |
Лицензия | coreutils: GPLv3 |
В Unix и Unix-подобный операционные системы, chmod это команда и системный вызов который используется для изменения права доступа из файловая система объекты (файлы и каталоги ). Также используется для изменения специальный режим флаги. Запрос фильтруется по маска. Название является сокращением от изменить режим.[1]
История
А chmod команда впервые появилась в AT&T Unix версия 1.
По мере роста количества и типов пользователей систем, списки контроля доступа[2] были добавлены во многие файловые системы в дополнение к этим самым основным режимам для повышения гибкости.
Версия chmod в комплекте GNU coreutils был написан Дэвидом Маккензи и Джимом Майерингом.[3]
В chmod команда также была перенесена в IBM i Операционная система.[4]
Синтаксис команды
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
В этом разделе тысер относится к владельцу файла в качестве напоминания о том, что в символической форме команды используется "ты".
chmod [параметры] режим [, режим] файл1 [файл2 ...]
[5]
Обычно реализованные варианты включают:
-Р
Рекурсивно, т.е. включать объекты в подкаталоги.-v
подробный, показывать измененные объекты (неизмененные объекты не отображаются).
Если символическая ссылка указан, целевой объект будет затронут. Режимы файлов, непосредственно связанные с самими символическими ссылками, обычно не используются.
Для просмотра файлового режима ls
или же стат
могут использоваться команды:
$ ls -l findPhoneNumbers.sh-rwxr-xr-- 1 посох dgerman 823 16 декабря 15:03 findPhoneNumbers.sh$ stat -c% a findPhoneNumbers.sh754
В р
, ш
, и Икс
укажите доступ для чтения, записи и выполнения. Первый персонаж ls display обозначает тип объекта; а дефис представляет собой простой файл. Этот сценарий может быть прочитан, записан и выполнен пользователем. dgerman; прочитаны и выполнены членами сотрудники группа; и читаются только другими пользователями.
Восьмеричные режимы
Основные части chmod разрешения:
Например: drwxrwx ---
Символы справа от буквы "d" определяют разрешения для каждого учебный класс:
- три крайних левых символа,
rwx
, определите разрешения для Пользователь класс (т.е. владелец файла). - средние три символа,
rwx
, определите разрешения для Группа класс (т.е. группа владение файлом) - последние три символа,
---
, определите разрешения для Другие учебный класс. В этом примере пользователи, которые не являются владельцами файла и не являются участниками Группа (и, таким образом, находятся в Другие class) не имеют разрешения на доступ к файлу.
Числовые разрешения
В chmod числовой формат принимает до четырех восьмеричных цифр. Три крайние правые цифры определяют разрешения для пользователя файла, группы и других. Необязательная ведущая цифра, когда даны 4 цифры, указывает специальное Setuid, Setgid, и липкий флаги. Каждая цифра из трех крайних правых цифр представляет двоичное значение, которое управляет разрешениями на «чтение», «запись» и «выполнение» соответственно. Значение 1 означает, что классу разрешено это действие, а значение 0 означает, что это действие запрещено.
# | Разрешение | rwx | Двоичный |
---|---|---|---|
7 | читать, писать и выполнять | rwx | 111 |
6 | прочти и напиши | rw- | 110 |
5 | читать и выполнять | r-x | 101 |
4 | только чтение | р-- | 100 |
3 | написать и выполнить | -wx | 011 |
2 | писать только | -w- | 010 |
1 | выполнять только | --Икс | 001 |
0 | никто | --- | 000 |
Например, 754
разрешит:
- «читать» (4), «писать» (2) и «выполнять» (1) для Пользователь class, так как двоичное значение 7 (4 + 2 + 1) равно 111.
- "прочитать" (4) и "выполнить" (1) для Группа class, поскольку двоичное значение 5 (4 + 1) равно 101.
- Только "читать" (4) для Другие class, поскольку двоичное значение 4 (4) равно 100.
Числовой пример
Измените разрешения, чтобы разрешить членам программисты группа для обновления файла:
$ 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 sharedFile
Поскольку Setuid, Setgid и липкий биты не указаны, это эквивалентно:
$ chmod 0664 sharedFile
Символьные режимы
В chmod команда также принимает более тонкую символьную запись,[6] что позволяет изменять определенные режимы, оставляя другие режимы нетронутыми. Символьный режим состоит из трех компонентов, которые объединяются в единую текстовую строку:
$ chmod [Рекомендации][оператор][режимы] файл ...
Классы пользователей используются, чтобы различать, к кому применяются разрешения. Если классы не указаны, подразумевается «все». Классы представлены одной или несколькими из следующих букв:
Ссылка | Учебный класс | Описание |
---|---|---|
ты | Пользователь | владелец файла |
грамм | группа | члены группы файла |
о | другие | пользователи, которые не являются ни владельцами файла, ни членами его группы |
а | все | все три из вышеперечисленных, как уго |
В chmod программа использует оператор, чтобы указать, как должны быть настроены режимы файла. Принимаются следующие операторы:
Оператор | Описание |
---|---|
+ | добавляет указанные режимы в указанные классы |
- | удаляет указанные режимы из указанных классов |
= | указанные режимы должны быть сделаны точными режимами для указанных классов |
Режимы указывают, какие разрешения должны быть предоставлены или удалены из указанных классов. Есть три основных режима, которые соответствуют основным разрешениям:
Режим | Имя | Описание |
---|---|---|
р | читать | рчитать файл или выводить список содержимого каталога |
ш | записывать | шобряд в файл или каталог |
Икс | выполнять | еИксизвлечь файл или рекурсивно просмотреть дерево каталогов |
Икс | специальное исполнение | который сам по себе не является разрешением, а может использоваться вместо Икс. Он применяет разрешения на выполнение к каталогам независимо от их текущих разрешений и применяет разрешения на выполнение к файлу, в котором уже установлен хотя бы один бит разрешения на выполнение (либо Пользователь, Группа или же Другие). Это действительно полезно только при использовании с + и обычно в сочетании с -Р флаг для дачи Группа или же Другие доступ к большому дереву каталогов без установки разрешения на выполнение для обычных файлов (например, текстовых файлов), что обычно происходит, если вы просто используете chmod -R a + rx. , тогда как с Икс ты можешь сделать chmod -R a + rX. вместо |
s | setuid / gid | детали в Раздел специальных режимов |
т | липкий | детали в Раздел специальных режимов |
Множественные изменения можно указать, разделив несколько символьных режимов запятыми (без пробелов). Если пользователь не указан, chmod
проверит маска и эффект будет как будто "а"был указан, за исключением того, что биты, установленные в umask, не затрагиваются.[7]
Символические примеры
- Добавить разрешение на запись (ш) Группе (грамм) режимы доступа к каталогу, позволяющие пользователям в той же группе добавлять файлы:
$ ls -ld shared_dir # показать режимы доступа перед chmoddrwxr-xr-x 2 teamleader usguys 96 8 апр, 12:53 shared_dir$ chmod g + w shared_dir$ ls -ld shared_dir # показать режимы доступа после chmoddrwxrwxr-x 2 teamleader usguys 96 8 апр, 12:53 shared_dir
- Удалить разрешения на запись (ш) для всех классов (а), предотвращая запись в файл кем-либо:
$ ls -l ourBestReferenceFile-rw-rw-r-- 2 руководителя команды usguys 96 8 апр, 12:53 ourBestReferenceFile$ chmod a-w ourBestReferenceFile$ ls -l ourBestReferenceFile-r - r - r-- 2 тимлидера usguys 96 8 апр, 12:53 ourBestReferenceFile
- Установите разрешения для тысер и Группа (уг) читать и выполнять (rx) только (без разрешения на запись) на referenceLib, запрещая кому-либо добавлять файлы.
$ ls -ld referenceLibdrwxr ----- 2 тимлидер usguys 96 8 апр, 12:53 referenceLib$ chmod уг=rx referenceLib$ ls -ld referenceLibdr-xr-x --- 2 тимлидера usguys 96 8 апр, 12:53 referenceLib
Специальные режимы
В chmod Команда также может изменять дополнительные разрешения или специальные режимы файла или каталога. В символических режимах используется 's'представлять Setuid и Setgid режимы и 'т'представлять липкий режим. Режимы применяются только к соответствующим классам, независимо от того, указаны ли другие классы.
Большинство операционных систем поддерживают спецификацию специальных режимов с использованием восьмеричных режимов, но некоторые этого не делают. В этих системах можно использовать только символьные режимы.
Примеры командной строки
Команда | Объяснение |
---|---|
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 документы | добавляет разрешение на запись в каталог документы и все его содержимое (т.е. рecursively) для владельца и удаляет разрешение на запись для группы и других |
chmod ug = rw groupAgreements.txt | устанавливает права на чтение и запись для тысер и Группа |
chmod 664 global.txt | устанавливает права на чтение и запись для тысер и Группа, и предлагает прочитать Другие. |
chmod 744 myCV.txt | устанавливает разрешения на чтение, запись и выполнение для тысер, и устанавливает разрешение на чтение для Группа и Другие |
chmod 1755 findReslts.sh | устанавливает липкий бит, устанавливает права на чтение, запись и выполнение для владельца, а также устанавливает права на чтение и выполнение для группы и других (это предполагает, что сценарий будет сохранен в памяти) |
chmod 4755 setCtrls.sh | наборы UID, устанавливает разрешения на чтение, запись и выполнение для тысер, и устанавливает разрешения на чтение и выполнение для Группа и Другие |
chmod 2755 setCtrls.sh | наборы GID, устанавливает разрешения на чтение, запись и выполнение для тысер, и устанавливает разрешения на чтение и выполнение для Группа и Другие |
chmod -R u + rwX, g-rwx, o-rx личные вещи | рэксурсивно (т.е. для всех файлов и каталогов в личные вещи) добавляет права на чтение, запись и специальные разрешения на выполнение для тысер, удаляет разрешения на чтение, запись и выполнение для Группа, и удаляет разрешения на чтение и выполнение для Другие |
chmod -R a-x + X publicDocs | рэксурсивно (т.е. для всех файлов и каталогов в publicDocs) удаляет разрешение на выполнение для всех классов и добавляет специальное разрешение на выполнение для всех классов |
Системный вызов
В POSIX стандарт определяет следующие прототип функции:[8]
int chmod (const char * путь, режим mode_t);
В Режим Параметр - это битовое поле, состоящее из различных флагов:
Флаг | Восьмеричное значение | Цель |
---|---|---|
S_ISUID | 04000 | Установить идентификатор пользователя при выполнении |
S_ISGID | 02000 | Установить идентификатор группы при выполнении |
S_ISVTX | 01000 | Липкий кусочек |
S_IRUSR, S_IREAD | 00400 | Прочитано тысер |
S_IWUSR, S_IWRITE | 00200 | Написать тысер |
S_IXUSR, S_IEXEC | 00100 | Выполнить / поиск по тысер |
S_IRGRP | 00040 | Прочитано группой |
S_IWGRP | 00020 | Написать по группе |
S_IXGRP | 00010 | Выполнить / поиск по группе |
S_IROTH | 00004 | Прочитано другими |
S_IWOTH | 00002 | Напишите другим |
S_IXOTH | 00001 | Выполнить / поиск другими |
Смотрите также
- Разрешения файловой системы
- Режимы (Unix)
болтать
, команда, используемая для изменения атрибутов файла или каталога в системах Linux.Chown
, команда, используемая для смены владельца файла или каталога в Unix-подобных системахchgrp
, команда, используемая для изменения группы файла или каталога в Unix-подобных системахcacls
, команда, используемая на Windows NT и его производные для изменения списков управления доступом, связанных с файлом или каталогоматтриб
маска
, ограничивает режим (разрешения) при создании файла или каталога в Unix-подобных системах- Идентификатор пользователя
- Идентификатор группы
- Список команд Unix
Рекомендации
- ^ "Учебник по chmod". catcode.com.
- ^ «Управление системой AIX 5.3». Центр знаний IBM. IBM. Получено 30 августа 2015.
- ^ "chmod (1): изменить биты режима файла - справочная страница Linux". linux.die.net.
- ^ IBM. "Qshell для программирования IBM System i версии 7.2" (PDF). Получено 5 сентября 2020.
- ^ "Страница пользователя chmod с примерами и калькулятором - Linux - SS64.com". ss64.com.
- ^ «Справочник по командам AIX 5.5». Центр знаний IBM. IBM. Получено 30 августа 2015.
- ^ "Маскировка разрешений с помощью umask, chmod, 777 восьмеричных разрешений". training.idallen.com.
- ^ "функция chmod". Базовые спецификации Open Group, выпуск 7, издание 2013 г.. Открытая группа. Получено 30 августа 2015.
внешняя ссылка
- FreeBSD Общие команды Руководство : изменить режимы файлов -
- План 9 Руководство программиста, том 1 –
- Inferno Общие команды Руководство –
chmod
- справочная страница из GNU coreutils.- Руководство GNU "Установка разрешений"
- CHMOD-Win 3.0 - Бесплатный конвертер ACL ← → CHMOD для Windows.
- Учебник для начинающих с on-line "живым" примером