모든 사용자가 bash 스크립트를 루트로 실행할 수 있도록 허용

모든 사용자가 bash 스크립트를 루트로 실행할 수 있도록 허용

나는 모든 사용자가 bash 스크립트를 실행할 수 있기를 원합니다. 하지만 이 bash 스크립트에는 루트 권한이 있어야 합니다. 이 스크립트가 읽기 전용이고 루트 권한으로 실행되기를 원합니다.

내 bash 스크립트 :

#!/bin/bash
/sbin/swapoff -a

내 검색에서 해결책을 찾았지만 작동하지 않습니다. 이것이 해결책입니다.

# chown root:root monshell.sh
# chmod 4755 monshell.sh
# exit
$ ./monshell.sh

하지만 기본 사용자로 실행할 때 다음 오류가 발생합니다. swapoff: Not superuser.

답변1

su 루트 bash 스크립트를 만드는 것은 위험합니다. Bash 스크립트는 다른 명령을 실행할 것으로 예상하지 않는 방식으로 조작하기가 너무 쉽습니다. 모든 새로운 su 루트 실행 파일은 새로운 보안 위험입니다.

이와 같은 권한을 부여하는 가장 좋은 방법은 sudo를 사용하는 것입니다. 다음과 같이 /etc/sudoers.d/swapoff 파일을 생성합니다.

ALL ALL = /bin/swapoff -a

그러면 모든 호스트(두 번째 ALL)의 모든 사용자(첫 번째 ALL)가 를 실행할 수 있습니다 sudo /bin/swapoff -a. 그리고 그렇게 할 때마다 syslog에 기록됩니다.

관련 정보