비밀번호가 없는 사용자가 비밀번호가 없는 다른 사용자로 변경되도록 허용

비밀번호가 없는 사용자가 비밀번호가 없는 다른 사용자로 변경되도록 허용

dev두 명의 사용자 가 있지만 tomcat둘 다 비밀번호가 없습니다.

자격 증명을 입력하지 않고도 dev 1이 그렇게 하도록 허용하려면 어떻게 해야 합니까 ?su - tomcat

1Ssh 키 파일을 사용하여 연결

답변1

원하는 것이 dev임의의 명령 실행을 허용하는 것이라면 tomcat걱정하지 말고 susudo를 사용하십시오. sudoers파일 에 다음 줄을 추가합니다 ( visudo명령 사용).

dev ALL = (tomcat) NOPASSWD: ALL

sudo -iu tomcatdev로그인 쉘을 실행하려면 사용자로 실행하십시오 tomcat.

답변2

태그에 sudo를 추가했습니다. sudoers 파일에서 허용된 사용자에게 dev를 추가할 수 있으며, 원하는 경우 비밀번호 없이 실행할 수 있는 명령을 제한할 수 있습니다. 그런 다음 "sudo su - tomcat"을 입력하기만 하면 됩니다.

visudo다음 줄을 추가하려면 실행하세요 .

dev ALL = NOPASSWD: /usr/bin/su - tomcat

sudoers man 파일에 더 많은 정보와 예제가 있습니다.

답변3

이것이 내가 한 방법입니다.

파일을 만들었습니다./etc/sudoers.d/dev

포함하다:

# allow user dev to become user tomcat
# invoked with [dev@host ~]$ sudo su - tomcat
dev ALL = (root) NOPASSWD: /bin/su - tomcat

파일 권한이 변경됨chmod 0440 /etc/sudoers.d/dev

dev에서 별칭을 만들었습니다..bashrc alias tomcat='sudo su - tomcat'

tomcat이를 통해 개발자 사용자는 명령줄에 비밀번호를 입력하거나 실제로 비밀번호를 입력하지 않고도 tomcat 사용자가 될 수 있습니다 .

답변4

저는 sudo에 내장된 사용자 가정 도구를 사용해 왔습니다.

어디

  • devsudoer 사용자 이름이거나
  • devsudoer 그룹 이름입니다(sudo 구성에서는 이것을 호출합니다 %dev).
  • tomcat대상 사용자 입니다

/!\ 참고, visudo글을 쓰기 전에 항상 sudo의 프로필 확인을 사용하거나 항상 sudo의 프로필 편집을 사용하세요 visudo. 잘못된 sudo 구성 파일로 인해 sudo가 손상된 상태가 되어 추가 호출이 방지됩니다.

sudo env EDITOR=nano visudo -f /etc/sudoers.d/runas-tomcat

#/etc/sudoers.d/runas-tomcat
dev ALL=(tomcat) NOPASSWD: ALL
%dev ALL=(tomcat) NOPASSWD: ALL

sudo를 이와 같이 사용하면 아래와 같습니다. 플래그 --set-home( -H)는 선택사항이며 $HOME에서 대상 사용자의 홈페이지를 찾아서 수정합니다 /etc/passwd. 플래그 --shell( -s) 또는 --login( -i)는 선택 사항입니다 -s.당신의셸이 집처럼 느껴져야 합니다. 대신 로그인 거부와 같이 여기에 지정된 대상 사용자 셸을 사용하세요. sudo 는 -i실행할 명령을 지정하기 위해 플래그가 아닌 추가 인수가 필요합니다./etc/passwd/usr/sbin/nologin-s-i

dev@localhost ~ $ sudo --set-home --shell --user tomcat
tomcat@localhost /home/dev/ $ cd
tomcat@localhost ~ $

또는 더 짧은 형식

sudo -u tomcat  echo whoami
sudo -Hsu tomcat  # enter tomcat with your shell and their home

관련 정보