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