Когда я смотрю на каталог
usr/bin/
, я вижу командную строку с passwd
-rwsr-xr-x. 1 root root 30768 2012-02-22 20:48 /usr/bin/passwd
, которая позволяет изменить, чтобы получить права root. с с.
Меня удивило, что только root может изменить пароль другого пользователя с помощью
passwd user
. Я хочу найти расположение этой команды и найти ее.
Эта команда также является частью каталога usr / bin /? или что-то еще
то, что я хочу сделать, это.
Я вхожу в систему
user1
и набираю
[user1] passwd user2
, конечно, это каким-то образом заблокировано. но я хочу узнать об этом больше.
Двоичный файл passwd
является suid, потому что ему нужны права root для изменения файла / etc / shadow
. Это не позволит непривилегированному пользователю изменять пароль другого пользователя. Это позволит root
изменять пароль любого пользователя, но не поэтому suid.
В Unix (и Linux) существует концепция реального пользователя и эффективного пользователя. Программа setuid, такая как / usr / bin / passwd
, установит эффективного пользователя на владельца файла; в этом случае он устанавливает эффективного пользователя root
.
Теперь то, что программа делает с этими повышенными разрешениями, зависит от самой программы.
В случае программы passwd
, если вы передадите имя пользователя, она проверит, является ли реальный пользователем root; если да, то успешно, в противном случае возвращает ошибку.
Таким образом, пользователь root
может запустить / usr / bin / password user2
, и это сработает, но если пользователь
выполнит ту же команду, то это не сработает. Есть только одна программа, но способ ее работы меняется в зависимости от пользователя, который ее запускает.