Linux

無法回顯 >> sudoers 文件“權限被拒絕:/etc/sudoers”

  • April 1, 2021

我想寫一個腳本來向我的 VPS 或 VMS 添加一些工具,我寫了類似的東西

# Edit sudoers
echo -e "${GREEN}Configure sudoers...${NOCOLOR}"
echo
echo '# Allow user to use sudo without passwd' >> /etc/sudoers
echo '$USER ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

這個腳本作為 Sudo 執行,我在 Sudo 中測試 echo $USER 是使用者名,而不是 root 我的意思是我是新手,所以我不知道並寫了這個,但是當我測試它時,我得到了錯誤,permission error我沒有不知道該怎麼辦我做了一些搜尋,但找不到任何東西

而不是使用:

sudo echo "# This is a comment" >> someFile.txt

您可以使用:

echo "# This is a comment" | sudo tee -a someFile.txt

**注意:**不要忘記命令的-a標誌tee,否則你最終會用新的註釋行覆蓋整個文件。

在此處閱讀更多資訊tee

我有三件事要指出。一,你真的應該用它visudo來編輯/etc/sudoers文件,即使你設置$EDITOR了一個回顯該內容的腳本。另一個是讓任何使用者在沒有密碼的情況下執行任何命令是次優的。最後,$USER將等於根,所以這將毫無意義。

如果您真的想這樣做,請製作一個單獨的腳本,其中包含以下內容:

echo '# Allow user to use sudo without a password' >> $1
echo "$PERSON ALL=\(ALL\) NOPASSWD:ALL" >> $1

其次,製作另一個執行主腳本的腳本,如下所示:

sudo "env PERSON=$USER /your/script/here"

這應該會稍微整理一下,因為您可以確定整個腳本是以 root 身份執行的,並visudo保留備份以防您搞砸 sudoers 文件。

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