visudo를 사용하여 권한을 부여해도 여전히 사용자가 명령을 실행할 수 없습니다.

visudo를 사용하여 권한을 부여해도 여전히 사용자가 명령을 실행할 수 없습니다.

다음과 같은이것daemon해결책은 사용자에게 실행 권한을 부여하고 싶습니다 /bin/date.

  1. apache2생성 시 사용된 사용자를 찾으십시오.

    # ps | grep httpd
    252 root     /usr/bin/httpd -k start
    260 daemon   /usr/bin/httpd -k start
    262 daemon   /usr/bin/httpd -k start
    264 daemon   /usr/bin/httpd -k start
    467 root     grep httpd
    
  2. 올바른 경로를 찾으세요 date:

    # which date
    /bin/date
    
  3. 다음을 사용하여 다음 줄을 추가합니다 visudo.

    Cmnd_Alias DATE=/bin/date                                               
    daemon ALL=NOPASSWD: DATE
    
  4. 재시작

  5. 새 권한을 테스트합니다.

    # sudo -u daemon date -s "2023-09-09 10:16:00"
    date: can't set date: Operation not permitted
    Sat Sep  9 10:16:00 UTC 2023
    

내 문법에 문제가 있는 걸까요? 나는 또한 다음을 시도했습니다.

ALL ALL=NOPASSWD: DATE

하지만 모두 똑같습니다. 이것은 Buildroot 환경입니다.

답변1

sudoers구성과 일치하는 정확한 경로를 지정해야 합니다 . 테스트도 앞뒤로 진행됩니다. 루트에서 시작한 daemon다음 실행해 보세요 sudo.

sudo -u daemon sudo /bin/date -s "2023-09-09 10:16:00"

작동해야합니다.

(현재 테스트는 사용자 date로 실행하려고 시도 daemon하지만 작동하지 않습니다.)

관련 정보