Изменение атрибутов

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

Посмотреть атрибуты файлов в текущей директории можно с помощью команды lsattr. Если запустить её без аргументов, она выведет атрибуты всех файлов в текущей директории. Если указать путь к файлу или папке, она перечислит свойства указанного файла или списка файлов в указанной папке соответственно (Рисунок 9):

lsattr example.txt

Рисунок 9 - Использование команды lsattr

Первые 20 символов в строке предназначены для отображения атрибутов файла.

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

Изменить атрибуты файла позволяет команда chattr:

chattr [модификатор][изменяемые атрибуты] [целевой файл или папка]

Таким образом, если необходимо защитить какой-то важный файл от посягательств, можно использовать такую команду (Рисунок 10):

chattr +i example.txt

Рисунок 10 - Проверка выполнения действий над файлом example.txt

На рисунке выше видно, что теперь выполнение действий над файлом example.txt не возможно.

Если же нужно вернуть файл в нормальное состояние, необходимо выполнить обратную операцию:

chattr -i example.txt

Для просмотра более подробной информации о файловых атрибутах, их ограничениях и правилах применения используют команду:

man chattr

SUID (Set User ID)

SUID – это атрибут исполняемого файла, позволяющий запустить его с правами владельца. В ОС РОСА "ХРОМ" приложение запускается с правами пользователя, запустившего указанное приложение. Это обеспечивает дополнительную безопасность, т.к. процесс с правами пользователя не сможет получить доступ на запись к важным системным файлам, например /etc/passwd, который принадлежит суперпользователю root.

Если на исполняемый файл установлен атрибут suid, то при выполнении эта программа автоматически меняет "эффективный userID" на идентификатор того пользователя, который является владельцем этого файла. Таким образом, независимо от того, кто запускает эту программу, она при выполнении имеет права хозяина этого файла.

SGID (Set Group ID)

Атрибут SGID аналогичен SUID, но относится к группе. При этом, если для каталога установлен бит SGID, то создаваемые в нем объекты будут получать группу владельца каталога, а не пользователя.

UMASK

Если процесс создает новый файл, он указывает, какие права доступа нужно задать для данного файла. Зачастую запрашиваются права 0666 (чтение и запись всеми), что дает больше разрешений, чем необходимо в большинстве случаев. Но при этом каждый раз, когда создается новый файл, Система обращается к параметру, называемому umask. Система использует значение umask, чтобы понизить изначально задаваемые разрешения на более разумные и безопасные. Просмотреть текущие настройки umask можно, набрав в командной строке:

user@user:~$ umask
0002

В ОС РОСА "ХРОМ" значением по умолчанию для umask является 0022, что позволяет другим пользователям читать новые файлы (если они могут до них добраться), но не изменять их. Чтобы автоматически обеспечивать больший уровень защищенности для создаваемых файлов, можно изменить настройки umask:

user@user:~$ umask 0077

Такое значение umask приведет к тому, что группа и прочие пользователи не будут иметь совершенно никаких прав доступа для всех вновь созданных файлов.

В отличие от "обычного" назначения прав доступа к файлу, umask задает, какие права доступа должны быть отключены. Таблица 22 показывает соответствия значений чисел и прав.

Воспользовавшись этой таблицей, можно определить, что последние три знака в 0077 обозначают –rwxrwx. umask показывает Системе, какие права доступа следует отключить. Совместив первое и второе становится видно, что все права для группы и остальных пользователей будут отключены, в то время как права владельца останутся нетронутыми.

Изменение SUID и SGID

Способ установки и удаления битов suid и sgid:

  • чтобы задать бит suid:
chmod u+s <путь к файлу>
  • чтобы задать бит sgid:
chmod g+s <путь к директории>