ユーザ管理
ページ作成日 2016/4/22
ページ更新日 2022/9/27
インストールが終わって再起動したら、まずは、rootでログインします。
Welcome to Linux 5.15.19 x86_64 (tty1) Sapphire login: root ← rootと入力する Password: ← インストールの際に設定したrootのパスワードを入力する Linux 5.15.19. Unnamed Law: If it happens, it must be possible. root@sapphire:~# _
ログイン時に、毎回、何かしら名言みたいのが表示されます。
これは、fortuneというUnix系OSコマンドの1つで、フォーチュン・クッキーを模したプログラムです。
他のディストリビューションとは違い、インストールでは、rootアカウントしか作成しません。
「自分しかユーザは居ないから、rootをこのまま使えばいいじゃないか」と思われるかもしれませんが、rootは特権ユーザ。
ユーザがあなた一人だとしても、普段からrootでログインしてはいけません。
rootとは別に、自分のアカウントを作成する必要があります。
マルチユーザオペレーティングシステムとしてのLinux
インストールした後、真っ先にやるべき事は、一般ユーザの作成です。
決して、日常的にrootでログインして利用してはいけません。
Unixは、マルチユーザを前提にして設計されているOSです。
この点が、WindowsやMacOSと大きく異なります。
マルチユーザとは、1台のコンピュータに対して、同時に複数のユーザが利用できる事です。
WindowsやMacOSも、複数のユーザを登録できますが、OSと画面表示が密に結びついており、基本的には、同時に複数のユーザが同じPCを利用する事は出来ません。
しかし、Unixの場合は、リモートログインにより、ネットワークを介して、複数のユーザが同時に1台のコンピュータを利用できます。
X Windowによって、グラフィカルユーザーインターフェースも、ネットワークを介して、複数のユーザが同時に利用することが可能です。
特権ユーザと一般ユーザ
Unixは、複数のユーザが同時に1台のコンピュータを使える事を念頭に設計されているので、コンピュータ全体を管理する事が出来る特権ユーザと、一般のユーザは明確に区別されています。
誰か一人のユーザの環境設定によって、コンピュータ全体の設定が変更されて、それによって他のユーザに影響があっては困るのです。
たとえ、あなた一人だけが実際にユーザだとしても、この設計思想を尊重して、自分のユーザアカウントを作成しましょう。
ユーザの追加
ユーザの追加は、Slackwareの場合は、adduserというコマンドが用意されています。
対話型の設定と、オプション指定の設定と、両方に対応しています。
では、早速、自分のアカウントを作成しましょう。
対話型の設定
対話型で設定する場合は、rootでログインした後、adduserと打ち込みます。
# adduser Login name for new user []: takehora ← 自分の好きなユーザ名を決めて入力する User ID ('UID') [ defaults to next available ]: ← ENTERキーを押す Initial group [ users ]: ← ENTERキーを押す Additional UNIX groups: Users can belong to additional UNIX groups on the system. For local users using graphical desktop login managers such as XDM/KDM, users may need to be members of additional groups to access the full functionality of removable media devices. * Security implications * Please be aware that by adding users to additional groups may potentially give access to the removable media of other users. If you are creating a new user for remote shell access only, users do not need to belong to any additional groups as standard, so you may press ENTER at the next prompt. Press ENTER to continue without adding any additional groups Or press the UP arrow to add/select/edit additional groups : audio cdrom floppy input lp netdev plugdev power scanner video ← ↑キーを押すと所属を推奨されるグループが表示されるので、これでENTERキーを押す Home directory [ /home/takehora ] ← ENTERキーを押す Shell [ /bin/bash ] ← ENTERキーを押す Expiry date (YYYY-MM-DD) []: ← ENTERキーを押す New account will be created as follows: --------------------------------------- Login name.......: takehora UID..............: [ Next available ] Initial group....: users Additional groups: audio cdrom floppy input lp netdev plugdev power scanner video Home directory...: /home/takehora Shell............: /bin/bash Expiry date......: [ Never ] This is it... if you want to bail out, hit Control-C. Otherwise, press ENTER to go ahead and make the account. ← ENTERキーを押す Creating new account... Changing finger information for takehora. Name []: Yoichiro Takehora ← 自分の名前を入力してENTERキーを押す Office []: ← オフィスの住所を入力してENTERキーを押す。入力せずにENTERキーを押してもよい。 Office Phone []: ← オフィスの電話番号を入力してENTERキーを押す。入力せずにENTERキーを押してもよい。 Home Phone []: ← 自宅の電話番号を入力してENTERキーを押す。入力せずにENTERキーを押してもよい。 Finger information changed. New Password: ← パスワードを設定する。パスワードを入力してENTERキーを押す。 Re-enter new password: ← もう一度、パスワードを入力してENTERキーを押す。 Passwd: password updated successfully Account setup complete.
オプション指定の設定
小人数のユーザを追加する場合は、対話型が便利ですが、人数がある程度多くなってくるとオプション指定の設定の方が楽です。
# useradd -d /home/takehora -s /bin/bash -g users -G audio cdrom floppy input lp netdev plugdev power scanner video takehora
sudoの設定
root権限が必要なコマンドを実行する場合には、rootになって実行する必要があります。
rootに成り代わるには、su(switch user)というコマンドを使うのですが、毎回、suでrootに成り代わって実行して、exitを入力して自分のアカウントに戻る、というのも面倒です。
また、実行履歴を調べたい場合に、suでrootになって実行した内容を追うのは面倒です。
そこで、現在ではsudoというコマンドを使えるようにするのが一般的です。
$ sudo root権限が必要なコマンド
このようにして実行すれば、suでrootに成り代わらなくても、コマンドをroot権限で実行する事が可能になります。
sudoの利点
sudoでroot権限が必要とする操作をできるようにすることで、以下の利点があります。
- オペレーティングシステムをインストールする際の、設定項目を減らすことができる。
- ユーザーが余計なパスワードを覚えなくてもよくなる。
- 大きな変更を加える際、パスワードの入力を求められるようにすることで、ユーザーは何をしようとしているか再認識することができる。
- sudoコマンド実行ログが残り、何か不具合が発生した際にどのようなコマンドを実行したのかを確認することができる。システム監視の意味でも有用。
- rootアカウントでのログインを無効にしている場合、パスワードの総当たりなど、強引な手法でシステムに侵入を試みるクラッカーがrootアカウントで侵入できない。
- ユーザーを管理者グループに追加、削除することにより、管理者権限を持つことのできるユーザーを限定できる。
- sudo は su に比べて、より細かいセキュリティポリシーを設定することができる。
- 管理者権限を時間経過で自動的に破棄するように設定することができる。
sudoの設定
ユーザにsudoの権限を付与するためには、rootで「visudo」というコマンドを使い、「sudoers」というファイルを編集します。
# visudo
基本的な設定としては、このファイルの以下の記述のいずれかを選び、コメントアウトします。
- wheelグループに所属するユーザが使える。sudoの際に、自分のログインパスワードが要求される。
- wheelグループに所属するユーザが使える。sudoの際は、パスワードを要求されない。
- アカウント登録しているユーザは、誰でもsudoを使える。
## Uncomment to allow members of group wheel to execute any command # %wheel ALL=(ALL) ALL ## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL ## Uncomment to allow members of group sudo to execute any command # %sudo ALL=(ALL) ALL
最近は、2番のパスワードを要求しないsudoが一般的になっているようです。
この#を削除して、コメントアウトを削除で有効化し、保存します。
次に、sudoで使えるコマンドを指定します。
一般的には、この部分のコメントアウトを外して、使えるコマンドのパスをハードコードします。
## Uncomment to use a hard-coded PATH instead of the user's to find commands # Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
wheelというグループ
wheelというグループが出てきましたが、これは何でしょうか?
「車輪」や「(自動車の)ハンドル」、「(船の)舵」という意味の単語です。
このwheelグループは、big wheelというスラングが語源と言われています。
big wheelとは、組織内で大きな影響力や、高い地位にある人を指す俗語です。
wheelという単語だけでも、「大物」という意味があります。
つまり、wheelグループに所属するユーザアカウントは、そのLinuxシステムの「舵取り」をする管理者という事ですね。
wheelグループへの登録
sudoできるアカウントをwheelグループに登録しましょう。
まずは、登録したいアカウントの所属グループを確認します。
# groups takehora takehora : users
まだusersグループにしか所属していません。
そこで、sudoが使えるようにwheelグループへと追加します。
usermod -G {所属させるグループ} {ユーザ名}の書式で入力します。
# usermod -aG wheel takehora
再度、groupsを使って所属グループを確認してみると、wheelに所属していることが確認できます。
# groups takehora takehora : users lp wheel floppy audio video cdrom input plugdev power netdev scanner
グループの視点から、誰がwheelグループに所属しているかをgetent(get entryの略)というコマンドで確認してみましょう。
# getent group wheel wheel:x:10:root,takehora
もしも、suでroot権限になってからこの作業をした場合は、一旦ログインしなおして下さい。
これで、次回ログインから、sudoが使えるようになります。
# exit exit $ exit