Linuxのユーザーとグループ
普通のパソコンは、1人1台の認識だと思います。複数のユーザを作成してアカウントを作成している方もいると思いますが。Linuxはサーバ用途で使われるのが殆どなので1台のコンピュータを複数のユーザーで使用できるように設計されています。もちろんWindowsも同様の使い方が出来るように設計されてますがほとんどの方がユーザーやグループを意識してないで個人単位で使用していると思います。Linuxではその変が厳密でシステムを管理する上では、「どのユーザーの権限で何ができるか」がとても大切であり、ユーザーごとに使用できるディレクトリなどが決められています。そして、ユーザーの権限などを効率よく管理するために「グループ」が使用されます。
ユーザーの種類
Linuxのユーザには、以下の3種類あります。
管理者ユーザー(root)
管理者ユーザーとはシステム全体を制御する権限を持っています。WindowsでいうAdministratorユーザーに相当します。
システムユーザー
システムプログラムやサーバソフトウェアを実行するために使われる特別なユーザーでログインには利用されません。
一般ユーザー
一般ユーザーは、システムを利用するためのユーザーで、ログインして作業したりメールアカウントに利用したりします。
ユーザーのID
ユーザーにはそれぞれ固有のIDが割り振られており、ユーザーIDといいます。新規でユーザーを作成すると固有のIDが割り振られます。idコマンドを打つと自身のidを確認できます。
ユーザーの種類 | ユーザーID |
---|---|
rootユーザー | 0 |
システムユーザー | 1~99 |
一般ユーザー | 100以降 |
※システムユーザーに100以降が割り振られる場合もあります
ユーザーと作成
今までは、全てのコマンドをroot権限で実行していましたが、実はとても危険なことなのです。root権限はそのシステムにおいて全ての権限をもっているのでなんでもできてしまいます。Linuxでは、手軽にスクリプトやコマンドを実行できるので大量のファイルに対しての処理も高速に行えます。悪意をもってなくても操作を間違えると取り返しのつかない命令を実行してしまう可能性もあります。
通常Linuxでは、ユーザを作成してユーザの権限の中での操作となります。root権限がなければできない操作はrootに昇格してから(慎重に)実行します。
まずは、ユーザを作成しましょう(一般ユーザー)。
# useradd [ユーザ名]
ここでは、「hoge」という名前のユーザを作成します
「/home」に「hoge」というディレクトリが作成されまます。
1 2 3 |
[root@localhost ~]# useradd hoge [root@localhost ~]# ls /home hoge |
ディレクトリ「hoge」がユーザ「hoge」のホームディレクトリとなります。
次はパスワードを設定しましょう。ここでは「hogehoge1234」とします
入力値は画面に表示されません。あと確認のため2回もう一度入力を求められます。
1 2 3 4 5 |
[root@localhost ~]# passwd hoge ユーザー hoge のパスワードを変更。 新しいパスワード:xxxxxxxx 新しいパスワードを再入力してください:xxxxxxxx passwd: すべての認証トークンが正しく更新できました。 |
これで「hoge」ユーザが作成されました!
現在rootで実行しているのでログアウトして、「hoge」ユーザーでログインしてください。
いままでユーザ名がついて$マークが表示されました。
以降の説明は、「hoge」ユーザの使用を前提に進めます。
グループと作成
上に書いてますがLinuxは複数人で使用できるように設計されているので、ファイルやディレクトリに所有者や権限が設定できて、勝手には弄れないようにコントロールできるようにしてます。しかしユーザー一人一人のファイルごとの権限を設定していると非常に手間なのでグループというユーザーの「まとめ」を作って、一括で管理できるようにします。
グループにはメイングループとサブグループがあります。
メイングループとは、一人のユーザーがメインで所属するグループで一般的にはユーザー名と同じグループ名で登録していることが多い。ユーザー一人ひとりは必ずどこかのグループに登録しなければならないので新規でユーザを作成する時にオプションをオプションでグループを指定しない場合は同名のグループも作成され、そのグループに所属します。
サブグループとは、一人のユーザーが、メイン以外で登録しているグループで複数登録できます。
現在どのようなグループが登録されているかは、コマンドで確認できます。
$ cat /etc/group
グループの追加は、一般ユーザーでは操作できないのでスーパーユーザーなど、管理者権限を持つアカウントで操作します。
# groupadd [グループ名
1 2 |
# groupadd hoges # cat /etc/group |
グループの削除も同様にスーパーユーザーなど、管理者権限を持つアカウントで操作します。
# groupdel [グループ名]
1 2 |
# groupdel hoges # cat /etc/group |
既存ユーザーをグループに追加するコマンドは、
gpasswd -a ユーザー名 グループ名
1 2 |
[root@localhost ~]# gpasswd -a hoge hoges ユーザ hoge をグループ hoges に追加 |