sudoが必要なときにsudoを要求するようにLinuxを設定する方法は?

sudoが必要なときにsudoを要求するようにLinuxを設定する方法は?

私は何かコマンドを実行したいときはいつも疲れていて、それを実行した後にEnterこれが必要であることを知りましたsudo。だから、次が必要です。

  1. 最後のコマンドを検索するには、上矢印を使用します。
  2. Homeコマンドの先頭に移動するために使用されます。
  3. sudo コマンドの前に追加
  4. Enter

これは残念なプロセスです。コマンドに必要な場合、sudo権限を付与するように求められないのはなぜですか?私はこれがこのようにしたい:

  1. 必要なコマンドを実行しましたが、sudoプレフィックスを追加するのを忘れました。sudo
  2. システムはそれを検出し、それを実行したいかどうかを尋ねるかsudo(入力するだけでよいY)、パスワードなどを求めるメッセージを表示するので、上記のプロセスを実行する必要はありません。

ベストアンサー1

そんなことは存在もなく、可能でもないと思います。考えてみてください。シェルやカーネル、または他のものが実際にsudoを使ってそのコマンドを実行したいことをどうやって知ることができますか?たとえば、ファイルがルート読み取り/書き込みおよびその他の読み取り専用に設定されていて、ファイルを開くと、ファイルを表示するのではなく編集したいことがどのようにわかりますか?または、「cp $HOME/myfile $HOME/myfile.bak」を実行しているとします。シェルは、ユーザーが/ rootからファイルを移動したいので、sudoを使用する必要があることを知っていますか?

ルートになる必要があることを明確に知っている場合(例:"nano /etc/resolv.conf")、事前に理解するために、nanoを関数、エイリアス、またはスクリプトに置き換えて書き直す必要があります。または、シェルに何らかの方法でコマンドの出力を読み取らせ、エラーが発生したか、ルートではなくエラーが発生したことを確認して、sudoを使用してコマンドを再実行してみてください。これは、他のすべてのコマンドと他のすべての出力と操作方法などを説明する本当に大きな「if then」ステートメントになります。

非常に大きな「if then」ステートメントを作成すると、発生する可能性のあるいくつかの潜在的な問題があります。

  • 一部のコマンドでは完全に動作しません。
  • 考慮すべき新しいコマンドは常にあります。
  • このようにコマンドをスマートにしようとすると、問題が発生しますが、停止して質問するのではなく、コマンドが実行され、機能または失敗することを期待するパイプラインまたはスクリプトでこれを使用します(たとえば、ある場所から別の場所に設定ファイルをコピーするその後、そのファイルに依存するサービスを再起動するスクリプト「cp」があります。
  • sudoはrootでのみ機能しません。 'sudo -u bob vim /etc/bobsfile'を実行できます。

だからこんなことを作るのは非現実的だと思います。でも心配しないでください。このようなことを望む人はあなただけではありません!私は20年間Linuxを使用してきましたが、まだ使いたいです。

役に立ついくつかの点は次のとおりです。

  1. 一部のコマンドはsudoで実行する必要があることを知っており、要求されたものと同様の操作を実行します。たとえば、systemdコマンドです。一度試してみてくださいsystemctl restart cups。 sudoで実行していない場合は、sudoパスワードを自動的に尋ねます。
  2. sudoを使用する必要があるbashでコマンドを実行している場合は、sudo !!sudoを使用してすぐにコマンドを入力して再実行できます。この「!!」をそのシェルの最後のコマンドに置き換えてください。私のシステムでは、「man bash | grep -A75 -P '^HISTORY EXPANSION'」を実行して、どのように機能するかを確認できます。 「man bash」を開いて検索することもできます。
  3. 実行するコマンドのエイリアスがあります。たとえば、alias yum='sudo yum '。 yum操作でsudoを使用することを覚えておく必要はありません。ただ「yum」を実行すると、sudoが追加されます。

中に入っている内容が役に立つことを願っています。

おすすめ記事