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 "живым" примером