Владелец файла и права доступа

Владелец файла и права доступа

В системе существует несколько пользователей и групп пользователей, причём каждый пользователь может входить в одну или несколько групп. Для пользователей и групп прописаны различные права доступа к файлам.

Для каждого файла есть владелец, а так же группа, имеющая права на этот файл. Изначально владельцем файла становится пользователь, его создавший, а группа назначается по группе процесса, создающего файл.

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

Менять права доступа к файлу могут только владелец файла а так же суперпользователь (root). Чтобы изменить права доступа группы, владелец должен так же входить в группу, у которой есть права на файл, ну или опять же это должен делать суперпользователь.

Для изменения прав доступа используется команда chmod. Для смены владельца файла используется команда chown, для смены группы пользователей файла - команда chgrp.

Посмотреть владельца, группу файла и права доступа на него можно с помощью команды:

Во-первых, отсюда видно, что владелец файла root, группа тоже root (это как пример).Во-вторых, в самом начале сочетание символов даёт полное представление о правах доступа на файл.

Первый символ обозначает тип файла:

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

Права доступа можно изменять командой chmod. При этом сами права можно задать двумя способами (буквами или цифрами).Сначала способ, показавшийся мне более простым и понятным:

Здесь вместо каждой из букв wXp, нужно подставить соответсвующие значения.

Вместо w нужно подставить один из следующих символов, либо их сочетание:

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

На примерах это будет выглядеть следующим образом:chmod a+x file предоставляет всем пользователям системы право на выполнение file (варианты равнозначной записи: chmod ugo+x file, chmod +x file)chmod go-rw file удаляет права на чтение и запись для всех, кроме владельца filechmod u=rwx предоставляет владельцу полные права на file (права других пользователей остаются прежними)chmod u+w,go+x file добавляет владельцу право изменять, а всем остальным право выполнять file

Второй способ записи - цифровой. Он возможно даже ещё проще, только надо запоминть числовые значения:

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

chmod 777 file предоставляет полные права на file абсолютно всем пользователям системыchmod 760 file даёт полные права владельцу, права на просмотр и изменение группе и никаких прав остальным пользователям

Для смены владельца и группы файла существуют команды chown и chgrp. Использование:

Где newowner и newgroup новый владелец файла и новая группа файла соответственно. Сменить владельца может либо сам владелец (текущий), либо суперпользователь. Чтобы сменить группу владелец должен также входить в группу, которой принадлежит файл изначально.

К теме о команде chmod, есть ещё несколько признаков файла, задаваемых вместе с правами доступа.

1) бит сохранения задачи (бит прилипчивости - sticky bit) указывает системе, что после выполнения задачи, надо сохранить её в оперативной памяти. Удобно для часто вызываемых на выполнение задач для ускорения работы, но на достаточно мощных компьютерах не особо актуально.

2) бит смены идентификатора пользователя указывает, что программа должна получить те же права доступа, что имеет владелец программы (обычно, то есть когда этот бит не установлен, программа получает права те же, что имеет пользователь, её запустивший). Это бывает нужно в некоторых случаях, например, при смене пароля (иначе пользователь не мог бы поменять свой пароль).

3) бит смены идентификатора группы работает подобным образом.

В цифровом виде имеют значения:

При цифровом задании прав, данные атрибуты так же могут суммироваться и должны идти первыми:chmod 4775 file даёт полные права владельцу и группе, всем остальным даёт права только на чтение и выполнение и устанавливает бит смены идентификатора пользователяУстановка бита смены идентификатора пользователя:chmod +s file

При установленных всех трёх битов результат вывода команды ls -l может принять подобную форму:

В данном случае S указывает на установленный бит смены идентификатора пользователя, но владелец тут не имеет права на исполнение файла (файл может быть вообще не исполняемый), s указывает на установленный бит смены идентификатора группы, причём группа имеет право на выполнение файла, а также установлен бит сохранения задачи, но все остальные пользователи не могут выполнять файл - на это указывает T (аналогично как и с S и s, маленькая t указывала бы на то, что остальные пользователи имеют право на выполнение файла).

📎📎📎📎📎📎📎📎📎📎