質問: 1,「sudo」コマンドはrootのパスワードを入力せずともroot権限でコマンドが実行できるものですが、よくよく考えたらそれだとrootでログインせずとも色々なことができてしまうのであまり意味がないのでは? 2, ちょっと調べたところ、実行できるコマンドをvisudoで割り当てる、と書いてありましたが、大抵は/usr/のようなフォルダ名のフォルダを指定しているのですか?システムを破壊してしまう可能性のあるコマンドってどこにあるんでしょう? 1,2の認識で間違いないでしょうか?システム管理者がどういう風にユーザーを管理しているのかよくわかっていないため、なんとなくそうなんじゃないかと思っていても自分の中ではっきりしません。なので解説がほしいのですが、どうぞよろしくお願いいたします。
回答: **1. について** 実際には sudoers で許可されたものだけが実行できます。 結果として「いろいろ出来る状態」のは、その様に許可されているから だと思います。 * sudo では、許可された範囲で root 権限で コマンドを実行することができます。 ロギングや本人確認(パスワード、LDAPなど)といった、強力な機能があるので 「rootのパスワードを共有する」という問題の解決策になりえるので 現在では主流になっています。 * ただ、「そこまで厳しくやりたくないよ」といった場合は、root と遜色のない 強力な特権ユーザを作り、それを共有すれば、ほぼ従来どおりの運用も可能だったりします。 sudoの意味は無いかもしれませんが、そもそも、rootのログインが禁止されていたり、仮想環境やクラウドなどでは、rootのパスワードが非公開だったりすることもあるので、こういった運用もよくあると思います。 **2 について** 個人で観測可能な範囲で書くと、大抵はコマンドレベルので制御まではやってなくて、ユーザ単位で「root ですべて実行可能」と設定している場合が多いですね。削除やシャットダウンといった特定のコマンドを禁止する場合や、サービスの開始/停止のコマンドだけ許可する場合はまれにある感じです。この辺は所属する組織やセキュリティ要件によって様々だと思いますので、一概には言えないと思います。