![독점 코드와 실행 가능한 스크립트는 어디에 저장됩니까? [폐쇄]](https://linux55.com/image/139818/%EB%8F%85%EC%A0%90%20%EC%BD%94%EB%93%9C%EC%99%80%20%EC%8B%A4%ED%96%89%20%EA%B0%80%EB%8A%A5%ED%95%9C%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94%20%EC%96%B4%EB%94%94%EC%97%90%20%EC%A0%80%EC%9E%A5%EB%90%A9%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
bash 스크립트를 사용하여 Python 코드를 실행하고 있습니다. sudo를 사용하지 않는 사용자가 Python 코드를 읽을 수 없게 만들지 않고도 실행할 수 있기를 바랍니다. 권장되는 패턴은 무엇입니까?
제가 고려하고 있는 두 가지 방법은 다음과 같습니다.
- 모든 코드를 사용자 코드 아래에 넣고
HOME
필요한 경우 읽을 수 없거나 실행 가능하도록 만듭니다. - 아래에 모든 코드를 입력
/usr/local
하고 관련 bash 스크립트를 추가하세요.sudoers
- 아래의 모든 코드를 배치
/root
하고 관련 bash 스크립트를 사용자PATH
또는bin
폴더 에 추가하십시오.
이를 구축하는 방법은 여러 가지가 있으므로 여러분의 생각을 듣고 싶습니다.기준또는존경받는방법은 다음과 같습니다.
답변1
사용자가 소스 코드를 읽을 수 없도록 하는 일반적인 방법달리게 하다될거야사용자를 대신하여 작동하는 서비스 작성필요한 권한을 갖습니다. 그런 다음 사용자에게 소켓이나 TCP 포트 등 서버와 통신할 수 있는 방법을 제공합니다. 이 시점에서 코드는 더 이상 사용자가 사용할 수 있는 컨텍스트에서 실행되지 않습니다. 예를 들어 권한 상승을 위해 서비스를 사용하려는 사용자를 고려해야 할 수 있으므로 이를 작성하는 것은 쉬운 일이 아닙니다.
답변2
나를 위해 일한 솔루션은 다음과 같습니다.
다음 행을 추가하십시오 /etc/sudoers
.
user ALL = (root) NOPASSWD: /path/to/script
사용자로서 다음과 같이 스크립트를 실행하십시오.
sudo /path/to/script
이렇게 하면 스크립트 자체(및 모든 후속 Python 스크립트)가 루트로 실행되지만 동시에 그 중 어느 것도 읽거나 쓸 수 없습니다.