sudoとsudoersについて

Linux

昔(linuxの前のunixだった頃)のコンピューターは高額であり1台を何人もの人が使うので、1台に大勢がログインできる仕様になっていました。その仕様は今も受け継がれています。

管理者権限 ” root “

1台のコンピューターにログインして仕事をする大勢の人々を一般ユーザーと呼びますが、一般ユーザーの中には他のユーザーに迷惑をかけるような使い方をする人も出てくる訳であって、この問題を解決する為に管理者権限が置かれています。

linux(unix)においては ” root ” が管理者(特権ユーザー)で最高権限を持っており、主には他の一般ユーザーが仕事しやすいようにコンピューターの環境を整備する仕事をします。一般ユーザーは制限された権限(しかし仕事に差し支えない範囲内の制限)の中で作業している訳です。

以前のkaliでもデフォルトで管理者権限 “root ” が設定されていました。

しかしもし普段から ” root ” で作業しているとその権限の大きさゆえに、いつの間にか危険な設定をしてしまう(出来てしまう)ことがあり、何かと物騒でした。

そこでkali-linuxでは2020年よりデフォルトでは ” root ” の居ない仕様となりました。

但し ” root ” を使用することはできます。(後述)

で、 ” root ” が無いなら無いで困ったことが起きる訳で、つまり管理者でないと変更出来ないような設定の変更が必要な時には、誰もそれをやってくれないから困る訳です。

そこで一般ユーザーが一時的に管理者に成り代わって管理者権限のコマンドを実行する時に行う宣言が ” sudo ” です。

一般ユーザーは ” sudo ” 宣言することにより一時的に管理者を代行して、管理者にしか出来ないコマンドを実行できます。

sudo

という訳で、kali linuxのコマンドには ” sudo ” を付ける必要があるものと必要がないものの2種類があります。

大雑把に言って、他のユーザーに迷惑がかかる(影響を与える)操作はsudo必要。そうでないものは不要です。
多くの場合ユーザーは自分1人でしょうけれども「もしこのPCに別のログイン中のユーザーが居たとしたら」と考えてみます。

でも実際にはきちんと覚える必要はありません。下記の理由からです。

  • 必要なのに使わなかったら(sudoの不足)警告されて実行されない。その場合、次でsudoをつけて実行すれば良い。
  • 不要なのに使った(sudoの付け過ぎ)場合、特に何も問題は起こらずそのまま実行される。

sudoが必要な為、実行に至らなかった場合は例えばこのような警告が出ます。

結論としては、 ” sudo ” をつけるかどうかで、あまり気にする必要はありません。

時代が進むにつれ、何となく ” sudo ” の必要なコマンドが減ってきているような印象があります。

root権限への昇格

まずは、 ” su ” コマンド(=スイッチユーザー:自分が管理者に成るコマンド)を、sudo宣言付きで実行します。

sudo su

これでそのまま ” root ” に昇格出来ます。プロンプトが赤字になっていますね。パスワードは不要です。

kaliでは ” sudo ” コマンドにはパスワードが不要です。

しかしrootパスワードを知らないままではまずいので、rootのパスワードを設定しておきます。(正確には新たなパスワードを再設定する作業になります。)

” passwd root ” コマンドで、rootのパスワードを決めて入力します。(確認の為、繰り返し入力します。)

passwd root
New password : [ルートパスワード]
Retype new password : [ルートパスワード]

以後は ” su ” コマンド+rootのパスワードでrootに昇格出来ます。

rootから降格する時は、 ” su 一般ユーザー名 ” です。

sudoers

sudo関連でもう一つ。

” sudo ” で誰がどのような権限を代行出来るかを設定してあるファイルがあります。

それが、/etc/sudoersファイルです。

誰に どこのサーバーで =(どのグループの代わりに:誰のユーザの代わりに) 何を代行させるか

が記述されています。

2行目 : root ALL =( ALL : ALL ) ALL

の意味は、

rootが、全てのサーバーで、全てのグループ全てのユーザーの代わりに、全てのことを代行できる

という意味であり、

4行目 : %sudo ALL =( ALL : ALL ) ALL

の意味は、

” sudo “グループの皆さんが、全てのサーバーで、全てのグループ全てのユーザーの代わりに、全てのことを代行できる

という意味です。

%の後はグループ名を示します。
つまりkali linuxにはデフォルトで ” sudo ” グループが設定されており、デフォルトのユーザー ” kali ” は、その ” sudo ” グループの中に入っている。
このユーザーが属するグループである%sudoグループは何でも出来るとsudoersファイル上で定義してもらっている。
なのでデフォルトユーザーの ” kali ” はsudoコマンドの付加で、何でもさせて貰えるという訳です。

ここの記述を変更することにより、代行させる権限の変更・制限が可能です。

「何をさせるか」の部分は、詳細な設定についてはかなり複雑な文法があります。ここでは省略。

まとめ

root権限、su、sudo、sudoers周りを解説しました。

コメント

タイトルとURLをコピーしました