Приложение В. Команды chmod и chown: изменение прав доступа

Приложение В. Команды chmod и chown: изменение прав доступа

В Linux есть понятие владельца файла (каталога) и прав доступа к нему. С данными понятиями мы познакомились в главе I, но подробно не рассматривали их. Здесь мы поговорим об этом подробнее.

В Linux существует три типа прав доступа: чтение (r - от read), запись (w - от write), выполнение (х от execute). Право выполнения для файла означает, что данному пользователю разрешается запускать этот файл на выполнение, а для каталога право выполнения означает разрешение просматривать оглавление данного каталога. Обычно право выполнения файла устанавливается для файлов программ.

Можно установить разные наборы прав доступа дли владельца файла, группы владельца и для всех остальных пользователей. Ниже демонстрируется, как это выглядит на практике. Откройте терминал и введите команду (имя файла можно ввести любое, главное, чтобы он существовал):

ls -l ‹имя_файла›

Система ответит, например, так; -rw-r--r-- 1 den den-group 6051 Ноя 28 14:44 ‹имя_файла

В этом ответе нас больше всего интересует начало строки: -rw-r--r--. Это и есть права доступа. Начнем по порядку: первый символ (-) означает, что перед нами файл, а не каталог. Если бы перед нами был каталог, то вместо тире стоял бы символ d (от directory).

Идем дальше. Первая тройка символов (после дефиса) является правами доступа для владельца. Владельцу (пользователь den) разрешено читать (r) и изменять (w) файл, но запрещено запускать его на выполнение (третий символ - "-", а не "x").

Следующие два набора по три символа означают права доступа для членов группы владельца (группа den-group) и остальных пользователей (которые не являются владельцем файла или членами его группы). И те, и другие имеют право только читать файл (r--).

Нужно отметить, что в Linux любые права доступа cовсем не касаются пользователя root. Какие бы вы права доступами установили, пользователи root все равно получит полный доступ к любому файлу.

Наверняка вы уже побывали не на одном Linux-форуме и видели "магические" команды вроде:

chmod 666 файл

chmod 777 каталог

На самом деле - это никакие не заклинания, а обычные команды установки прав доступа. Команда chmod используется в системе для установки прав доступа к файлу или каталогу. Сначала указываются права доступа, а затем имя файла/каталога. Помните, что вы можете установить права доступа только к своим файлам, т.е. к файлам, владельцем которым являетесь именно вы. Пользователь root имеет право изменить права доступа к абсолютно любому файлу/каталогу.

Итак, разберемся с магией цифр. Посмотрим на набор прав: rw- r-- r--

Теперь заменим символы-буквы на 1, а дефисы - на 0. Получим:

110 100 100

А теперь загляните в таблицу двоичных/восьмеричных значений для целых чисел (табл. В.1).

Подставьте восьмеричные значения из табл. В.1 вместо двоичных, приведенных выше, - в итоге получится набор прав доступа 6 4 4 (владельцу разрешено чтение и запись, всем остальным - только чтение). Набор 666 соответствует правам доступа rw- rw- rw-. Это самый небезопасный вариант прав доступа, позволяющий всем желающим делать с файлом всё, что они хотят (вплоть до удаления). Поэтому права 666 лучше не устанавливать для файлов, содержащих что-то важное. Для таких файлов больше подойдут права 600, разрешающие операции с файлом только его владельцу.

Таблица В.1. Запись цифр 0-7 в двоичной и восьмеричной системах счисления

Двоичная Восьмеричная
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Права 777 обычно устанавливают для каталогов. Это то же, что и 666, но с дополнительным правом просмотра содержимого данного каталога.

Команда chown используется для изменения владельца файла. Например:

chown user report.txt

После выполнения этой команды пользователь user станет владельцем файла report.txt. Вы можете изменить владельца файла только для тех файлов, владельцем которых вы являетесь. Пользователь root может изменить владельца для любого файла/ каталога.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

5.5.2. Изменение прав доступа: chmod() и fchmod()

Из книги автора

5.5.2. Изменение прав доступа: chmod() и fchmod() Изменение прав доступа осуществляется с помощью одного из двух системных вызовов, chmod() и fchmod():#include <sys/types.h> /* POSIX */#include <sys/stat.h>int chmod(const char *path, mode_t mode);int fchmod(int fildes, mode_t mode);chmod() работает с аргументом имени файла, a fchmod() работает с


11.1. Проверка прав доступа

Из книги автора

11.1. Проверка прав доступа Как мы видели в разделе 5.4.2 «Получение информации о файлах», файловая система хранит идентификаторы владельца и группы файла в виде числовых значений; это типы uid_t и gid_t соответственно. Для краткости мы используем для «идентификатора владельца


11.1.2. Модификаторы прав доступа к файлам

Из книги автора

11.1.2. Модификаторы прав доступа к файлам Модификаторы прав доступа файлов — это также битовые маски, значения которых представляют биты setuid, setgid и sticky-бит ("липкий" бит). Если бит setuid установлен для исполняемого файла, то эффективный идентификатор пользователя процесса


11.3.3. Простое определение прав доступа

Из книги автора

11.3.3. Простое определение прав доступа Хотя режим файла представляет всю информацию, которая может понадобиться программе, для определения того, имеет ли она доступ к файлу, тестирование набора прав — дело хитрое и чреватое ошибкам. Поскольку ядро ухе включает в себя код


11.3.4. Изменение прав доступа к файлу

Из книги автора

11.3.4. Изменение прав доступа к файлу Права доступа и модификаторы прав доступа к файлу изменяются с помощью системного вызова chmod().#include <sys/stat.h>int chmod(const char *pathname, mode_t mode);int fchmod(int fd, mode_t mode);Хотя chmod() позволяет указать путь, помните, что права доступа к файлу определяет inode, а


Изменение прав

Из книги автора

Изменение прав Первое что мы сделаем в режиме пользователя root – передадим права файлов и директорий, установленных в Главе 5, пользователю root. Это необходимо, т.к. когда в дальнейшем мы оставим директорию /static добавим несколько пользователей, один из них может оказаться


4.6.1. Команды chown и chgrp

Из книги автора

4.6.1. Команды chown и chgrp Эти команды служат для смены владельца файла и группы файла. Выполнять смену владельца может только суперпользователь, смену группы может выполнить сам владелец файла или суперпользователь. Для того, чтобы иметь право сменить группу, владелец должен


Настройка прав доступа к файлам и ограничение прав пользователей

Из книги автора

Настройка прав доступа к файлам и ограничение прав пользователей В процессе работы на компьютере часто возникает необходимость защитить те или иные свои данные от неквалифицированного и несанкционированного просмотра и редактирования. Эта задача обычно возникает при


5.8. Права доступа и атрибуты файла. Команды chown, chmod и chattr

Из книги автора

5.8. Права доступа и атрибуты файла. Команды chown, chmod и chattr 5.8.1. Права доступа к файлам и каталогам Для каждого каталога и файла вы можете задать права доступа. Точнее права доступа автоматически задаются при создании каталога (файла), а вы, при необходимости, можете их


1.4. Изменение прав доступа к файлу

Из книги автора

1.4. Изменение прав доступа к файлу Вы можете изменять режим доступа к файлам, которыми владеете, с помощью команды chmod. Аргументы этой команды могут быть заданы либо в числовом виде (абсолютный режим), либо в символьном (символьный режим). Сначала рассмотрим символьный


1.4.2. Примеры использования команды chmod

Из книги автора

1.4.2. Примеры использования команды chmod Рассмотрим несколько примеров изменения режима доступа к файлу с помощью команды chmod. Предполагается, что строка режима для нашего файла имеет такой вид: rwxrwxrwx. Команда Строка режима Результат chmod a?x myfile rw?rw?rw- Отмена всех разрешений


1.4.4. Дополнительные примеры использования команды chmod

Из книги автора

1.4.4. Дополнительные примеры использования команды chmod Ниже приведен ряд Примеров, иллюстрирующих применение команды chmod в абсолютном режиме: Команда Строка режима Результат chmod 666 rw?rw?rw- Установка разрешений на чтение и запись для владельца, группы и других


1.7. Команды chown и chgrp

Из книги автора

1.7. Команды chown и chgrp Создав файл, вы автоматически становитесь его владельцем, но можете передать право владения другому пользователю, у которого есть запись в файле /etc/passwd. Только системный администратор либо фактический владелец может передавать права на файл другому


1.7.1. Пример использования команды chown

Из книги автора

1.7.1. Пример использования команды chown Вот как можно поменять владельца файла с помощью команды chown:$ ls -l-rwxrwxrwx 1 louise admin 345 Sep 20 14:33 project$ chown pauline project $ ls -l-rwxrwxrwx 1 pauline admin 345 Sep 20 14:33 projectПраво владения файлом project переходит от пользователя louise к


17.1. Проверка прав доступа к файлу

Из книги автора

17.1. Проверка прав доступа к файлу Основные форматы команды test:test условиеили[ условие ]Обратите внимание, что с обеих сторон от условия обязательно остаются пробелы. При проверке права на доступ к файлу может применяться довольно много условий. В табл. 17.1 содержится


18.3.7. Проверка прав доступа к файлу

Из книги автора

18.3.7. Проверка прав доступа к файлу Вы можете также осуществлять контроль прав доступа к файлу. Ниже приводится несложная проверка на предмет того, можно ли вести записи в файле test.txt, который переприсвоен переменной logfile.$ pg ifwr#!/bin/sh# ifwrLOGFILE=test.txt echo $LOGFILEif [ ! —w "$LOGFILE" ]; thenecho " You