일반 사용자에게 특정 디렉터리에 제한된 권한을 부여하고 sudo 없이 파일을 실행하는 방법

일반 사용자에게 특정 디렉터리에 제한된 권한을 부여하고 sudo 없이 파일을 실행하는 방법

표현이 불편해서 죄송합니다. 제 질문을 최대한 명확하게 설명했으면 좋겠습니다.

레드햇 시스템을 사용합니다. 현재 저는 시스템에 슈퍼유저를 소유하고 있으며 sudo python cuckoo.py이 Python 프로그램을 실행하려면 "cuckoo"라는 특정 디렉토리에서 읽고 씁니다.

이제 일반 사용자에게 이 "cuckoo.py"와 작업 디렉터리에 대한 액세스 권한을 부여하고 싶습니다. 그러나 동시에 나는 이 사용자에게 슈퍼유저 권한을 부여하고 싶지 않습니다. 왜냐하면 이것이 내 시스템을 손상시킬 수 있기 때문입니다.

그렇다면 일반 사용자가 직접 전화를 걸어 python cuckoo.py"권한이 거부되었습니다"라는 오류가 발생하지 않도록 하려면 어떻게 해야 합니까?

도움과 의견을 보내 주시면 감사하겠습니다. 그리고 불명확하게 만드는 정말 나쁜 표현이 있으면 지적해 주시면 최선을 다해 자세히 설명해 드리겠습니다.

감사해요!

편집: 어쩌면 내 말이 명확하지 않을 수도 있습니다. 이 일반 사용자를 "루트"에 포함하고 싶지 않습니다. 현재 그룹을 만들고 이 일반 사용자를 그룹에 추가했는데 디렉토리 권한은 755로 설정되어 있습니다. 하지만 cuckoo.py원활한 실행을 위해 그룹에 쓰기 권한이 있었으면 합니다. 그렇다면 루트와 이 그룹 모두에게 읽기, 쓰기 및 실행 권한을 부여하는 방법이 궁금합니다.

답변1

스크립트를 루트로 실행해야 하는 유일한 이유가 특정 디렉터리를 읽고 쓰는 것이라면 이 문제를 해결하는 두 가지 방법이 있습니다(일반 사용자가 스크립트를 성공적으로 실행할 수 있도록 허용).

  1. 그룹을 만들고 작업 중인 폴더를 해당 그룹 소유로 만든 다음 해당 그룹에 사용자를 추가합니다.
sudo groupadd <groupname>
sudo usermod -a -G <groupname> <username>
sudo chgrp -R <groupname> <folder>
  1. 폴더의 전체 권한을 변경하기만 하면 됩니다(컴퓨터의 어떤 사용자도 폴더에 액세스할 수 없도록 하려면 권장되지 않음 cuckoo).
sudo chmod -R 664 ./cuckoo

이 권한은 소유자, 그룹 및 세계에 대한 읽기 및 쓰기를 허용합니다.

답변2

제가 질문을 잘못 해석한 것 같습니다. 관계없이 스크립트를 루트로 실행해야 하고 일반 사용자가 스크립트를 실행할 수 있도록 하려면 다음 지침을 따르세요.이 AskUbuntu 질문입니다.

보안을 위해서는 이 파일에서 권한을 단단히 잠가야 한다는 점을 명심하세요.

루트 및 그룹 루트가 소유한 파일을 만듭니다.

sudo chown root.root <my script>

이제 고정 항목을 설정하되 모두가 실행 가능하고 루트만 쓸 수 있도록 만듭니다.

sudo chmod 4755 <my script>

이 스크립트가 파일 입력이나 편집을 허용한다면 이 작업도 루트로 수행된다는 점을 명심하세요.

SetUID 비트는 스크립트나 바이너리가 항상 파일/바이너리의 소유자로 실행되도록 합니다. 이러한 바이너리의 예는 'passwd'입니다.

관련 정보