Linuxコマンドを勉強~ユーザとグループ、groups、id~

Linuxは1つのコンピュータを同時に複数の人間が接続して扱うことが出来ます。
そのため、接続する人間(ユーザ)を認識・管理する必要があります。

そうしないと、自分で作ったファイルを他人に消されたり、システムで必要なファイルを他人の責任で壊される可能性があるからです。

ユーザ

接続する人間(ユーザ)は、アカウントという単位で管理されます。
アカウントが作成されると、デフォルトでは/homeの下にアカウント名でディレクトリが作られます(ホームディレクトリ)。

ただし、前述のとおりホームディレクトリは変更できるので場所のことはさておき、ホームディレクトリの下ではユーザは自由に操作ができます。
その代わり、ほかのユーザのホームディレクトリには関与できません(中をのぞくこともできません)。

ただし本当に誰からも見られないのかというとそうではなく、Linuxにはシステム管理者というユーザが存在します。

システム管理者(スーパーユーザ・rootユーザ)は、Linuxのどのファイルにもアクセスできます。
システムを多数のユーザが操作でき、かつそれらのユーザを管理するためには全ての管理者が必要、ということですね。

Linuxには、システム管理者とそれ以外の一般ユーザの2種類のユーザが存在します。
(細かく言うと、一般ユーザの中には特定のアプリケーションを実行するためのユーザがいます。apacheやoracleなど。これらのアカウントは他のユーザのようにシステムを直接利用するものではないので、ログインできないようにすることがあります)

グループ

Linuxは、複数のユーザをまとめて管理する仕組みを備えています。これをグループと言います。
あるグループに所属するユーザしかこのディレクトリにアクセスできない、などとできます。

Linuxユーザは、必ず1つ以上のグループに所属します。
グループには、1次グループと2次グループがあります。

1次グループとは、アカウントが必須で所属するグループで、ファイルやディレクトリを新規作成した際、それらのファイルは作成したユーザの1次グループが所有することになります。

2次グループとは、1次グループ以外に割り当てられたグループのことです。

groups

ユーザが所属するグループを確認するには、groupsコマンドを実行します。takaというアカウントでログインしている場合、

のようにグループ名のみが表示されます。
(実行環境はUbuntu 13.10です)
一番左の名前が1次グループ名(ユーザ名と同じです)、それ以外が2次グループです。

別のユーザを確認する場合は、

とします。

上記のように、ユーザ名も表示されます。

id

同じようなコマンドにidコマンドがあります。これもユーザ名や所属グループを表示しますが、こちらはlinuxマシンに割り当てられたIDが表示されます。ログイン中のユーザのユーザやグループを確認する場合は、オプションなしで実行します。

uidはユーザのID、gidは1次グループのIDです。以下、所属するグループがすべて並びます。
別のユーザについて確認する場合は、

とします。
ちなみに、システム管理者であるrootユーザのIDはこうなります。

見ての通り、rootユーザはユーザID、グループIDが0です。
Linuxでは、ユーザID、グループIDが0のアカウントをシステム管理者とします。rootという名前が一般的ですが、他の名前ということもあります。

Linuxでは、ユーザが作成したファイルは、所有者であるそのユーザ自身のみが変更するべきである、という思想があります。
そのため、ファイルやディレクトリはその所有者、所有するグループの情報を持っています。

また、ファイルやディレクトリは所有者、所有グループ、あるいは所有者以外のユーザがどういった操作を行うことができるかの情報も持っています。
これをパーミッション(アクセス権)といいます。

次は、このファイルやディレクトリのパーミッションについて勉強します。

広告
  • LINEで送る