특정 시간에 대규모 응용 프로그램은 루트 권한이 필요한 파일에 적은 수의 쓰기 작업을 수행해야합니다. 실제로 파일이 아니라 Linux에 파일로 노출되는 하드웨어 인터페이스입니다.
전체 응용 프로그램에 루트 권한을 부여하지 않기 위해 중요한 작업을 수행하는 bash 스크립트를 작성했습니다. 예를 들어 다음 스크립트는 하드웨어 인터페이스의 포트 17을 출력으로 활성화합니다.
echo "17" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio17/direction
그러나 suid
내 시스템에서 bash 스크립트에 대해 비활성화 되어 있으므로 이것을 달성하는 가장 좋은 방법이 무엇인지 궁금합니다.
스크립트를
sudo
호출 할 때 비밀번호가 필요하지 않도록 기본 애플리케이션에서 스크립트를 호출하고 sudoers 목록을 편집하십시오. 에 sudo 권한을 부여하는 것이 약간 불편합니다echo
.로 C 프로그램을 작성하고
fprintf
suid root로 설정하십시오. 문자열과 파일 이름을 하드 코딩하고 루트 만 편집 할 수 있는지 확인하십시오. 또는 텍스트 파일에서 문자열을 읽고 아무도 파일을 편집 할 수 없도록합니다.나에게 발생하지 않았으며 위에서 제시 한 것보다 안전하거나 간단한 다른 솔루션?