dev
두 명의 사용자 가 있지만 tomcat
둘 다 비밀번호가 없습니다.
자격 증명을 입력하지 않고도 dev
1이 그렇게 하도록 허용하려면 어떻게 해야 합니까 ?su - tomcat
1Ssh 키 파일을 사용하여 연결
답변1
원하는 것이 dev
임의의 명령 실행을 허용하는 것이라면 tomcat
걱정하지 말고 su
sudo를 사용하십시오. sudoers
파일 에 다음 줄을 추가합니다 ( visudo
명령 사용).
dev ALL = (tomcat) NOPASSWD: ALL
sudo -iu tomcat
dev
로그인 쉘을 실행하려면 사용자로 실행하십시오 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에 내장된 사용자 가정 도구를 사용해 왔습니다.
어디
dev
sudoer 사용자 이름이거나dev
sudoer 그룹 이름입니다(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