Security
在哪裡儲存專有程式碼和可執行腳本?
我有使用 bash 腳本執行的 Python 程式碼。我希望非 sudo 使用者能夠在不使 Python 程式碼可讀的情況下執行它。推薦的模式是什麼?
我考慮的兩種方式:
- 將所有程式碼放在使用者名下
HOME
,並根據需要使其不可讀和可執行- 將所有程式碼放在下面
/usr/local
並將相關的 bash 腳本添加到sudoers
- 將所有程式碼放在使用者或文件夾下
/root
並將相關的 bash 腳本添加到使用者PATH
或bin
文件夾由於有幾種方法可以建構它,我很想听聽您認為標准或推薦的方法是什麼。
確保使用者無法讀取他們正在執行的東西的原始碼的一種常見方法是編寫一個服務,該服務代表使用者以必要的權限行事。然後給使用者一種與伺服器通信的方式,比如一個socket或者一個TCP埠。此時程式碼不再在使用者可用的上下文中執行。編寫此程式碼並非易事,因為您可能需要考慮例如嘗試使用您的服務進行權限提升的使用者。
對我有用的解決方案如下:
將以下行添加到
/etc/sudoers
:user ALL = (root) NOPASSWD: /path/to/script
作為使用者,按如下方式執行腳本:
sudo /path/to/script
這樣腳本本身(以及所有後續的 Python 腳本)都以 root 身份執行,但同時它們都不是可讀或可寫的