Руководство для новичков Linux. Список полезных команд. Как изменить права доступа в Linux. Типы прав и владельцев.
Основные права доступа к файлам в Linux
Изначально каждый файл имел три параметра доступа. Вот они:
- Чтение — разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
- Запись — разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
- Выполнение — вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.
Но все эти права были бы бессмысленными, если бы применялись сразу для всех пользователей. Поэтому каждый файл имеет три категории пользователей, для которых можно устанавливать различные сочетания прав доступа:
- Владелец — набор прав для владельца файла, пользователя, который его создал или сейчас установлен его владельцем. Обычно владелец имеет все права, чтение, запись и выполнение.
- Группа — любая группа пользователей, существующая в системе и привязанная к файлу. Но это может быть только одна группа и обычно это группа владельца, хотя для файла можно назначить и другую группу.
- Остальные — все пользователи, кроме владельца и пользователей, входящих в группу файла.
Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.
Но со временем такой системы стало не хватать и было добавлено еще несколько флагов, которые позволяют делать файлы не изменяемыми или же выполнять от имени суперпользователя, их мы рассмотрим ниже:
Источник: http://losst.ru/prava-dostupa-k-fajlam-v-linux
Введение
В этом руководстве вы научитесь изменять права доступа в Linux / Unix и устанавливать нового владельца файла/папки через командную строку. Существует 2 базовые команды, которые могут быть использованы для данных целей: chmod и chown.
Прокачайте ваш Linux сервер, воспользовавшись скидками на VPS-хостинг в Hostinger!
К предложению
Источник: http://hostinger.ru/rukovodstva/kak-izmenit-prava-dostupa-v-linux
Первый символ обозначает тип данных.
Данный символ может быть следующим:
В большинстве случаев это будет:
— | обычный файл; |
d | директория/каталог/папка (directory); |
l | символическая ссылка (link). |
Но может быть следующим:
b | файл блочного устройства (block); |
c | файл символьного устройства; |
s | доменное гнездо (socket); |
p | именованный канал (pipe). |
Следовательно, в нашем случае это директория (каталог, папка).
Источник: http://linuxrussia.com/terminal-chmod-chown.html
Syntax
Syntax of the chmod command is the following:
$ chmod [options] permissions file[s]
Options:
- -R, –recursive – Change files and directories recursively;
- -f, –silent, –quiet – Suppress most error messages.
View the current file / directory mode using ls command:
$ ls -l MyFile.txt-rw-r—r— 1 john admin 0 2012-12-02 04:30 MyFile.txt$ ls -ld MyDirdrwxr-xr-x 2 john admin 4096 2012-12-02 04:29 MyDir
or using stat command:
$ stat -c ‘%A %a %n’ MyFile.txt-rw-r—r— 644 MyFile.txt$ stat -c ‘%A %a %n’ MyDirdrwxr-xr-x 755 MyDir
Источник: http://shellhacks.com/ru/change-permissions-files-folders-linux-chmod-basics/
Выдаем права через терминал
В описанной ниже инструкции мы будем выдавать права на папку с названием test (вы, естественно, можете выбрать любое другое имя и для папки, и для группы), создав одноименную группу и добавив туда пользователя компьютера.
- Сначала создадим группу test, пользователи которой смогут управлять папкой. Для этого вводим в терминал команду sudo groupadd test.
Для удобства назовем группу так же, как папку
- Введем пароль суперпользователя, чтобы выполнить эту (и дальнейшие) команды от имени администратора.
При вводе паролей в терминале не отображаются вводимые символы. Придется набирать вслепую
- Затем добавляем в группу пользователя, которому хотим выдать права на работу с папкой. Для этого вводим команду sudo usermod -aG название группыимя пользователя.
Если что, parallels — имя пользователя
Чтобы проверить, в каких группах состоит пользователь, введем команду groups parallels._
Выполнять эту процедуру необязательно
Также проверить, добавился ли пользователь в группу можно с помощью утилиты members. Но сначала нужно будет ее скачать, введя команду sudo apt-get install members (в Fedora вводим sudo dnf install members).
По умолчанию этого инструмента в системе нет
Потом вводим название программы, а следом за ней название группы
Эта процедура тоже необязательная, но для диагностики в случае возникновения проблем может пригодиться
- Потом выдадим права на работу с папкой нашей группе с помощью команды sudo chgrp название группыназвание папки.
Устанавливаем связь между папкой и группой
- И в конце повышаем привилегии конкретной группы. Для этого используем команду chmod g+rw название папки.
Теперь выдаем права
Источник: http://zen.yandex.ru/media/tehnichka/daem-prava-na-papku-polzovateliu-v-linux-5fd74ccf33ed420c3fb023b5
Изменение прав на файл в цифровом виде
В цифровом виде всё точно также, только с чётким указанием прав для каждой категории:
root@server:~# chmod 0755 filename
Команда в примере выше выставит права 755 для файла с именем filename.
Источник: http://mb4.ru/operating-system/unix/1264-chmod-linux.html
Шаг 2 – Изменение владельца файла или папки через командную строку
chown – команда используется для смены владельца файла или папки. Самый стандартный синтаксис для этой команды:
chown [владелец/группа владельца] [имя файла]
К примеру, если у нас есть файл “demo.txt” и мы хотим изменить владельца на “jerry” и группу владельца на “clients”, нам необходима эта команда:
chown jerry:clients demo.txt
Как вы видите, мы отделили владельца и группу владельца символом “:” (двоеточие). Если мы хотим поменять только владельца файла, используем этот код:
chown jerry demo.txt
Мы просто убрали группу владельца и вписали нового владельца файла, в таком случае группа владельца останется без изменений.
Другой схожий пример, если мы хотим поменять только группу владельца:
chown :clients demo.txt
В этом случае, группа владельца изменится на clients (владелец останется прежним).
Источник: http://hostinger.ru/rukovodstva/kak-izmenit-prava-dostupa-v-linux
Использование справочного файла
Параметр —reference=ref_file позволяет вам установить права доступа к файлу такими же, как у указанного справочного файла ( ref_file ).
Например, следующая команда назначит права доступа file1 к file2
chmod —reference=file1 file2
Источник: http://routerus.com/chmod-command-in-linux/
Шаг 3 – Использование дополнительных опций с командами chmod и chown
Одна из основных опций работающая с обеими командами это -R, которая означает рекурсивный. Эта опция позволяет вам менять права доступа и владельца файла, заданной папки и ВСЕХ других файлов внутри нее.
ВАЖНО! Будьте очень осторожны с этой опцией, если вы используете ее неправильно, вы можете изменить права доступа и владельца ВСЕХ файлов в вашей системе, что приведет к ошибкам в работе и трате огромного количества времени на откат изменений.
Другие опции для “chmod” и “chown”:
- “-f” – тихая или силовая опция. При использовании данной опции скроет большинство сообщений об ошибках.
- “-v” – делает диагностику каждого файла затронутого командой.
- “-c” – схожа с опцией -v, но предоставляет информацию только в случае реальных изменений.
Источник: http://hostinger.ru/rukovodstva/kak-izmenit-prava-dostupa-v-linux
Рекурсивно изменить права доступа к файлу
Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R ( —recursive ):
Например, чтобы изменить права доступа для всех файлов и подкаталогов в каталоге /var/www на 755 вы должны использовать:
chmod -R 755 /var/www
Источник: http://routerus.com/chmod-command-in-linux/