╔════════════════════════════════════╗
║ Как Изменить Права Доступа в Linux ║
╚════════════════════════════════════╝
В этом руководстве вы научитесь, как изменить права доступа в Linux и установить нового владельца
файла/папки через командную строку. Существует 2 базовые команды, которые могут быть использованы для данных
┌───────────────┐
целей: │ chmod и chown │. Что вам понадобится.
└───────────────┘
Перед тем, как вы начнете это руководство, вам понадобится следующее:
Доступ к командной строке
Шаг 1 — Как изменить права доступа в Linux через командную строку
┌───────┐
│ chmod │ — эта команда используется для изменения прав доступа к файлу или папке. Каждый файл имеет типы
└───────┘ пользователей, которые могут с ним взаимодействовать:
Тип Объяснение
Владелец Пользователь, создавший и владеющий данным файлом или папкой.
Группа Все пользователи, члены одной группы.
Другие Все другие пользователи в системе, не являющиеся ни владельцами, ни членами группы.
Команда s -l, может быть использована для отображения прав доступа и владельца. К примеру, команда ls -l
file1.txt отобразит:
╔════════════════════════════════════════════════╗ ┌─────────────┐
║ -rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt ║ │ "-rwxr-rw-" │— эта часть строки показывает права
╚════════════════════════════════════════════════╝ └─────────────┘
доступа. Здесь 4 главные буквы накоторые вам надо обратить внимание: r,w,x,d. d означает, что тип файла -
это каталог. В нашем примере, такой буквы нет (она стояла бы первой в строке), здесь вместо нее стоит символ
"-" (который в основном означает "нет"). Буква x означает разрешение на выполнение файла или папки (это
разрешение необходимо для входа в папку). Буква w означает разрешение на запись файла или папки
(редактирование, удаление и т.д.) И наконец последняя буква r, которая означает чтение. Если у вас есть
права на чтение файла, вы можете прочесть содержимое файла, но не сможете предпринять другие действия (к
примеру, вы можете прочитать код скрипта, но не сможете выполнить его).
1 – число хард связи. Проще говоря, хард связь это дополнительное имя для существующего файла.
user user – это значение показывает владельца файла и его группу.
0 – это значение показывает размер файла.
Jan 19 12:59 – отображает дату последнего изменения.
file1.txt – предоставляет имя файла или папки.
Хорошо, теперь давайте вернемся к команде chmod. Это команда позволяет нам изменить права доступа к файлу
или папке. Мы научим вас, как это сделать просто складывая номера. Каждое из прав доступа имеет свой
собственный номер:
╔════════════════════╗
║ r (чтение) – 4 ║
╟────────────────────╢
║ w (запись) – 2 ║
╟────────────────────╢
║ x (выполнение) – 1 ║
╚════════════════════╝
К примеру, если мы хотим изменить права доступа к файлу file1.txt на эти:
┌────────────────────────────────────────────────┐
│ -rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt │
└────────────────────────────────────────────────┘
Мы должны написать следующую команду:
┌─────────────────────┐
│ chmod 746 file1.txt │
└─────────────────────┘
Каждый номер в этой команде представляет собой права для одного из типов пользователей (владелец, группа и
другие). Первый номер 7. Теперь, используя объяснение числовых значений выше, единственный вариант для
получения числа 7 - сложение чисел 4, 2 и 1, получаем 4+2+1=7. Проще говоря, это означает ВСЕ права доступа
(чтение, запись, выполнение - rwx). Первый номер устанавливает права доступа для владельца файла. Второй
номер 4, который означает права доступа -r (чтение), устанавливает права доступа для группы владельца.
Третий номер 6, используя тот же способ, что и с первым номером, 4+2=6, дает группе другие, права на чтение
(4) и запись (2) файла. Третья часть в команде (file1.txt) - это имя файла для которого мы изменяем права
доступа. ┌─────────────────────┐
Еще один пример:│ chmod 777 file2.txt │, эта команда даст все права для каждого типа пользователей (владелец
группа и другие)└─────────────────────┘.
Вот список самых наиболее распространенных прав доступа для файлов:
╔════════════╦═══════════════════╦═════════════════════════════════════════════════════════════════════════╗
║ Значение ║ Цифровое значение ║ Объяснение ║
╟────────────╫───────────────────╫─────────────────────────────────────────────────────────────────────────╢
║ -rw------- ║ 600 ║ Владелец может читать и записывать файл. ║
╟────────────╫───────────────────╫─────────────────────────────────────────────────────────────────────────╢
║ -rw-r--r-- ║ 644 ║ Владелец может чит и записывать файл, группа и другие могут только чит. ║
╟────────────╫───────────────────╫─────────────────────────────────────────────────────────────────────────╢
║ -rw-rw-rw- ║ 666 ║ Владелец, группа и другие могут читать и записывать. ║
╟────────────╫───────────────────╫─────────────────────────────────────────────────────────────────────────╢
║ -rwx------ ║ 700 ║ Влад. может чит., запис. и вып., гр. и др. не имеют ник. прав доступа. ║
╟────────────╫───────────────────╫─────────────────────────────────────────────────────────────────────────╢
║ -rwx--x--x ║ 711 ║ Владелец может чит., запис. и вып., группа и другие могут только вып. ║
╟────────────╫───────────────────╫─────────────────────────────────────────────────────────────────────────╢
║ -rwxr-xr-x ║ 755 ║ Владелец может чит., запис. и вып., группа и другие могут читать и вып. ║
╟────────────╫───────────────────╫─────────────────────────────────────────────────────────────────────────╢
║ -rwxrwxrwx ║ 777 ║ Все типы пользователей могут читать, записывать и выполнять. ║
╚════════════╩═══════════════════╩═════════════════════════════════════════════════════════════════════════╝
Наиболее распространенные права доступа для каталогов:
╔════════════╦═══════════════════╦═════════════════════════════════════════════════════════════════════════╗
║ Значение ║ Цифровое значение ║ Объяснение ║
╟────────────╫───────────────────╫─────────────────────────────────────────────────────────────────────────╢
║ drwx—— ║ 700 ║ Только владелец может читать и записывать в этом каталоге. ║
╟────────────╫───────────────────╫─────────────────────────────────────────────────────────────────────────╢
║ drwxr-xr-x ║ 755 ║ Влад., гр. и др. могут чит. кат., но только влад. может изм. содерж. ║
╚════════════╩═══════════════════╩═════════════════════════════════════════════════════════════════════════╝
Существуют и другие способы, как изменить права доступа в Linux, используя команду chmod. Но нашей
персональной рекомендацией станет, изучение одной из этих команд и ее использование (в этом случае способ с
номерами). Если вы хотите узнать больше о других путях изменения прав доступа, вы можете прочитать об этом
здесь.
╔════════════════════════════════════════════════════════════════════╗
║ Шаг 2 — Изменение владельца файла или папки через командную строку ║
╚════════════════════════════════════════════════════════════════════╝
┌───────┐
│ chown │– команда используется для смены владельца файла или папки. Самый стандартный синтаксис для этой
└───────┘ команды:
┌───────────────────────────────────────────────┐
│ chown [владелец/группа владельца] [имя файла] │
└───────────────────────────────────────────────┘
К примеру, если у нас есть файл "demo.txt" и мы хотим изменить владельца на "jerry" и группу владельца на
"clients", нам необходима эта команда:
╔══════════════════════════════╗
║ chown jerry:clients demo.txt ║
╚══════════════════════════════╝
Как вы видите, мы отделили владельца и группу владельца символом ":" (двоеточие). Если мы хотим поменять
только владельца файла, используем этот код:
╔══════════════════════╗
║ chown jerry demo.txt ║
╚══════════════════════╝
Мы просто убрали группу владельца и вписали нового владельца файла, в таком случае группа владельца
останется без изменений.
Другой схожий пример, если мы хотим поменять только группу владельца:
╔═════════════════════════╗
║ chown :clients demo.txt ║
╚═════════════════════════╝
В этом случае, группа владельца изменится на clients (владелец останется прежним).
╔══════════════════════════════════════════════════════════════════════╗
║ Шаг 3 — Использование дополнительных опций с командами chmod и chown ║
╚══════════════════════════════════════════════════════════════════════╝
Одна из основных опций работающая с обеими командами это -R, которая означает рекурсивный. Эта опция
позволяет вам менять права доступа и владельца файла, заданной папки и ВСЕХ других файлов внутри нее. ВАЖНО!
Будьте очень осторожны с этой опцией, если вы используете ее неправильно, вы можете изменить права доступа и
владельца ВСЕХ файлов в вашей системе, что приведет к ошибкам в работе и трате огромного количества времени
на откат изменений.
Другие опции для “chmod” и “chown”:
“-f” – тихая или силовая опция. При использовании данной опции скроет большинство сообщений об ошибках.
“-v” – делает диагностику каждого файла затронутого командой.
“-c” – схожа с опцией -v, но предоставляет информацию только в случае реальных изменений.
════════════════════════════════════════════════════════════════════════════════════════════════════════════
cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda5 during installation
UUID=3993a180-e15f-4ae2-8aeb-e9c5dac9ddf2 / ext4 errors=remount-ro 0 1
#UUID=3993a180-e15f-4ae2-8aeb-e9c5dac9ddf2 / ext4 rw,errors=remount-ro 0 0
# swap was on /dev/sda6 during installation
UUID=98a11a77-47a2-4c70-bd09-6dd0f5c9d7ba none swap sw 0 0
#UUID=b566695d-fc3c-49c6-9871-8978b9ccf0bd /MYCOP ext4 defaults 0 1
UUID=b566695d-fc3c-49c6-9871-8978b9ccf0bd /MYCOP ext4 rw,nosuid,nodev,uhelper=udisks2 0 0
#UUID=5cf4d5e9-0f70-472e-8b8f-9a0d5221e61e /HHH ext4 defaults 0 1
UUID=5cf4d5e9-0f70-472e-8b8f-9a0d5221e61e /HHH ext4 rw,nosuid,nodev,uhelper=udisks2 0 0