Linux read only chmod

Команда chmod Linux

Система полномочий в Linux имеет очень важное значение, поскольку благодаря ей можно разделять привилегии между пользователями, ограничить доступ к нежелательным файлам или возможностям, контролировать доступные действия для сервисов и многое другое. В Linux существует всего три вида прав — право на чтение, запись и выполнение, а также три категории пользователей, к которым они могут применяться — владелец файла, группа файла и все остальные.

Эти права применяются для каждого файла, а поскольку все в системе Linux, даже устройства, считаются файлами, то, получается что эти права применимы ко всему. Мы более подробно рассматривали как работают права доступа к файлам Linux в отдельной статье, а этой, я хочу остановиться на команде chmod, которая используется для установки прав.

Команда chmod Linux

Эта команда имеет типичный для команд linux синтаксис, сначала команда, затем опции, а в конце файл или папка, к которой ее нужно применить:

$ chmod опции права /путь/к/файлу

Сначала рассмотрим какими бывают права доступа linux и как они устанавливаются. Пред этим рекомендую прочитать статью про права, ссылка на которую есть выше. Есть три основных вида прав:

Также есть три категории пользователей, для которых вы можете установить эти права на файл linux:

Синтаксис настройки прав такой:

группа_пользователей действие в ид_прав

В качестве действий могут использоваться знаки «+» — включить или «-« — отключить. Рассмотрим несколько примеров:

  • u+x — разрешить выполнение для владельца;
  • ugo+x — разрешить выполнение для всех;
  • ug+w — разрешить запись для владельца и группы;
  • o-x — запретить выполнение для остальных пользователей;
  • ugo+rwx — разрешить все для всех;

Но права можно записывать не только таким способом. Есть еще восьмеричный формат записи, он более сложен для понимания, но пишется короче и проще. Я не буду рассказывать как считать эти цифры, просто запомните какая цифра за что отвечает, так проще:

Права на папку linux такие же, как и для файла. Во время установки прав сначала укажите цифру прав для владельца, затем для группы, а потом для остальных. Например, :

  • 744 — разрешить все для владельца, а остальным только чтение;
  • 755 — все для владельца, остальным только чтение и выполнение;
  • 764 — все для владельца, чтение и запись для группы, и только чтение для остальных;
  • 777 — всем разрешено все.

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

  • -c — выводить информацию обо всех изменениях;
  • -f — не выводить сообщения об ошибках;
  • -v — выводить максимум информации;
  • —preserve-root — не выполнять рекурсивные операции для корня «/»;
  • —reference — взять маску прав из указанного файла;
  • -R — включить поддержку рекурсии;
  • —version — вывести версию утилиты;
Читайте также:  Linux installing binary files

Теперь, когда вы знаете опции и как настраиваются права доступа chmod, давайте рассмотрим несколько примеров как работает команда chmod linux.

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

Я не буду приводить много примеров, так как там и так все более-менее понятно после пояснения правил создания выражений установки прав. Сначала самый частый случай — разрешить выполнения скрипта владельцу:

Или можно воспользоваться цифровой записью:

chmod 766 file
ls — l file

Недостаток цифровой записи в том, что вы не можете модифицировать уже существующие права доступа linux. Например, в первом варианте вы просто добавили флаг выполнения для владельца файла, а все остальные права оставили неизменными. В восьмеричном варианте мы полностью заменили текущие права новыми — все для владельца и чтение/запись для группы и остальных. Как видите, права установлены как и ожидалось. Теперь отключим выполнение владельцем:

Дальше разрешим только чтение всем, кроме владельца:

Файлы с правами 000 недоступны никаким пользователям, кроме суперпользователя и владельца. Вернем права обратно:

Такая же ситуация с файлами, владельцем которых вы не являетесь, если вы хотите изменить их права — используйте sudo. Из модификаторов прав вы можете конструировать любые последовательности, я думаю тут нет смысла разбирать их все. Для того чтобы поменять права на все файлы в папке используйте опцию -R:

chmod -R ug+rw dir
ls -l dir/

Также вы можете смотреть подробную информацию про вносимые изменения, например:

Выводы

В этой небольшой статье была рассмотрена команда chmod linux. Она очень часто используется наряду с такими командами, как chown и umask для управления правами. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Setting Permission with chmod

Change mode so you can set permissions for read, write and execute for the user, members of your group and others. This uses binary values as an argument to set these. There are many common chmod permissions, a few key ones are:

In general, chmod commands take the form:

chmod [who][+,-,=][permissions] filename 
chmod g+w,o-rw,a+x ~/group-project-files/ 

This adds write permissions to the usergroup members, and removes read and write permissions from the “other” users of the system. Finally the a+x adds the execute permissions to all categories. This value may also be specified as +x. If no category is specified, the permission is added or subtracted to all permission categories.

chmod -R +w,g=rw,o-rw, ~/group-project-files/ 

The -R option applies the modification to the permissions recursively to the directory specified and to all of its contents

File type User Group Global d Directory rwx r-x r-x - Regular file rw- r-- r-- l Symbolic Link rwx rwx rwx 
Who Meaning u user g group o others a all 

chmod — details

Читайте также:  Astra linux l2tp ipsec

If no options are specified, chmod modifies the permissions of the file specified by file name to the permissions specified by permissions.

permissions defines the permissions for the owner of the file (the «user»), members of the group who owns the file (the «group»), and anyone else («others»). There are two ways to represent these permissions: with symbols (alphanumeric characters), or with octal numbers (the digits 0 through 7).

Let’s say you are the owner of a file named myfile, and you want to set its permissions so that: the user can read, write, ande xecute it; members of your group can read ande xecute it; and * others may only read it.

This command will do the trick:

This example uses symbolic permissions notation. The letters u, g, and o stand for «user», «group», and «other». The equals sign («=») means «set the permissions exactly like this,» and the letters «r», «w», and «x» stand for «read», «write», and «execute», respectively. The commas separate the different classes of permissions, and there are no spaces in between them.

Here is the equivalent command using octal permissions notation:

chmod 754 myfile # this is equivalent to chmod u=rwx,g=rx,o=r myfile 

Here the digits 7, 5, and 4 each individually represent the permissions for the user, group, and others, in that order. Each digit is a combination of the numbers 4, 2, 1, and 0:

4 stands for "read", 2 stands for "write", 1 stands for "execute", and 0 stands for "no permission." 

So 7 is the combination of permissions 4+2+1 (read, write, and execute), 5 is 4+0+1 (read, no write, and execute), and 4 is 4+0+0 (read, no write, and no execute).

777 — anyone can read, write and execute chmod 777 my_file 755 — for files that should be readable and executable by others, but only changeable by the issuing user 700 — only the user can do anything to the file 

These are the examples from the symbolic notation section given in octal notation:

Symbolic Notation Numeric Notation English ---------- 0000 no permissions -rwx------ 0700 read, write, & execute only for owner -rwxrwx--- 0770 read, write, & execute for owner and group -rwxrwxrwx 0777 read, write, & execute for owner, group and others ---x--x--x 0111 execute --w--w--w- 0222 write --wx-wx-wx 0333 write & execute -r--r--r-- 0444 read -r-xr-xr-x 0555 read & execute -rw-rw-rw- 0666 read & write -rwxr----- 0740 owner can read, write, & execute; group can only read; others have no permissions 

chmod Examples # Set the permissions of file.htm to «owner can read and write; group can read only; others can read only». chmod 644 file.htm

# Recursively (-R) Change the permissions of the directory myfiles, and all folders and files it contains, to mode 755: User can read, write, and execute; group members and other users can read and execute, but cannot write. chmod -R 755 myfiles # Change the permissions for the owner of example.jpg so that the owner may read and write the file. Do not change the permissions for the group, or for others. chmod u=rw example.jpg # Set the "Set-User-ID" bit of comphope.txt, so that anyone who attempts to access that file does so as if they are the owner of the file. chmod u+s comphope.txt # The opposite of the above command; un-sets the SUID bit. chmod u-s comphope.txt # Set the permissions of file.cgi to "read, write, and execute by owner" and "read and execute by the group and everyone else". chmod 755 file.cgi # Set the permission of file.txt to "read and write by everyone.". chmod 666 file.txt # Accomplishes the same thing as the above command, using symbolic notation. chmod a=rw file.txt 

Setting Default permissions for Directory with user groups

How to set rw permission in a directory shared by a group of users

  • First all users accessing the directory need to share a group.
  • Then change the group permissions of the directory and set to default rwx
chmod g+s //set gid setfacl -d -m g::rwx / //set group to rwx default setfacl -d -m o::rx / //set other 
# file: ..// # owner: # group: media # flags: -s- user::rwx group::rwx other::r-x default:user::rwx default:group::rwx default:other::r-x 

Examples

To modify existing files in goups use -m switch and to set new default permission with switch -d to the directory for group .

chmod g+s /home/limited.users/ setfacl -R -m g::rwx /home/limited.users/ // gives group read,write,exec permissions for currently existing files and folders, recursively setfacl -R -m o::x /home/limited.users/ //revokes read and write permission for everyone else in existing folder and subfolders setfacl -R -d -m g::rwx /home/limited.users/ // gives group rwx permissions by default, recursively setfacl -R -d -m o::--- /home/limited.users/ //revokes read, write and execute permissions for everyone else. 

This tute was compiled from Stackoverflow by @towshif

Читайте также:  Ralink rt3290 wifi driver linux

Источник

Оцените статью
Adblock
detector