[root@notebook ~]# grep USER /etc/shadow
USER:!!:16577:1:90:7:::
[root@notebook ~]#
[root@notebook ~]# su - USER
[USER@notebook ~]$ id
uid=1000(USER) gid=983(GROUPN) groups=983(GROUPN),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[USER@notebook ~]$ passwd
Changing password for user USER.
Changing password for USER.
(current) UNIX password:
passwd: Authentication token manipulation error
[USER@notebook ~]$
질문: 저는 RHEL 시스템의 일반 사용자입니다. 루트 권한 없이 비밀번호를 변경하는 방법은 무엇입니까?
비밀번호 변경 시 현재 비밀번호를 물을 때 비밀번호가 설정되어 있지 않으므로 그냥 엔터를 칩니다. "!!"를 참고하세요.
답변1
그럴 수 없습니다. 최소한 sudo 액세스 권한이 있거나 USER에게 sudo 권한이 있어야 합니다.
답변2
이 경우 문제는 기존 비밀번호로 지정할 수 있는 유효한 비밀번호가 없다는 점이다. 이 passwd
명령을 사용하면 루트는 원래 비밀번호를 입력하지 않고도 다른 사용자의 비밀번호를 변경할 수 있습니다. 이 사용자가 이 사용자의 비밀번호를 변경할 수 있도록 sudoers(물론 루트)를 수정할 수 있습니다.
USER ALL = (root) NOPASSWD: /usr/bin/passwd USER
이 접근 방식에는 적어도 한 가지 약점이 있습니다. 사용자는 잘못되고 어리석은 암호에 대한 시스템 보호를 무시할 수 있습니다.