웹 서버 사용자가 sudo 권한이 필요한 스크립트를 트리거하도록 허용하는 방법은 무엇입니까?

웹 서버 사용자가 sudo 권한이 필요한 스크립트를 트리거하도록 허용하는 방법은 무엇입니까?

제 경우에는 웹 서버 사용자가 권한을 lighttpd가지고 실행해야 하는 특정 스크립트를 트리거 하도록 할 수 있습니까 sudo?

나는 lighttpd사용자가 권한이 있는 하나의 스크립트만 실행할 수 있기를 원합니다 sudo.

이라고 부르는 이 스크립트는 createFolder.sh공유의 상위 수준에 있는 템플릿에서 폴더를 생성합니다. 사용자는 공유의 상위 수준에 대한 쓰기 권한이 없지만 새로 생성된 폴더 구조에 대한 쓰기 권한이 있어야 합니다. 따라서 스크립트는 하위 폴더에 대한 올바른 권한을 설정하며, 여기에서 sudo( chown및 ) chmod를 사용해야 합니다 setfacl.

웹 인터페이스를 사용하고 싶은 이유는 사용자가 정확한 폴더 구조를 정의하는 폴더 이름 및 설정에 대한 데이터를 삽입할 수 있기 때문입니다.

사용자가 비밀번호 없이 실행할 /etc/sudoers수 있도록 항목을 추가하는 것만큼 간단할 것이라고 생각했습니다 . 다음과 같은 오류가 발생하여 제가 틀린 것 같습니다.lighttpdcreateFolder.sh

sudo: mkdir을 실행할 수 없습니다. /var/db/sudo/lighttpd: 권한이 거부되었습니다.

귀하는 로컬 시스템 관리자로부터 일반적인 강의를 들으셨으리라 믿습니다. 일반적으로 다음 세 가지로 요약됩니다.

1) 타인의 사생활을 존중합니다.
2) 입력하기 전에 생각하십시오.
3) 큰 힘에는 큰 책임이 따른다.

sudo: tty가 없고 Askpass 프로그램이 지정되지 않았습니다.

올바른 권한을 가진 사용자로 항상 실행되도록 스크립트를 설정하는 것이 가능하다면 정렬할 수 있지만 이를 수행하는 방법이나 가능한지 찾을 수 없습니다.

참고로 저는 Linux를 스스로 배웠고 제 능력에 자신감이 있더라도 전문가는 아니며 항상 개선하려고 노력하고 있습니다.

CentOS 7 상자를 실행 중입니다.

편집하다createFolder.sh: 텍스트 파일이 수정될 때 inotify를 사용하여 스크립트를 실행함으로써 문제를 해결했습니다 . 정답과 댓글을 확인하세요. 저를 올바른 방향으로 안내해 주셔서 감사합니다.

답변1

후자가 전자로 "푸시"되도록 하는 대신 루트 스크립트가 일반 스크립트에서 "풀"되도록 해야 합니다. 예시로서:

  1. 텍스트 파일에 생성될 폴더 목록을 확인하는 크론 작업 생성
  2. lighttpd 사용자 스크립트가 해당 텍스트 파일에 원하는 폴더를 추가하도록 합니다.

큐잉/메시징 시스템을 사용하면 이 작업을 더 우아하게 수행할 수 있지만 이는 사용자에게 달려 있습니다.

관련 정보