Команда chown: изменение владельца файла или папки
В операционной системе линукс фаил имеет не только владельца но и группу владельцев. Например для файла file.txt их можно задавать с помощью команд shown и shgrp
Приведем пример изменения владельца файла(назначаем пользователю user) в ОС линукс c помощью команды shown:
sudo shown user file.txt
Приведем пример изменения группы владельцев файла(назначаем группу users) в ОС линукс c помощью команды shgrp:
sudo shgrp users file.txt
Для изменения группы владельцев файла в ОС линукс также можно использовать и команду shown:
sudo shown :users file.txt
Для рекурсивного изменения владельца каталога (papka) в ОС линукс также можно использовать и команду shown:
sudo shown -R user papka
Во всех вложенных в папку файлах владельцем будет пользователь user.
Команда chmod: изменение прав доступа
Код доступа к файлу можно изменить с помощью команды chmod. Такое право есть лишь у владельца файла и пользователя root. В первых UNIX-системах код доступа задавался в виде восьмеричного числа. В современных версиях поддерживается также система мнемонических обозначений. Первый способ удобнее для системного администратора, но при этом можно задать только абсолютное значение кода доступа. В случае использования мнемонического синтаксиса разрешается сбрасывать и устанавливать отдельные биты режима.
Первым аргументом команды chmod является спецификация прав доступа. Второй и последующий аргументы — это имена файлов, права доступа к которым подлежат изменению. При использовании восьмеричной формы записи первая цифра относится к владельцу, вторая — к группе, а третья — к другим пользователям. Если необходимо задать биты setuid/setgid или дополнительный бит, следует указывать не три, а четыре восьмеричные цифры: первая цифра в этом случае будет соответствовать трем специальным битам.
В табл. 6.4 показано восемь возможных комбинаций для каждого трехбитового набора, где символы r, w и х обозначают право чтения, записи и выполнения соответственно.
------------------------------------------------------------------------------------------------------------------------------------------
Восьмер. число Дв. число Режим доступа Восьмер. число Дв. число Режим доступа
0 000 --- 4 000 r--
1 001 --x 5 101 r-х
2 010 -w- 6 110 rw
3 011 -wx 7 111 rwx
------------------------------------------------------------------------------------------------------------------------------------------
Таблица 6.4. Коды доступа в команде chmod
Пример назначения или отзыва прав для владельца, группы и других пользователей для файла (skript) в ОС линукс также можно использовать и команду chmod:
# задаем права цифрами 750 //т.е. полные права владельцу, чтение выполнение группе и никаких прав остальным пользователям
sudo chmod 750 skript
# задаем права rwxrw-r-- //т.е. полные права владельцу, чтение выполнение группе и никаких прав остальным пользователям
sudo chmod rwxrw-r-- skript
# задаем права u+x // т.е. только право записи владельцу и никаких прав остальным
sudo chmod u+x skript
# задаем права ugo-x // т.е. отбираем у всех право выполнения файла!
sudo chmod ugo-x skript
Принято считать что линукс далеко не самая понятная для обычного пользователя система. Информация которая идет ниже полностью это подтверждает.
По мимо разграничения прав для владельца(users сокр. u), группы владельцев(group сокр. g) и всех остальных пользователей(others сокр. o) в линуксе существует дополнительный способ задать права на файлы и папки используя при этом сециальные биты.
Всего их три основных типа:
Suid - это бит запуска от имени владельца;
Sqid - это бит запуска от имени группы владельцев;
Stiсky - это пожалуй самый полезный бит, позволяющий защищать содержимое от недобросовестных пользователей.
Для установки специальных битов( в нашем случае для skript) используют следующие буквенные сочетания и команду chmod:
# задаем спец. Suid бит буквами
sudo chmod u+s skript
# задаем спец. Sgid бит буквами
sudo chmod g+s skript
# задаем спец. Sticky бит буквами
sudo chmod o+t skript
ВАЖНО! Не рекомендуется устанавливать специальные биты на файлы если вы до конца не понимаете зачем вам это нужно!
Эти биты также имеют числовое значение, см. таблицу ниже :
Различные комбинации их сочетаний для команды: sudo chmod ХХХХ script
4755 - цифра 4 говорит о том что установлен Suid бит, 755 - показывают права для user, group, other
2750- цифра 2 говорит о том что установлен Sgid бит, 750 - показывают права для user, group, other
6750 - цифра 4 говорит о том что установлен Suid бит(4)+Sgit бит(2) 755 - показывают права для user, group, other
3764 - цифра 3 говорит о том что установлен Sticky бит(1)+Sgit бит(2) 764 - показывают права для user, group, other