Security

在哪裡儲存專有程式碼和可執行腳本?

  • September 15, 2018

我有使用 bash 腳本執行的 Python 程式碼。我希望非 sudo 使用者能夠在不使 Python 程式碼可讀的情況下執行它。推薦的模式是什麼?

我考慮的兩種方式:

  1. 將所有程式碼放在使用者名下HOME,並根據需要使其不可讀和可執行
  2. 將所有程式碼放在下面/usr/local並將相關的 bash 腳本添加到sudoers
  3. 將所有程式碼放在使用者或文件夾下/root並將相關的 bash 腳本添加到使用者PATHbin文件夾

由於有幾種方法可以建構它,我很想听聽您認為標准推薦的方法是什麼。

確保使用者無法讀取他們正在執行的東西的原始碼的一種常見方法是編寫一個服務,該服務代表使用者以必要的權限行事。然後給使用者一種與伺服器通信的方式,比如一個socket或者一個TCP埠。此時程式碼不再在使用者可用的上下文中執行。編寫此程式碼並非易事,因為您可能需要考慮例如嘗試使用您的服務進行權限提升的使用者。

對我有用的解決方案如下:

將以下行添加到/etc/sudoers

user ALL = (root) NOPASSWD: /path/to/script

作為使用者,按如下方式執行腳本:

sudo /path/to/script

這樣腳本本身(以及所有後續的 Python 腳本)都以 root 身份執行,但同時它們都不是可讀或可寫的

引用自:https://unix.stackexchange.com/questions/467751