Password
無法在腳本中將密碼傳遞給 su
我正在編寫建構腳本。這個腳本最後必須複製一個文件。該文件將被放置在另一個使用者的主目錄中,並且該文件還必須屬於該第二個使用者。我的第一次嘗試是像這樣使用 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