
myuserのエイリアスを作成しました。
alias up='sudo apt update && sudo apt -y upgrade && sudo apt -y autoremove'
ユーザーのフォルダに保存されます。.bashrc文書。 sudoersファイルを修正して、最後に次の行を挿入してみました。
myuser ALL=(ALL) NOPASSWD: up
visudo
しかし、構文エラーが発生します。ルートパスワードなしでエイリアスを実行するにはどうすればよいですか?
答え1
パスワードなしですべてのsudoコマンドを実行したい場合はそれを使用できます。
myuser ALL=(ALL) NOPASSWD:ALL
いくつかのコマンドに制限する場合は、この機能を使用できます。
myuser ALL=(ALL) NOPASSWD: /usr/bin/apt,/usr/bin/command
答え2
:up はファイルパスではなくエイリアスなので動作しないようです。エイリアスは、実行前にシェルによってキャプチャされ拡張されます。
必要な動作を得るには、次のものを使用する必要があります。
myuser ALL=(ALL) NOPASSWD: /usr/bin/apt
(APTの正しいパスであることをもう一度確認してください。現在、適切なベースディストリビューションがありません。)
しかし、あなたがやろうとしているのは、少なくとも「sudo apt -y autoremove」を省略しないと発生するのを待つ災害です。自動削除は慎重に使用する必要があり、削除する予定の項目が何であるかを確認する必要があります。時には、必要なパッケージを削除してシステムを混乱させることができるからです(難しい方法で学びました)。