Linux

如何只允許某些腳本的輸出寫入目錄?

  • November 17, 2016

我希望允許使用者執行任何腳本集合併將輸出寫入指定目錄,但不允許將該指定目錄與該使用者的任何其他腳本或命令一起寫入。

目的是將指定的目錄從系統中同步出去,但僅限於批准的腳本。使用者可以不受限制地執行其他腳本,但不能將輸出導出到環境之外,批准的腳本除外。

嘗試解決問題

我嘗試使用輸出目錄設置兩個使用者“普通”和“受限”,並使用“受限”擁有的已批​​准腳本,因此“正常”將腳本作為“受限”執行,允許輸出進入受限目錄,這可行但沒有什麼可以阻止“正常”執行未經批准的腳本作為“受限”,允許輸出進入“受限”目錄,這是我希望阻止的。

這是您可以執行的操作:

您將需要兩個使用者“普通”和“受限”,但不要將受限使用者的密碼提供給普通使用者。然後呼叫:

visudo 

並添加您想讓普通使用者作為受限使用者執行的所有腳本,如下所示:

normal ALL=(restricted) NOPASSWD: scriptDir/script.sh

然後讓使用者正常呼叫腳本,如:

su -c scriptDir/script.sh restricted

通過這種方式,您可以控制您希望使用者正常執行的腳本受限制

通過安裝實用程序(getfacl 和 setfacl)設置 ACL - 訪問控制列表。

您可以設置每個使用者的 ACL,但通常更容易將應該對文件系統的一部分具有相同權限的使用者放在一個組中並為該組設置 ACL。例如,如果組 html-writers 中的使用者應該對 /var/www/html 下的樹具有讀寫權限

您可以使用 setfacl:

setfacl -m group:html-writers u:username:rwx myfolder

這會為特定使用者設置權限,而不會更改目錄的所有權。

引用自:https://serverfault.com/questions/813833