Найти в Дзене
takoedelo

Установка прав доступа, команда chmod

Оглавление

Права доступа к файлам в Unix / Linux контролируются командой chmod.

 chmod контролирует права доступа
chmod контролирует права доступа

Эта команда принимает числовые представления разрешений, а также символьные представления. Подробнее о разрешениях для файлов читайте в нашей предыдущей статье.

chmod с числовыми представлениями

Наиболее распространенным использованием chmod является команда типа chmod 644 FILENAME , использующая числовое представление разрешения, которого вы пытаетесь добиться. Ознакомьтесь с нашей предыдущей статьей о разрешениях для файлов, чтобы увидеть некоторые распространенные числовые представления, которые вы, возможно, захотите использовать с chmod.

chmod с символическими представлениями

Использовать символьные представления может быть немного проще, чем числовые. Например, чтобы добавить исполняемый файл для всех пользователей в файл, вы должны запустить chmod a+x FILENAME ("все добавляют исполняемый файл"). Чтобы добавить возможность записи только для владельца, вам следует запустить chmod u + w FILENAME ("пользователь добавляет запись"). Но вы также можете просто запустить chmod 644 для файла, чтобы сделать его доступным для чтения всем и записи вами, или chmod 755 для изменения разрешений в каталоге.

-2

‍При использовании символического представления, u означает пользователя (владельца), g означает группу, o означает другие (все остальные), а a означает всех (пользователя, группу и прочее). Любая их комбинация комбинируется с оператором: - для удаления разрешения, + для добавления или = для явной установки разрешений.

Обратите внимание, что "группа" относится к группе , которой принадлежит _file_, а не к группе текущего пользователя. Это контролируется chown или chgrp и выходит за рамки этой статьи, но имейте в виду, что иногда файл принадлежит группе, частью которой текущий пользователь не является, поэтому это может быть совершенно отдельное разрешение. Например, в случае веб-сайта файлы обычно принадлежат текущему пользователю, но назначаются группе www (или аналогичной). В этом случае вам потребуется разрешение как для пользователя, так и для группы на изменение файла, а также разрешение для всех остальных (других) на его чтение.

Чтобы использовать символические представления, объедините один или несколько типов пользователей, оператора и разрешения. Например, чтобы добавить разрешения на чтение и запись пользователю и группе, вы должны использовать chmod ug+ rw PATH. Чтобы задать пользователю и другим разрешениям чтение / выполнение, но не запись, вы могли бы использовать chmod uo=rx PATH. Смотрите страницу man chmod для получения дополнительных примеров.

-3

Управление тем, кто может читать и писать

Биты r и w файла определяют, кто может читать, а кто может записывать в файл. Если у пользователя есть доступ на чтение, но без доступа на запись он не сможет его изменить (это включает возможность удаления файла). Файл, имеющий разрешения -rw------- будет доступен для чтения и записи только владельцу файла (текущему пользователю), но полностью недоступен для кого-либо еще. В большинстве случаев вы хотите, чтобы файл был доступен для чтения всем, но для записи только вам, что означало бы разрешения -rw-r--r-- или 644

Упс, я это сломал

Если вы когда-нибудь перепутаете разрешения для файла и обнаружите, что не можете изменять его дальше, потому что у вас нет доступа на запись к нему (операция запрещена), вы можете исправить это с помощью sudo, предполагая, что у вас есть доступ суперпользователя к текущей системе.

Если у вас есть доступ суперпользователя к системе, вы можете обойти любые разрешения для файла и вносить в них изменения по мере необходимости. Для восстановления возможности изменять и удалять обычный файл используйте sudo chmod 644 FILENAME, введите системный пароль и затем продолжайте.

-4

‍Если у вас нет доступа к sudo в вашей системе, вам необходимо связаться с системным администратором, чтобы изменить ваш доступ к любым файлам, для которых у вас нет разрешений.

Создание исполняемого файла

Если для файла установлен исполняемый бит (x), он может быть выполнен непосредственно пользователями с этим разрешением. В случае двоичного файла или скрипта (с надлежащим шаблоном) это означает, что вы можете вызвать его без необходимости передавать его оболочке или процессору сценариев. Итак, вместо python3 myscript.py вы можете просто запустить ./myscript.py. Все утилиты командной строки (двоичные файлы) имеют исполняемый бит, установленный как минимум для владельца (пользователя), а обычно также для группы и других.

Чтобы сделать файл исполняемым для всех пользователей, используйте chmod a+x FILENAME. Вы можете изменить a на user, group или other, или комбинацию этих букв, чтобы точно указать, какие пользователи могут запускать файл, например, chmod ug+ x.

Обратите внимание, что для каталогов должен быть установлен исполняемый бит, чтобы пользователь мог вводить их с помощью cd или перечислять их с помощью ls. Если у пользователя нет разрешения на выполнение, он не сможет войти в каталог или перечислить его. Это означает, что вы можете скрыть весь каталог от других пользователей, кроме вас, или за пределами вашей группы, используя chmod go-x DIRECTORY.

Параметры chmod

Для команды chmod доступно несколько параметров. Наиболее подходящие из них рассказывают chmod, как обращаться с символическими ссылками.

-h параметр сообщает chmod, что если файл является символической ссылкой, измените разрешения для самой ссылки, а не для файла, на который она указывает. Если вы работаете с символическими ссылками и не хотите влиять на исходный файл, вам подойдет переключатель -h.

-R параметр указывает chmod действовать рекурсивно, чего обычно не рекомендуется делать

Но если вы _ _ используете chmod -R, помните о -H параметре, который останавливает рекурсивное действие от следования символическим ссылкам, и -L команде, которая заставляет следовать всем символическим ссылкам. По умолчанию используется -P параметр, в котором не используются символические ссылки.

-v параметр будет предлагать подробный вывод, показывающий имена затронутых файлов при выполнении команды. Если вы укажете это дважды, оно также выведет старые и новые разрешения как в восьмеричном, так и в символическом представлении:

-5

$ chmod -vv 777 to_changelog.rb
to_changelog.rb: 0100755 [-rwxr-xr-x ] -> 0100777 [-rwxrwxrwx ]

Примеры

Установите разрешения файла на -rw-r--r-, доступные для чтения и записи владельцем (пользователем) и для чтения всеми остальными:

 $ chmod 644 myfile.txt
$ chmod 644 myfile.txt

Сделайте файл или каталог исполняемым владельцем (-rwx-r--r--), доступным для чтения всем остальным

В случае каталога это означает, что только владелец может использовать для него cd или ls или влиять на все, что в нем содержится:

 $ chmod 755 myscript.sh
$ chmod 755 myscript.sh

Сделайте файл исполняемым кем угодно (например, -rwx-r-x-r-x)

$ chmod a+x myscript.sh
$ chmod a+x myscript.sh

Делает файл недоступным для всех, кроме владельца (-rw--------)

 $ chmod 600 ~/.ssh/rsa_id
$ chmod 600 ~/.ssh/rsa_id

Удалите права чтения, записи и выполнения для группы и всех остальных, оставив права пользователя (владельца)

$ chmod go-rwx ~/.ssh/rsa_id
$ chmod go-rwx ~/.ssh/rsa_id

ISO vs. BIN vs. CUE vs. IMG:форматы образов дисков

5 лучших дистрибутивов Linux, ориентированных на конфиденциальность

Как найти, где apt установил пакет в Debian и Ubuntu

Обновление Linux. Команды Linux

Как удалить файл или папку в Linux

Ставьте лайк .Смотрите другие наши статьи,подписывайтесь на канал чтобы не пропустить интересное.