5. Setuid

Существует множество случаев, когда обычным пользователям требуется повышенный доступ для выполнения определенных действий. Системный администратор не всегда может быть рядом, чтобы вводить пароль root каждый раз, когда пользователю нужен доступ к защищенному файлу, поэтому существуют специальные биты разрешений файла, позволяющие такое поведение. Set User ID (SUID) позволяет пользователю запускать программу от имени владельца файла программы, а не от своего собственного имени.

Давайте рассмотрим пример:

Допустим, я хочу изменить свой пароль, просто, не так ли? Я просто использую команду passwd:

passwd

Что делает команда passwd? Она изменяет несколько файлов, но самое главное — она изменяет файл /etc/shadow. Давайте посмотрим на этот файл на секунду:

$ ls -l /etc/shadow

-rw-r----- 1 root shadow 1134 Dec 1 11:45 /etc/shadow

О, подождите, этот файл принадлежит root? Как это возможно, что мы можем изменять файл, принадлежащий root?

Давайте посмотрим на другой набор разрешений, на этот раз для команды, которую мы запустили:

$ ls -l /usr/bin/passwd

-rwsr-xr-x 1 root root 47032 Dec 1 11:45 /usr/bin/passwd

Вы заметите здесь новый бит разрешения s. Этот бит разрешения является SUID. Когда файл имеет этот набор разрешений, он позволяет пользователям, запустившим программу, получать разрешения владельца файла, а также разрешения на выполнение, в данном случае root. Таким образом, по сути, когда пользователь запускает команду passwd, он запускает ее от имени root.

Вот почему мы можем получить доступ к защищенному файлу, такому как /etc/shadow, когда мы запускаем команду passwd. Теперь, если вы удалите этот бит, вы увидите, что вы не сможете изменить /etc/shadow и, следовательно, изменить свой пароль.

Изменение SUID

Как и обычные разрешения, существуют два способа изменения разрешений SUID.

Символьный способ:

sudo chmod u+s myfile

Числовой способ:

sudo chmod 4755 myfile

Как видите, SUID обозначается цифрой 4 и добавляется перед набором разрешений. Вы можете увидеть SUID, обозначенный заглавной S. Это означает, что он по-прежнему делает то же самое, но не имеет разрешений на выполнение.

Войдите, чтобы сохранить ваш прогресс обучения

Вход

Упражнения

Практика ведет к совершенству! Понимание того, как работают разрешения файлов, группы пользователей и специальные биты, такие как SUID, имеет решающее значение для управления и защиты систем Linux. Практический опыт закрепит ваши знания.

Вот практическая лаборатория для закрепления вашего понимания разрешений файлов и управления пользователями:

  1. Группы пользователей Linux и разрешения файлов - Практикуйтесь в создании и управлении пользователями и группами, понимании разрешений файлов и манипулировании владением файлами. Эта лаборатория предоставляет базовые знания, необходимые для понимания того, как SUID использует эти концепции для повышенного доступа.

Эта лаборатория поможет вам применить концепции в реальном сценарии и укрепить уверенность в управлении пользователями и файлами Linux.

Тест

Какое число представляет SUID?