ページ作成日 2016/4/22
ページ更新日 2020/8/22
他のディストリビューションとは違い、インストールでは、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 ]: Initial group [ users ]: 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 plugdev video Home directory [ /home/takehora ] Shell [ /bin/bash ] Expiry date (YYYY-MM-DD) []: New account will be created as follows: --------------------------------------- Login name.......: takehora UID..............: [ Next available ] Initial group....: users Additional groups: audio,cdrom,floppy,plugdev,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. Creating new account... Changing the user information for david Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Changing password for takehora Enter the new password (minimum of 5, maximum of 127 characters) Please use a combination of upper and lower case letters and numbers. New password: Re-enter new password: Password changed. Account setup complete.
オプション指定の設定
小人数のユーザを追加する場合は、対話型が便利ですが、人数がある程度多くなってくるとオプション指定の設定の方が楽です。
# useradd -d /home/takehora -s /bin/bash -g users -G audio,cdrom,floppy,plugdev,video takehora
sudoの設定
root権限が必要なコマンドを、毎回suでrootになって実行するのも何かと不便です。
また、実行履歴を調べたい場合に、suでrootになって実行した内容を追うのは面倒です。
そこで、sudoというコマンドを使えるようにすると便利です。
sudoの利点
sudoでroot権限が必要とする操作をできるようにすることで、以下の利点があります。
- オペレーティングシステムをインストールする際の、設定項目を減らすことができる。
- ユーザーが余計なパスワードを覚えなくてもよくなる。
- 大きな変更を加える際、パスワードの入力を求められるようにすることで、ユーザーは何をしようとしているか再認識することができる。
- sudoコマンド実行ログが残り、何か不具合が発生した際にどのようなコマンドを実行したのかを確認することができる。システム監視の意味でも有用。
- rootアカウントでのログインを無効にしている場合、パスワードの総当たりなど、強引な手法でシステムに侵入を試みるクラッカーがrootアカウントで侵入できない。
- ユーザーを管理者グループに追加、削除することにより、管理者権限を持つことのできるユーザーを限定できる。
- sudo は su に比べて、より細かいセキュリティポリシーを設定することができる。
- 管理者権限を時間経過で自動的に破棄するように設定することができる。
自分が普段使いするLinuxマシンなのであれば、コマンド入力する際に、suでroot権限になったり、exitで自分のアカウントに戻ったりという手間が省けるのが利点だと感じています。
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を使って所属グループを確認してみると、usersとwheelと、双方に所属していることが確認できます。
# groups takehora takehora : users wheel
グループの視点から、誰がwheelグループに所属しているかを確認してみましょう。
# getent group wheel wheel:x:10:root,takehora
もしも、suでroot権限になってからこの作業をした場合は、一旦ログインしなおして下さい。
これで、次回ログインから、sudoが使えるようになります。
# exit exit $ exit