前回は、Linuxの「ユーザー」と「グループ」を確認しました。今回は、特定のグループメンバーで共有するディレクトリを作成しながら、ディレクトリのパーミッション(許可属性)がどのように働くかを試してみましょう。
本連載第9回では、ファイル/ディレクトリの基本的な「パーミッション(許可属性)」を説明しました。具体的には、以下の通りです(表1)。
パーミッション | 数値 | 意味 |
---|---|---|
r | 4 | 読み出し可能(ディレクトリの場合は、ファイル一覧の表示の許可) |
w | 2 | 書き込み可能(ディレクトリの場合は、ファイルの追加/削除の許可) |
x | 1 | アクセス(実行)可能(「cd」コマンドでそのディレクトリに入ったり、ディレクトリ内のファイルを参照したりできる) |
- | 0 | 許可がない |
表1 ファイル/ディレクトリのパーミッションと数値の対応 |
これらのパーミッションは、「ユーザー(Users)」「グループ(Groups)」「それ以外(Others)」に対して設定されています。
「共有ディレクトリ」には、「誰でも使用できるディレクトリ」と「特定のグループだけが使用できるディレクトリ」の2種類があります。今回は、後者の「特定のグループだけが使用できるディレクトリ」を作成してみます。
共有ディレクトリでは「r」「w」「x」のパーミッションの他に、所有グループの権限を引き継ぐ「set-group-ID(SGID)」属性があると、より使いやすくなります。また、必要に応じてファイルの削除やリネームをユーザー(所有者)だけが行える「削除制限」を追加します。
ここでは「testusers」というグループを用意して、testusersグループ用の共有ディレクトリ「/usr/local/workdir」を作成してみます。
testusersグループに追加するユーザーは、「penguin」と「seagull」とします。
「useradd」コマンドで、テスト用のユーザー「penguin」と「seagull」を作成します。「useradd ユーザー名」を実行すると、ユーザーとホームディレクトリ(/home/ユーザー名)が作成されます。
続いて、「passwd」コマンドで、ユーザーのパスワードを設定します。なお、今回作成しているのはテスト用のユーザーなので、パスワードは必須ではありません。
useradd penguin
(ユーザー「penguin」を作成する)
passwd penguin
(ユーザー「penguin」にパスワードを設定する)
useraddコマンド、passwdコマンドは管理者権限で実行します(画面1)
次に、「groupadd」コマンドで「testusers」というグループを作成し、「gpasswd」コマンドでユーザー「penguin」と「seagull」をtestusersグループに追加します。
groupadd testusers
(グループ「testusers」を作成する)
gpasswd -a penguin testusers
(ユーザー「penguin」を「testusers」グループに追加する)
groupaddコマンド、gpasswdコマンドは管理者権限で実行します(画面2)
なお、この設定は、ユーザーpenguinとseagullが新たにログインした時点から有効になります。今回は「su」コマンドを使用し、「su - ユーザー名」でログイン相当の処理を行ってテストします。
続いて、「mkdir」コマンドで「/usr/local」に「workdir」というディレクトリを作成し、「chgrp」コマンドで「testusers」を所有グループに設定します。
mkdir /usr/local/workdir
(/homeにworkdirというディレクトリを作成する)
chgrp testusers /usr/local/workdir
(workdirの所有グループをtestusersにする)
(管理者権限で実行する必要があります)
なお、以下の画面3では、操作ミスを極力防ぐために「cd」コマンドで「/usr/local/workdir」に移動してから、chgrpコマンドで「.」、つまりカレントディレクトリに対する操作を行っています。「/usr/local/workdir」という指定でも構いませんが、「/usr/local」のようにディレクトリの指定が不完全な状態でうっかり[Enter]キーに触れて実行してしまわないように十分注意してください。
Copyright © ITmedia, Inc. All Rights Reserved.