`sudo -u user script`는 /bin/sleep에도 액세스할 수 없습니다.

`sudo -u user script`는 /bin/sleep에도 액세스할 수 없습니다.

스크립트를 실행할 bla

sudo -u otheruser ./bla

내가 얻은 출력은 스크립트가 실행되었으므로 외부 명령을 사용할 수 없음을 나타냅니다.

otheruser
./bla: line 3: /bin/sleep: Permission denied
./bla: line 4: /bin/sleep: Permission denied

스크립트 자체는 간단합니다.

#!/bin/bash
echo $USER
/bin/sleep 1
sleep 1

마지막 오류 메시지는 실제로 bash가 실행되고 있지 않지만 내장 명령으로 sleep이 없는 쉘임을 나타내는 것 같습니다. 그렇지 않으면 불평하지 않을 것입니다 /bin/sleep.

문서를 읽으면서 청구서에 맞는 NOEXEC를 찾았지만 /etc/sudoers는 NOEXEC를 의미하지 않습니다.

내 NOEXEC가 올바른 방향으로 가고 있나요? 그렇다면 존재하지도 /etc/sudoers않고 프롬프트도 표시되지 않는데 sudo -V왜 활성화됩니까 ?

편집: 의견에서 요청한 대로 출력은 다음과 같습니다 sudo -l -l.

Matching Defaults entries for xxxxx on this host:
    always_set_home, env_reset, env_keep="LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE", targetpw, !authenticate, noexec, syslog=local5, env_reset,
    always_set_home

User xxxxx may run the following commands on this host:

Sudoers entry:
    RunAsUsers: ALL
    Commands:
ALL

LDAP Role: CENSORED
    RunAsUsers: root
    Options: !noexec
    Commands:
/bin/su - solr

LDAP Role: T-SOLRSEARCH
    RunAsUsers: root
    Options: !noexec
    Commands:
ALL

좋습니다. !noexec'!'에 무슨 일이 일어나고 있나요?

답변1

Matching Defaults entries for xxxxx on this host:
    …, noexec, …

사용자는 xxxxx모든 프로그램을 실행할 수 있지만 해당 프로그램은 다른 프로그램을 실행할 수 없습니다. 루트로 명령을 실행할 때 예외가 있습니다. 보안 제한 사항으로 이는 의미가 없습니다. 그냥 실행할 수 있다면어느그런 다음 프로그램을 실행 passwd하고 루트 계정의 암호를 변경할 수 있습니다. 루트로 프로그램을 실행할 수 있으면 모든 사용자로 프로그램을 실행할 수 있습니다. 따라서 이것은 잘못된 구성입니다.

이 옵션이 포함된 파일 Defaults에서 /etc/sudoers행을 찾으십시오 ./etc/sudoers.dnoexec

in 은 !noexec부정 !입니다. 이는 noexec옵션을 비활성화합니다.

관련 정보