setuid와 결합 된 스크립트는 위험합니다!
먼저이 질문 / 답변 , 특히이 답변 및 보안 경고를 살펴보십시오 .
여전히 setuid
set을 사용 하여 스크립트를 실행하려면 짧은 C 프로그램을 래퍼로 작성하고 setuid
컴파일 된 바이너리에 비트를 설정할 수 있습니다.
래퍼 예 :
int main(void) {
setuid(0);
clearenv();
system("/absolute/path/to/your/script.sh");
}
를 사용하는 또 다른 솔루션 sudo
( here 언급 ) :
루트로서 스크립트에 대한 쓰기 (및 기타) 액세스를 방지하십시오.
chown root /absolute/path/to/your/script.sh
chmod 700 / 절대 / 경로 /to/your/script.sh
루트를 제외한 아무도 스크립트를 대체 할 수 없는지 확인하십시오 ( 예 : 상위 폴더의 액세스 권한을 수정하여).
chown root / 절대 / 경로 / to / your /
chmod 755 / 절대 / 경로 / to / your /
다음을 사용 /etc/sudoers
하여 sudo 액세스 권한을 수정하십시오 visudo
.
ALL ALL = (루트) NOPASSWD : /absolute/path/to/your/script.sh
설정에 대한 자세한 내용 (예 : 특정 사용자 또는 그룹에 대한 액세스 제한)은 sudoers 맨 페이지에서 찾을 수 있습니다.
이후 모든 사용자는 비밀번호없이 루트로 스크립트를 실행할 수 있습니다.
sudo /absolute/path/to/your/script.sh
이것은 위의 래퍼 / 세트 솔루션을 사용하는 것과 유사합니다.