Password

無法在腳本中將密碼傳遞給 su

  • June 2, 2016

我正在編寫建構腳本。這個腳本最後必須複製一個文件。該文件將被放置在另一個使用者的主目錄中,並且該文件還必須屬於該第二個使用者。我的第一次嘗試是像這樣使用 su:

su fbgs -c "cp fbgs.jar /home/fbgs/server/plugins/"

這在命令行中有效,但是當我將其放入腳本中時,我需要自動輸入密碼。所以我嘗試了以下命令:

echo Password | su -S fbgs -c "cp fbgs.jar /home/fbgs/server/plugins/"

但後來我得到這個輸出:

su: must be run from a terminal

我怎樣才能讓它工作?

考慮為這個特定程序設置 sudo 並可能設置特定命令 NOPASSWD: 這樣您就不必回顯明文密碼(無論如何都非常糟糕)。此外,還有 sudo 標誌可以讓您要求或不需要 TTY。

例子。

/etc/sudoers.d/mycmd:

theuser ALL=(fgbs) NOPASSWD: cp fbgs.jar /home/fbgs/server/plugins

my-build-script.sh:

#!/bin/sh
/usr/bin/sudo -H -u fbgs cp fbgs.jar /home/fbgs/server/plugins

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