웹사이트 검색

비밀번호 없이 다른 사용자 계정으로 전환(su)하는 방법


이 가이드에서는 비밀번호를 요구하지 않고 다른 사용자 계정이나 특정 사용자 계정으로 전환하는 방법을 보여줍니다. 예를 들어, postgres(기본 PostgreSQL 수퍼유저 시스템 계정)라는 사용자 계정이 있고 모든 사용자(일반적으로 PostgreSQL 데이터베이스 및 시스템 관리자) postgres라는 그룹에서 비밀번호를 입력하지 않고 su 명령을 사용하여 postgres 계정으로 전환합니다.

기본적으로 루트 사용자만 비밀번호를 입력하지 않고 다른 사용자 계정으로 전환할 수 있습니다. 다른 사용자에게는 전환하려는 사용자 계정의 비밀번호를 입력하라는 메시지가 표시됩니다(또는 sudo 명령을 사용하는 경우 비밀번호를 입력하라는 메시지가 표시됨). 올바른 비밀번호를 제공하지 않으면 다음과 같은 메시지가 표시됩니다. 다음 스크린샷에 표시된 것처럼 '인증 실패' 오류가 발생했습니다.

위의 문제를 해결하려면 아래에 제공된 두 가지 솔루션 중 하나를 사용할 수 있습니다.

1. PAM 인증 모듈 사용

PAM(플러그형 인증 모듈)은 최신 Linux 운영 체제에서 사용자 인증의 핵심입니다. 특정 그룹의 사용자가 비밀번호 없이 다른 사용자 계정으로 전환할 수 있도록 하려면 /etc/pam.d/susu 명령에 대한 기본 PAM 설정을 수정하면 됩니다. 강한> 파일.

vim /etc/pam.d/su
OR
sudo vim /etc/pam.d/su

다음 스크린샷에 표시된 대로 “auth 충분한 pam_rootok.so” 뒤에 다음 구성을 추가합니다.

auth       [success=ignore default=1] pam_succeed_if.so user = postgres
auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

위 구성에서 첫 번째 줄은 대상 사용자가 postgres인지 확인하고, 그렇다면 서비스는 현재 사용자를 확인하고, 그렇지 않으면 default=1 줄을 건너뜁니다. 일반 인증 단계가 실행됩니다.

auth       [success=ignore default=1] pam_succeed_if.so user = postgres

다음 줄은 현재 사용자가 postgres 그룹에 있는지 확인하고, yes인 경우 인증 프로세스가 성공한 것으로 간주되어 결과적으로 충분함을 반환합니다. 그렇지 않으면 일반 인증 단계가 실행됩니다.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

파일을 저장하고 닫습니다.

다음으로, postgres 그룹에 대한 비밀번호 없이 postgres 계정에 su하려는 사용자(예: aaronk)를 추가하세요. usermod 명령을 사용합니다.

$sudo usermod -aG postgres aaronk

이제 aaronk 사용자로 postgres 계정에 su해 보세요. 다음 스크린샷에 표시된 것처럼 비밀번호를 묻는 메시지가 표시되지 않습니다.

su - postgres

2. Sudoers 파일 사용

sudoers 파일을 일부 변경하면 비밀번호를 요구하지 않고 다른 사용자에게 su할 수도 있습니다. 이 경우 다른 사용자 계정(예: postgres)으로 전환할 사용자(예: aaronk)는 sudoers 파일 또는 sudo 그룹에 있어야 합니다. sudo 명령을 호출할 수 있습니다.

sudo visudo

그런 다음 다음 스크린샷과 같이 “%sudo ALL=(ALL:ALL) ALL ” 줄 아래에 다음 구성을 추가합니다.

aaronk ALL=NOPASSWD: /bin/su – postgres

파일을 저장하고 닫습니다.

이제 aaronk 사용자로 postgres 계정에 su해 보십시오. 쉘에서 비밀번호를 입력하라는 메시지를 표시하지 않아야 합니다.

sudo su - postgres

지금은 여기까지입니다! 자세한 내용은 PAM 수동 입력 페이지(man pam.conf)와 sudo 명령의 페이지(man sudo)를 참조하세요.

man pam.conf
man sudo