質問: ### 前提・実現したいこと 素朴な質問で申し訳ありません。 sudoの意味が知りたいです。
回答: sudoは、主にroot権限でコマンドを実行するために用いることはご存知という前提で説明します。 root権限でコマンドを実行するには、以下の3種類の方法が考えられます。 (a)最初からrootでログインする (b)個人のuseridでログインしてからsuコマンドでrootユーザーになる (c)コマンドを実行する都度sudoを用いる 下に行くほど「面倒くさい」わけですが、安全性は高まります。 (a)と(b)の問題点は、root権限で作業する人全員にrootのパスワードを教えなければならないことです。そして、下記の欠点があります。 1. root作業を行う人が担当を外れた(異動、退職など)場合でもrootのパスワードを知ったままなので、rootパスワードを変更する必要がある。漏れやすいし、パスワード変更も手間だし、他の人に新しいrootパスワードを安全に伝達する必要がある 2. root権限で、誰が、いつ、どのコマンドを実行したか、トレースが難しいので、事故や悪用された際の追跡が難しい、ひいては、悪用に対する歯止めが弱くなる 3. root権限は強大なので権限を絞りたくても、rootログインやsuではそれはできない。sudoであれば、「できること」を限定できる sudoでも実行時にパスワードを入力する必要がありますが、それはrootのパスワードではなく、個人IDのパスワードです。そのため、rootパスワードを教えくてもすむという点が大きいと思います。 sudo権限を持っている人が管理者を外れた場合は、個人IDは残したままsudo権限を外すだけで良いし、管理者権限が必要なコマンドの中から、本当に必要なコマンドにだけ権限を与えることもできます。 上記のような理由から、rootログインやsuではなく、できるだけsudoを使うことが好ましいといえます。