Difference between revisions of "Users and Groups (日本語)"

From ArchWiki
Jump to: navigation, search
m (ユーザーグループ)
m (ユーザーグループ)
Line 214: Line 214:
 
| lp || {{ic|/etc/cups}}, {{ic|/var/log/cups}}, {{ic|/var/cache/cups}}, {{ic|/var/spool/cups}} || プリンターハードウェアへのアクセス; プリンタージョブの管理を有効にします。
 
| lp || {{ic|/etc/cups}}, {{ic|/var/log/cups}}, {{ic|/var/cache/cups}}, {{ic|/var/spool/cups}} || プリンターハードウェアへのアクセス; プリンタージョブの管理を有効にします。
 
|-
 
|-
| network || || [[NetworkManager]] を使うときなどにネットワーク設定を変更する権利。
+
| network || || [[NetworkManager (日本語)]] を使うときなどにネットワーク設定を変更する権利。
 
|-
 
|-
| networkmanager || || [[NetworkManager]] でワイヤレス接続するユーザーに必要。Arch ではこのグループはデフォルトで含まれていないので手動で追加する必要があります。
+
| networkmanager || || [[NetworkManager (日本語)]] でワイヤレス接続するユーザーに必要。Arch ではこのグループはデフォルトで含まれていないので手動で追加する必要があります。
 
|-
 
|-
 
| optical || {{ic|/dev/sr[0-9]}}, {{ic|/dev/sg[0-9]}} || CD や DVD ドライブなどオプティカルドライブへのアクセス。
 
| optical || {{ic|/dev/sr[0-9]}}, {{ic|/dev/sg[0-9]}} || CD や DVD ドライブなどオプティカルドライブへのアクセス。

Revision as of 07:33, 30 March 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end

GNU/Linux ではユーザーやグループはアクセス制御のために使われています — つまり、システムのファイル、ディレクトリ、周辺機器へのアクセスのコントロールに使われます。Linux は比較的シンプルかつ粗っぽいアクセス制御メカニズムをデフォルトで提供します。高度な制御については、ACLLDAP Authentication を見て下さい。

概要

ユーザーとはコンピュータを使う全ての人のことです。ここで、名前がユーザーを表すことを説明しましょう。名前は Mary や Bill という風につけられ、実名のかわりに Dragonlady や Pirate といった名前を使うことができます。重要なのはコンピュータはそれぞれのアカウントに名前をつけていて、人々がコンピュータを使うためのアクセスを得るために名前を使うということです。システムサービスによっては制限・特権ユーザーアカウントを使って動作させることもあります。

特定の方法でアクセスを制限することでセキュリティのためにユーザーの管理が行われます。

作成するアカウントにそれぞれ異なる名前を使えば、人々は複数のアカウントを持つことが可能です。さらに、"root" など、使うことができない予約済みの名前も存在します。

ユーザーは"グループ"に入れることでグループづけでき、グループに入ることでユーザーはグループで認められた特権的アクセスを利用することができます。

Note: ビギナーはツールを気をつけて使って下さい、自分のアカウント以外の既存の他のユーザーアカウントをいじらないようにしましょう。

パーミッションと所有権

In UNIX Everything is a File より:

UNIX オペレーティングシステムはデザイン、インターフェイス、文化と革命を形作った統一のアイデアとコンセプトを具体化しています。おそらくその中で一番重要なマントラが"全てのものはファイルである"であり、UNIX を定義付けるポイントとして広く受け取られています。
このキーデザイン原理の構成は統一パラダイムの提供による幅広い入出力のアクセスです: ドキュメント、ディレクトリ、ハードドライブ、CD-ROM、キーボード、プリンター、モニター、ターミナル、インタープロセス、ネットワーク。トリックはこれらリソース全てに対して共通のアブストラクションを提供することで、UNIX の父たちは"ファイル"と呼びました。全ての"ファイル"が同じ API を使って扱われることにより、同じ基本的なコマンドセットを使ってディスク、キーボード、ドキュメント、ネットワークデバイスへの読み書きができます。

Extending UNIX File Abstraction for General-Purpose Networking より:

UNIX とその互換オペレーティングシステムで提供されている、基礎的でとてもパワフルで一貫性のあるアブストラクションがファイルアブストラクションです。多くの OS サービスとデバイスインターフェイスはアプリケーションにファイルやファイルシステムをあたえることで実装されています。これによって既存のアプリケーションの新しい利用ができるようになり力を引き出すことができるようになります — 固有の使用目的で設計されたシンプルなツールが、UNIX ファイルアブストラクションを使って、新しい方法で利用されます。cat のような、ファイルの読み込みと標準出力への内容のアウトプットができるシンプルなツールを特別なデバイスファイル、典型的に /dev ディレクトリ下のファイルを通して、I/O デバイスからの読み書きに使うことが可能なのです。多くのシステムで、録音と再生がそれぞれ次のコマンドで出来ます、"cat /dev/audio > myfile" と "cat myfile > /dev/audio"。

GNU/Linux において全てのファイルはユーザーとグループによって所有されます。加えて、アクセス許可の3つのタイプが存在します: 読み込み、書き込み、そして実行。ファイルの所有ユーザー、所有グループ、(所有権をもっていない)第三者に対して異なるアクセス許可を適用することが可能です。ls コマンドによってファイルの所有者とパーミッションを確認できます:

$ ls /boot/ -l
total 13740
drwxr-xr-x 2 root root    4096 Jan 12 00:33 grub
-rw-r--r-- 1 root root 8570335 Jan 12 00:33 kernel26-fallback.img
-rw-r--r-- 1 root root 1821573 Jan 12 00:31 kernel26.img
-rw-r--r-- 1 root root 1457315 Jan  8 08:19 System.map26
-rw-r--r-- 1 root root 2209920 Jan  8 08:19 vmlinuz26

最初のカラムにファイルのパーミッションが表示されます (例えば、ファイル kernel26.img のパーミッションは -rw-r--r--)。3・4つめのカラムにはファイルの所有ユーザーとグループがそれぞれ示されます。この例では、全てのファイルは root ユーザーと root グループによって所有されています。

$ ls /media/ -l
total 16
drwxrwx--- 1 root vboxsf 16384 Jan 29 11:02 sf_Shared

この例では、sf_Shared ディレクトリは root ユーザーと vboxsf グループによって所有されています。stat コマンドを使うことでもファイルの所有者とパーミッションを確認することができます:

所有ユーザー:

$ stat -c %U /media/sf_Shared/
root

所有グループ:

$ stat -c %G /media/sf_Shared/
vboxsf

アクセス権限:

$ stat -c %A /media/sf_Shared/
drwxrwx---

アクセス許可は3つのグループの文字で表示され、それぞれ所有ユーザー、所有グループ、第三者のパーミッションを表しています。例えば、-rw-r--r-- はファイルの所有者は読み込みと書き込みが可能で、実行はできない (rw-) ことを示していて、さらに所有グループに属しているユーザーとその他のユーザーは読み込みしかできない (r--r--) ことを示しています。一方、drwxrwx--- はファイルの所有者と所有グループに属すユーザーが読み込み・書き込み・実行の全てができ (rwxrwx)、他のユーザーはアクセスを拒否される (---) ことを示しています。一番最初の文字はファイルのタイプです。

あるユーザーやグループによって所有されているファイルを一覧するには find コマンドを使います:

# find / -group [group]
# find / -user [user]

ファイルの所有ユーザーやグループは chown (change owner) コマンドで変更できます。ファイルのアクセス許可を変更するコマンドは chmod (change mode) です。

詳しくは man chown, man chmod, や Linux file permissions を見て下さい。

ファイル一覧

Warning: 以下のファイルを直接編集してはいけません。ロックを正しく使ってデータベースのフォーマットを崩すことを避けるユーティリティが存在します。#ユーザー管理#グループ管理 を見て下さい。
ファイル 目的
/etc/shadow セキュアなユーザーアカウント情報
/etc/passwd ユーザーアカウント情報
/etc/gshadow グループアカウントの暗号化された情報
/etc/group ユーザーが属するグループの定義
/etc/sudoers sudo を実行できるユーザーのリスト
/home/* ホームディレクトリ

ユーザー管理

現在システムにログインしているユーザーを一覧するには who コマンドを使います。

新しいユーザーを追加するときは useradd コマンドを使って下さい:

# useradd -m -g [initial_group] -G [additional_groups] -s [login_shell] [username]
  • -m を使うとユーザーのホームディレクトリ /home/[username] を作成します; ホームディレクトリの中では、root でないユーザーがファイルの書き込み・削除、プログラムのインストールなどができます。
  • -g でユーザーのイニシャルログイングループのグループ名・ナンバーを定義します; グループ名が存在していなければなりません; グループナンバーが指定された時は、そのナンバーが既存のグループに参照されている必要があります; 指定されなかった場合は、useradd の挙動は /etc/login.defs 内の USERGROUPS_ENAB に基づきます。
  • -G はユーザーがメンバーになる追加グループ(のリスト)を指定します; グループはそれぞれカンマで区切り、スペースを入れてはいけません; デフォルトはイニシャルグループにだけユーザーを属させます。
  • -s ではユーザーのデフォルトログインシェルのパスとファイル名を定義します; Arch Linux の init スクリプトは Bash を使っています; ブートプロセスが完了した後、ここに指定したシェルがデフォルトのログインシェルになります; Bash 以外のシェルを使うのなら、その選んだシェルのパッケージをインストールしておいてください。

典型的なデスクトップの例として、bash をログインシェルに指定して archie という名前のユーザーを追加:

# useradd -m -g users -s /bin/bash archie

GECOS (例: フルネーム) のユーザー情報を入力するには:

# chfn [username]

(インタラクティブモードで chfn が起動します)。

ユーザーのパスワードを設定するには:

# passwd [username]

ユーザーアカウントは userdel コマンドで削除できます。

# userdel -r [username]

-r オプションはユーザーのホームディレクトリとメールスプールも削除します。

ユーザーデータベース

ローカルユーザー情報は /etc/passwd ファイルに保存されます。システム内の全てのユーザーアカウントを一覧するには:

$ cat /etc/passwd

一行毎にアカウントが表示され、そのフォーマットは:

account:password:UID:GID:GECOS:directory:shell

それぞれの意味:

  • account はユーザーの名前
  • password はユーザーのパスワード
  • UID は数字のユーザー ID
  • GID はユーザーの数字のプライマリーグループ ID
  • GECOS は任意のフィールドでユーザーの情報を格納します; 通常ユーザーのフルネームを含めます
  • directory はユーザーの $HOME ディレクトリ
  • shell はユーザーのコマンドインタプリタ (デフォルトは /bin/sh)
Note: Arch Linux は暗号化したパスワードを使っています。passwd ファイルは誰からも読めるようになっており、(ハッシュ化されているかどうかにかかわらず)パスワードをこのファイルに保存するのは安全ではありません。代わりに、password にはハッシュ化されたパスワードがアクセスが制限されたファイル /etc/shadow に保存されていることを示すプレースホルダ文字 (x) が入ります。

グループ管理

/etc/group がシステム上のグループを定義するファイルです (詳しくは man group)。

groups コマンドでグループのメンバーを表示できます:

$ groups [user]

user を省略すると、現在使っているユーザーのグループ名が表示されます。

id コマンドはユーザーの UID や関連付けられた GID などの詳細情報を表示します:

$ id [user]

システム上の全てのグループを一覧するには:

$ cat /etc/group

groupadd コマンドで新しいグループを作成できます:

# groupadd [group]

そしてユーザーをグループに追加するには gpasswd コマンドを使います:

# gpasswd -a [user] [group]

グループを削除するには:

# groupdel [group]

グループからユーザーを外すには:

# gpasswd -d [user] [group]

グループに追加・削除したいユーザーがログイン中の場合、一度ログアウトしないと変更が適用されません。

グループ一覧

ユーザーグループ

Note: グループの一部は systemd を使っている場合は必要ありません。ここを見て下さい。
Note: (ログインしたのとは別の VT で X を起動するなどして) logind セッションが壊されない限り、サウンド、3D、プリント、マウントなど普通のデスクトップで使うために必要なグループはありません。

ワークステーション/デスクトップユーザーはしばしば root でないユーザーを以下のグループに追加することで周辺機器やハードウェアのアクセスを許可したりシステム管理を楽にします:

グループ 影響があるファイル 目的
audio /dev/audio, /dev/snd/*, /dev/rtc0 全てのセッションでのサウンドハードウェアへの直接アクセス (ALSAOSS によって必要)。ローカルセッションはすでにサウンドを再生したりミキサーを操作することができます。
camera Digital Cameras (日本語) のアクセス。
disk /dev/sda[1-9], /dev/sdb[1-9] optical, floppy, storage など他のグループによる影響を受けないブロックデバイスへのアクセス
floppy /dev/fd[0-9] フロッピーディスクのアクセス。
games /var/games ゲームソフトウェアへのアクセス。
locate /usr/bin/locate, /var/lib/locate, /var/lib/mlocate, /var/lib/slocate updatedb コマンドを使う権利。
lp /etc/cups, /var/log/cups, /var/cache/cups, /var/spool/cups プリンターハードウェアへのアクセス; プリンタージョブの管理を有効にします。
network NetworkManager (日本語) を使うときなどにネットワーク設定を変更する権利。
networkmanager NetworkManager (日本語) でワイヤレス接続するユーザーに必要。Arch ではこのグループはデフォルトで含まれていないので手動で追加する必要があります。
optical /dev/sr[0-9], /dev/sg[0-9] CD や DVD ドライブなどオプティカルドライブへのアクセス。
power Pm-utils (サスペンド, ハイバネート...) などのパワー管理コントロールを使う権利。
scanner /var/lock/sane スキャナーハードウェアへのアクセス。
storage USB ハードドライブ、フラッシュ・ジャンプドライブ、MP3 プレイヤーなどリムーバルドライブへのアクセス; ストレージデバイスのマウントを有効にする。
sys CUPS でプリンターを管理する権利。
uucp /dev/ttyS[0-9], /dev/tts/[0-9] モデムやハンドヘルド、RS-232 シリアルポートなどのシリアル・USB デバイス。
video /dev/fb/0, /dev/misc/agpgart ビデオキャプチャデバイスや、2D/3D ハードウェアアクセラレーション、フレームバッファへのアクセス (このグループに属さなくても X は使えます)。ローカルセッションはすでにハードウェアアクセラレーションやビデオキャプチャが利用できます。
wheel 管理作業用グループ、通常 sudo や su コマンドに権限をわたすのに使われます (デフォルトではどちらも wheel を使いません)。将来的には systemd によって非 root としてサービスの起動・停止をするために使われる予定です。[1]

システムグループ

以下のグループはシステムのために使われるものです。駆け出しの Arch ユーザーには使う必要がありません:

グループ 影響があるファイル 目的
avahi
bin /usr/bin/* /usr/bin/ 内のバイナリファイルへのリードオンリーアクセス
clamav /var/lib/clamav/*, /var/log/clamav/* Clam AntiVirus によって使われます。
daemon
dbus /var/run/dbus/*
ftp /srv/ftp Proftpd などの FTP サーバーによって使われます
gdm X server authorization directory (ServAuthDir) GDM グループ。
hal /var/run/hald, /var/cache/hald
http
kmem /dev/port, /dev/mem, /dev/kmem
log /var/log/* /var/log のログファイルへのアクセス
mail /usr/bin/mail
mem
mpd /var/lib/mpd/*, /var/log/mpd/*, /var/run/mpd/*, optionally music directories MPD グループ。
nobody 非特権グループ。
ntp /var/lib/ntp/* NTPd グループ。
policykit PolicyKit グループ。
root /* 完全なシステム管理とコントロール (root, admin)。
smmsp sendmail グループ。
systemd-journal /var/log/journal/* Provides access to the complete systemd logs. Otherwise, only user generated messages are displayed.
tty /dev/tty, /dev/vcc, /dev/vc, /dev/ptmx Eg. to acces /dev/ACMx
users 標準のユーザーグループ。
vboxsf 仮想マシンの共有フォルダ VirtualBox (日本語) によって使われます。
fuse ユーザーマウントを許可するために fuse によって使われます。

ソフトウェアグループ

以下のグループはメンバーに特定のソフトウェアの利用を許可します:

グループ 影響のあるファイル 目的
adbusers /dev/ 下のデバイスノード Right to access Android Debugging Bridge.
cdemu /dev/vhba_ctl cdemu ドライブエミュレーションを使う権利。
kvm /dev/kvm Benefit from KVM's-Hardware-assisted virtualization speed if your Processor features either Intel's VT-x or AMD's AMD-V extension.
thinkpad /dev/misc/nvram Used by ThinkPad users for access to tools such as tpb.
vboxusers /dev/vboxdrv VirtualBox ソフトウェアを使う権利。
vmware VMware ソフトウェアを使う権利。
ssh Sshd can be configured to only allow members of this group to login.
wireshark Right to capture packets with Wireshark.

使われなくなったグループ

以下のグループは現在利用されていません:

グループ 目的
rfkill Unused! Right to control wireless devices power state (probably should be used by rfkill).
stb-admin Unused! Right to access system-tools-backends