Ubuntu

BASH 腳本,su to www-data 用於單個命令

  • May 7, 2018

我正在按照我寫的這篇博文中的描述自動創建顛覆儲存庫和相關網站。我在 su 到 www-data 使用者執行以下命令的部分遇到了問題:

svnadmin create /svn/repository

在腳本的開頭有一個檢查,以確保它以 root 或 sudo 身份執行,並且在該命令之後的所有內容都需要以 root 身份執行。有沒有一種好方法可以將該命令作為 www-data 執行,然後切換回 root 以完成?

只需su - www-data -c 'svnadmin create /svn/repository'在由 root 執行的腳本中使用。這樣只有這個命令由 www-data 使用者執行。


為未來的觀眾更新

如果您收到*"This account is currently not available"*錯誤,請考慮使用:

su - www-data -s /bin/bash -c 'svnadmin create /svn/repository'

(@Petr 關於-s標誌以適應www-data使用者的無登錄政策的有價值的提及)

使用“su”可能是請求密碼,而 www-data 沒有密碼。我推薦命令sudo

sudo -u www-data command

條件是你的使用者必須是 root,或者在 sudoers 文件中配置

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