アカウント認証

ユーザ管理

ページ作成日 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権限が必要とする操作をできるようにすることで、以下の利点があります。

Wikipeida "sudo"より

sudoの設定

ユーザにsudoの権限を付与するためには、rootで「visudo」というコマンドを使い、「sudoers」というファイルを編集します。


# visudo

基本的な設定としては、このファイルの以下の記述のいずれかを選び、コメントアウトします。

  1. wheelグループに所属するユーザが使える。sudoの際に、自分のログインパスワードが要求される。
  2. wheelグループに所属するユーザが使える。sudoの際は、パスワードを要求されない。
  3. アカウント登録しているユーザは、誰でも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という単語だけでも、「大物」という意味があります。

Wikipedia "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