내가 볼 때
usr/bin/
디렉토리에 passwd가 포함된 명령줄이 표시됩니다.
-rwsr-xr-x. 1 root root 30768 2012-02-22 20:48 /usr/bin/passwd
그리고 변경을 통해 루트 권한을 얻을 수 있습니다. 와 함께.
루트만 다른 사용자의 비밀번호를 변경할 수 있는지 궁금합니다.
passwd user
이 명령의 위치를 찾아서 찾아보고 싶습니다.
이 명령도 usr/bin/ 디렉토리의 일부입니까? 또는 다른 것
내가 하고 싶은 일은.
로그인했어요
user1
그리고 입력
[user1] passwd user2
물론 어느 정도 막혔습니다. 하지만 더 알고 싶습니다.
답변1
Unix(및 Linux)에는 이 개념이 있습니다.진짜사용자와효과적인사용자. 예를 들어, setuid 프로그램은 /usr/bin/passwd
유효 사용자를 파일의 소유자로 설정합니다. 이 경우 유효 사용자를 로 설정합니다 root
.
이제 프로그램이 이러한 상승된 권한을 사용하는 방법은 프로그램 자체에 따라 다릅니다.
프로그램에 관한 한 passwd
사용자 이름을 전달하면 다음을 확인합니다.진짜사용자는 루트입니다. 그렇다면 성공하고, 그렇지 않으면 오류가 반환됩니다.
따라서 root
사용자가 실행할 수 있고 /usr/bin/password user2
이것이 작동하지만 user
동일한 명령이 실행되면 실패합니다. 프로그램은 하나 뿐이지만 실행하는 사용자에 따라 작동 방식이 달라집니다.
답변2
이 passwd
바이너리는 파일을 수정하려면 루트 권한이 필요하기 때문에 적합합니다 /etc/shadow
. 권한이 없는 사용자가 다른 사용자의 비밀번호를 변경하는 것을 허용하지 않습니다. root
모든 사용자의 비밀번호를 변경할 수 있지만 그것이 안전한 이유는 아닙니다.