В операционной системе Linux для каждого файла и каталога есть свой набор правил, которые определяют кто и как может использовать документ. Даже просто запустить файл нужно определенные разрешения на запуск. Такие разрешения называются права доступа. Команда chmod (change mode) позволяет назначать их.
Что можно сделать с документом в Линуксе:
- прочитать содержимое;
- записать информацию;
- запустить на выполнение.
Содержание
Синтаксис
chmod [параметры] [права] путь
Основные параметры:
- -c - показать информация обо всех изменениях.
- -f - не показывать ошибки.
- -v - вывод полной информации.
- -R - рекурсивно обрабатывать файлы и каталоги.
- --help - показать справочную информацию.
- --version - информация о версии.
Применят часто символьную запись прав:
- -r - на чтение
- -w - на запись
- -x - на выполнение, права на запуск
- -s - на выполнение от супер пользователя root.
ВАЖНО! Записывают права в таком порядке: чтение-->запись-->выполнение.
Категории пользователей:
- -u (owner) - владелец.
- -g (group) - группа.
- -o (others)- другие.
Каждый кто имеет доступ к документу имеет свой набор правил. Например владелец имеет неограниченный доступ, группа только писать, другие выполнять.
Чтобы прибавить права используется знак "+", убавить "-".
chmod ugo+rwx file
Вместо букв можно назначать права с помощью цифр от нуля до семи:
- 0 - все запрещено
- 1 - выполнение, разрешено запускать документ
- 2 - запись, изменение.
- 3 - выполнение и запись.
- 4 - разрешено читать.
- 5 - читать и выполнять
- 6 - читать и писать
- 7 - все разрешено, писать, читать, выполнять.
chmod 777 file
Здесь 777:
- первая цифра назначает разрешения для владельца документа;
- вторая цифра - для группы;
- третья - для всех остальных.
- 744 - первая цифра говорит, что имеет полный доступ владельц, вторая цифра четыре - чтение для группы, третья цифра четыре - всем другим можно читать;
- 765 - для владельца - полные права, для группы - читать, писать и другим читать, выполнять;
- 774 - полный доступ для владельца, полный доступ для группы, чтение для остальных;
- 777 - всем все разрешено.
Примеры
Назначим для файла test полный доступ всем.
chmod 777 test
Чтобы посмотреть какие права для файла test, выполним дополнительную команду ls, с ключом -l. Подробней о команде ls можно посмотреть здесь.
На экране видим:
- -rwxrwxwx 1 - права доступа.
- Первый root - имя пользователя.
- Второй root - имя группы.
- 583 - размер файла test.
- test - название документа.
Сделаем тоже самое, только уже с помощью букв.
chmod ugo+rwx test
Здесь:
- u - владелец;
- g -группа;
- o - остальные;
- + - включить;
- r - читать;
- w - писать;
- x - выполнять.
Создадим новый документ "logi" с помощью команды touch и разрешим любым пользователям выполнять его и изменять. За выполнение отвечает буква "х", за изменения "w".
touch logi
chmod ugo+wx logi
В буквенном виде запись будет выглядеть так:
chmod 333 logi
Чтобы владельцу дать полный доступ, изменим первую цифру 3 на 7. Получается так:
chmod 733 logi
Дадим полный доступ всем, на каталог "catalog".
chmod 777 catalog
Чтобы дать разрешения 777 на папку и включая все ее содержимое, необходимо добавить звездочку. Получается так:
chmod 777 catalog/*
Теперь подкаталоги и файлы имеют 777.