sudo su에서 명령 실행

sudo su에서 명령 실행

한 컴퓨터에서 나(tlous)는 다른 사용자(serviceAccount)로 셸을 열 수 있는 권한을 부여 받았습니다.

실행: sudo su - serviceAccount이 serviceAccount 사용자로 셸을 여는 것과 같은 원하는 효과가 있습니다. 여태까지는 그런대로 잘됐다.

괜찮습니다. 하지만 쉘을 열지 않고 해당 사용자로 명령을 실행하고 싶습니다.

명령이 다음과 같다고 가정합니다.whoami

나는 시도했다:

sudo -u serviceAccount whoami

죄송합니다. 사용자 tlou는 serviceAccount로 '/usr/bin/whoami'를 실행할 수 없습니다...

sudo su - serviceAccount -c whoami

죄송합니다. tlou 사용자는 실행할 수 없습니다 '/bin/su - serviceAccount -c whoami'...

그리고 다른 변화. 내가 무엇을 놓치고 있나요? oneliner에서 이 작업을 수행할 수 있습니까? 그 이유는 실제로 이것을 ssh 명령으로 실행하고 싶기 때문입니다.ssh -t [email protected] sudo su - serviceAccount -c whoami

sudo -l을 사용하여 20190412를 업데이트하세요.

sudo -l

Matching Defaults entries for tlous on this host:
    !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
    LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin, !authenticate

User tlous may run the following commands on this host:
    (root) /usr/bin/su - serviceAccount, /bin/su - serviceAccount

답변1

귀하의 출력에 따르면 sudo -l다음과 같습니다.

User tlous may run the following commands on this host:
    (root) /usr/bin/su - serviceAccount, /bin/su - serviceAccount

당신은 주어진분명히구성에서 sudoers두 가지 특정 명령을 실행할 수 있는 권한 :

  • /usr/bin/su - serviceAccount
  • /bin/su - serviceAccount

시도 중인 명령(예 sudo -u serviceAccount whoami: )이 승인된 명령 목록에 없으므로 매개변수를 더 추가하세요.

sudoers구성에 액세스하여 실행하려는 명령을 추가 하려면 시스템 관리자에게 요청해야 합니다 sudo.

답변2

어쩌면 이것을 시도해 볼 수 있습니다:

SSH-t[이메일 보호됨]"sudo -u serviceAccount whoami"

관련 정보