![>> sudoersファイルをエコーできません。 "権限が拒否されました: /etc/sudoers" [閉じる]](https://linux33.com/image/14046/%26gt%3B%26gt%3B%20sudoers%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%82%A8%E3%82%B3%E3%83%BC%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%20%22%E6%A8%A9%E9%99%90%E3%81%8C%E6%8B%92%E5%90%A6%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%3A%20%2Fetc%2Fsudoers%22%20%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
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をテストします。ルートではないユーザー名。つまり、初心者なので、これを知らずに作成しましたが、テスト中にエラーが発生しましたpermission error
。何をすべきかわかりました何回検索しましたが、何も見つかりませんでした
答え1
3つを指摘します。まず、コンテンツをミラーリングするスクリプトを設定しても、ファイルを編集するためにvisudo
実際に使用する必要があります。もう1つのことは、すべてのユーザーにパスワードなしでコマンドを実行させるのが最適ではないことです。結局はルートと同じになり、これは意味がありません。/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ファイルを台無しにした場合に備えてバックアップを維持できるため、状況は少しクリーンアップされます。
答え2
使用する代わりに:
sudo echo "# This is a comment" >> someFile.txt
あなたはそれを使用することができます:
echo "# This is a comment" | sudo tee -a someFile.txt
メモ:-a
コマンドのフラグを忘れないでください。tee
それ以外の場合は、次のように終了します。フルファイルの上書き新しいコメント行があります。
その他の関連コンテンツをお読みくださいtee
: