비밀번호를 사용한 후에도 사용자가 비밀번호를 가지고 있지 않다는 기사를 많이 발견했습니다 passwd -d
. 내 시스템 중 일부에서는 작동하지만( su
비밀번호를 제공하지 않고도 권한이 없는 계정에서 액세스할 수 있음) 일부에서는 작동하지 않습니다. null과 null을 모두 시도했지만 *
다음 중 어느 것도 작동하지 않습니다.
lapsio@pi-car1:~ $ sudo useradd potato -p '*'
lapsio@pi-car1:~ $ su potato
Password:
su: Authentication failure
lapsio@pi-car1:~ $ sudo passwd -d potato
passwd: password expiry information changed.
lapsio@pi-car1:~ $ su potato
Password:
su: Authentication failure
lapsio@pi-car1:~ $
참고해주세요 저는아니요말하다비어 있는비밀번호(빈 문자열 해시로 설정 가능) 그래요아니요계정 잠금에 대해서도 이야기하십시오. 나는 Password:
어떤 프롬프트도 전혀 나타날 것이라고 기대하지 않습니다 .su
getty
저 할 수 있어요지금 이 계정에 로그인하세요비밀번호가 필요하지 않습니다별말씀을요. 오래된 시스템에서 작동하는 것 같습니다. 이 동작을 제어할 수 있는 시스템 수준 구성이 있습니까?
명확히 하기 위해 다음과 같은 동작을 기대합니다.
lapsio@pi-car1:~ $ su potato
potato@pi-car1:~ $ #I'm potato user here, without being asked for password
루트에서 부팅할 때 작동하는 것과 비슷하지만 su
권한이 없는 계정에서도 부팅할 수 있기를 원합니다. 그리고 Arch liveCD의 루트 계정을 사용하는 것처럼 su
비밀번호 프롬프트 없이 로그인하세요 .getty
예알아요이는 나쁜 보안 관행이며 이로 인한 결과를 알고 있지만 여전히 무엇을 해야 할지 알고 싶습니다.
답변1
PAM 구성은 su
일반적으로 에 있으며 /etc/pam.d/su
이 지시어를 사용하여 동일한 디렉터리에 있는 다른 파일을 참조할 수 있습니다 @include
. 어느 시점에는 으로 시작 auth
하고 를 언급하는 줄이 있을 것입니다 pam_unix.so
. 이전 릴리스에는 nullok
빈 비밀번호를 허용하는 옵션이 포함될 수 있습니다 . 최신 배포판에서는 일반적으로 nullok_secure
에 나열된 TTY 장치 중 하나로 "인증"할 때만 빈 비밀번호를 허용합니다 /etc/securetty
. 또한 이 옵션의 구현은 nullok
다를 수 있습니다.
su
비밀번호 프롬프트 없이 특정 계정에 대한 명시적 접근을 허용하려면 다음과 같은 줄을 추가하면 됩니다.
auth sufficient pam_succeed_if.so quiet_fail user = potato
(노트:user
, =
사이의 공백 이 potato
중요합니다! )
이전에 적용 pam_unix.so
하고 su
이 명령만 사용하려면 줄을 사이에 배치해야 합니다./etc/pam.d/su
앞으로로 시작하는 모든 @include
지시문이나 다른 줄 auth
.
su
그러나 이와 같은 PAM 구성을 통해 바로가기를 만드는 것은 PAM 구성이 어떻게 작동하는지 먼저 이해하지 못한 채 약간 위험합니다.당신의지정되지 않은 Linux 배포판. 사용하기 전에 주의 깊게 테스트하십시오.