Linux Fundamentals Part 3 / Основы Linux от основателя Gentoo. Часть 3: The Linux permissions model (один человек взял его на себя еще до появления тут)
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Модель прав доступа в Linux (анонимно) 14.11.10 в 11:26 |
|
|
Один пользователь, одна группа (анонимно) 14.11.10 в 10:59 |
||
|
В этом разделе мы рассмотрим права доступа в Linux и модель владения (ownership). Мы уже видели, что каждый файл принадлежит одному пользователю и одной группе. Это сама суть модели прав доступа в Linux. Вы можете узнать, какому пользователю и группе принадлежит файл в листинге команды ls -l. (анонимно) 14.11.10 в 11:06 |
||
|
$ ls -l /bin/bash (анонимно) 14.11.10 в 10:59 |
||
|
В данном примере исполнимый файл /bin/bash находится во владении пользователя root и группы wheel. Модель прав доступа позволяет задать три независимых уровня прав на каждый объект файловой системы -- для владельца, для группы и для всех остальных пользователей. (анонимно) 14.11.10 в 11:14 |
||
|
Давайте рассмотрим вывод команды ls -l. Взглянем на первую колонку листинга: (анонимно) 14.11.10 в 11:16 |
||
|
$ ls -l /bin/bash (анонимно) 14.11.10 в 11:16 |
||
|
Первое поле -rwxr-xr-x содержит символическое представление прав на данный файл. Первый знак (-) в этом поле определяет тип файла, в данном случае это обычный файл. Другие возможные значения: (анонимно) 14.11.10 в 11:22 |
||
|
'd' директория (анонимно) 14.11.10 в 11:24 |
||
|
Три тройки (анонимно) 14.11.10 в 11:25 |
||
|
$ ls -l /bin/bash (анонимно) 14.11.10 в 11:25 |
||
|
Остальная часть поля состоит из трех троек символов. Первая тройка представляет права владельца файла, вторая представляет права группы файла и третья права всех остальных пользователей. The_Barbarian 14.11.10 в 19:07 |
||
|
"rwx" (анонимно) 14.11.10 в 18:08 |
||
|
Выше r означает, что чтение (просмотр данных содержащихся в файле) разрешено, w означает запись ( изменение, а также удаление данных) разрешено и x означает исполнение (запуск программы разрешен). Собрав все воедино мы видим, что кому угодно разрешено читать содержимое и исполнять этот файл, но только владельцу (root) разрешено как либо модифицировать этот файл. Так что если нормальным пользователям разрешено копировать содержимое этого файла только root может изменять или удалять его. The_Barbarian 14.11.10 в 19:21 |
||
|
Перед тем как мы узнаем как изменить владельца или группу которой принадлежит файл, давайте сперва рассмотрим как узнать вашего текущего пользователя и группу к которой вы принадлежите. Если вы не использовали команду su недавно, ваш текущий пользователь это тот которым вы вошли в систему. Если вы часто используете su, вы можете не помнить пользователя под которым вы работаете на данный момент. Чтобы узнать под каким пользователем вы работаете, наберите whoami: kindacute 14.11.10 в 22:24 |
||
|
# whoami (анонимно) 14.11.10 в 18:08 |
||
|
В каких группах я нахожусь? (анонимно) 14.11.10 в 18:08 |
||
|
Чтобы увидеть к каким группам вы принадлежите, используйте команду groups: (анонимно) 14.11.10 в 18:09 Чтобы увидеть к каким группам вы принадлежите используйте команду groups: (анонимно) 14.11.10 в 18:10 С помощью команды groups можно выяснить, к каким группам вы принадлежите. joel 02.05.11 в 17:21 |
||
|
$ groups (анонимно) 14.11.10 в 18:10 |
||
|
Из этого примера видно, что я состою в группах drobbins, wheel, и audio. Если вы хотите посмотреть, в каких группах состоит другой пользователь, то передайте его имя в качестве аргумента. (анонимно) 25.11.10 в 11:56 |
||
|
$ groups root daemon (анонимно) 14.11.10 в 18:10 |
||
|
Изменение пользователя и группы принадлежания (анонимно) 14.11.10 в 22:18 |
||
|
Что бы изменить владельца или группу файла (или другого объекта) используется chown или chgrp соотвественно. Сначала нужно передать имя группы или владельца, а потом список файлов (анонимно) 25.11.10 в 11:59 |
||
|
# chown root /etc/passwd (анонимно) 14.11.10 в 18:11 |
||
|
Вы также можете изменить пользователя и группу одновременно используя команду chown в другой форме: kindacute 14.11.10 в 22:25 |
||
|
# chown root:wheel /etc/passwd (анонимно) 14.11.10 в 18:11 |
||
|
Вы можете использовать chown только из-под суперпользователя, но chgrp может быть использовано любым пользователем что бы изменить группу файла на группу пользователя, в которой он состоит. da_smag 25.11.10 в 12:07 |
||
|
Команды chown и chgrp могут быть использованы с параметром -R, что пользоляет рекурсивно изменить владельца или группу у всех объектов в данной директории и ниже. Пример: da_smag 25.11.10 в 12:04 |
||
|
# chown -R drobbins /home/drobbins (анонимно) 14.11.10 в 18:11 |
||
|
Познакомимся с chmod fpinger 07.12.10 в 03:27 |
||
|
chown и chgrp могут быть применены для смены владельца и группы объекта файловой системы, а другая программа -- именуемая chmod -- используется для изменения rwx прав, которые мы можем посмотреть в списке вывода команды ls -l. chmod принимает два или более параметров: "mode", описывает как права должны будут изменены, следующему файлу или списку файлов: fpinger 07.12.10 в 03:26 |
||
|
$ chmod +x scriptfile.sh (анонимно) 14.11.10 в 18:11 |
||
|
В примере выше, нашим "режимом" является +x. Как вы можете предположить, +x режим указывает chmod сделать этот отдельный файл для пользователя, группы и всех остальных исполняемым. fpinger 07.12.10 в 03:31 |
||
|
Если мы хотим удалить все разрешения на исполнение файла, нам необходимо сделать следующее: (анонимно) 16.11.10 в 13:43 |
||
|
$ chmod -x scriptfile.sh (анонимно) 14.11.10 в 18:11 |
||
|
User/group/other детализация MisterioSS 07.12.10 в 10:07 |
||
|
До сих пор, наши примеры команды chmod влияли на права доступа всех трех наборов прав доступа - пользователя, группы и всех остальных пользователей. Часто бывает удобно изменить только один или два набора за раз. Чтобы сделать это, просто используйте специальный символ для обозначения набора прав доступа, который вым необходимо изменить, со знаком + или - перед ним. Используйте u для пользователя, g для группы и o для остальных пользователей. (анонимно) 16.11.10 в 14:05 |
||
|
$ chmod go-w scriptfile.sh (анонимно) 14.11.10 в 18:11 |
||
|
Мы только что удалили запись для группы и всех остальных пользователей, но оставил разрешения "владелец" нетронутыми. (анонимно) 15.11.10 в 06:13 |
||
|
Сброс разрешений kindacute 14.11.10 в 22:35 Сброс прав доступа joel 02.05.11 в 18:20 |
||
|
Как дополнение к возможности бинарного изменения битов прав доступа существует возможность прямого задания требуемых разрешений как для одного, так и для всех наборов прав доступа. С помощью оператора "=" команды chmod можно задать требуемые разрешения (не указанные для данного оператора разрешения будут аннулированы). joel 02.05.11 в 17:16 |
||
|
$ chmod =rx scriptfile.sh (анонимно) 14.11.10 в 18:11 |
||
|
Выше мы просто выбрали все биты "читать" и "исполнять" , все биты "писать" не вибраны. Если вы хотите сбросить триплет, вы можете указать символическое имя для триплета перед =, как показано: MisterioSS 07.12.10 в 10:06 |
||
|
$ chmod u=rx scriptfile.sh (анонимно) 14.11.10 в 18:11 |
||
|
Числовые режимы kindacute 14.11.10 в 22:35 Цифровой режим задания прав доступа joel 02.05.11 в 18:23 |
||
|
Выше до теперь, мы использовали то что называется символическим способом указания прав доступа для команды chmod. Однако есть еще один достаточно распространенный способ указания прав: использование четырехзначных восьмеричных чисел. Используя этот синтаксис, называемый числовым синтаксисом прав доступа, каждая цифра представляет триплет разрешения. Например, в 1777, 777 устанавливают флаг для владельца, группу, и другие о которых мы говорим в этом разделе. 1 используется для указания специального бита прав доступа, который мы рассмотрим позже (смотрите "Неуловимая первая цифра" в конце раздела). Эта таблица показывает как интерпретируются второй, третий и четвертый бит. kindacute 14.11.10 в 22:34 До сих пор мы использовали в команде chmod т.н. символический режим задания прав доступа. Права доступа можно также задавать другим способом: с помощью квартета восьмизначных цифр. В этом синтаксисе (называемом цифровым режимом задания прав доступа), каждая восьмеричная цифра представляет собой набор трёх "элементарных" прав. Например, в наборе прав "1777" подстрока "777" отвечает за наборы прав доступа для "владельца", "группы" и "посторонних". С помощью восьмеричной цифры "1" задаются специальные биты доступа (см. далее подраздел "Плавающая первая цифра набора прав доступа"). С помощью следующей таблицы можно определить, как соотносятся возможные значения второй, третьей и четвертой восьмеричных цифр и символьные обозначения прав доступа: joel 02.05.11 в 18:42 |
||
|
Mode Digit (анонимно) 14.11.10 в 17:30 Символьное обозначение прав доступа Цифровое (восьмеричное) обозначение прав доступа joel 02.05.11 в 18:44 |
||
|
Числовой синтаксис прав доступа kindacute 14.11.10 в 22:36 Синтаксис цифрового режима задания прав доступа joel 02.05.11 в 18:16 |
||
|
Числовой синтаксис прав доступа особенно полезен когда требуется указать все разрешения для файла, так как указано в следующем примере: kindacute 14.11.10 в 22:37 Синтаксис цифрового задания прав доступа особенно полезен тогда, когда необходимо целиком задать права доступа к файлу (см. пример ниже). joel 02.05.11 в 18:48 |
||
|
$ chmod 0755 scriptfile.sh (анонимно) 14.11.10 в 18:12 |
