検索
連載

「共有ディレクトリ」を作成してパーミッション(許可属性)への理解を深めよう“応用力”をつけるためのLinux再入門(11)(1/2 ページ)

前回は、Linuxの「ユーザー」と「グループ」を確認しました。今回は、特定のグループメンバーで共有するディレクトリを作成しながら、ディレクトリのパーミッション(許可属性)がどのように働くかを試してみましょう。

Share
Tweet
LINE
Hatena
「“応用力”をつけるための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」とします。

準備(1)テスト用ユーザーの作成

 「useradd」コマンドで、テスト用のユーザー「penguin」と「seagull」を作成します。「useradd ユーザー名」を実行すると、ユーザーとホームディレクトリ(/home/ユーザー名)が作成されます。

 続いて、「passwd」コマンドで、ユーザーのパスワードを設定します。なお、今回作成しているのはテスト用のユーザーなので、パスワードは必須ではありません。

useradd penguin

(ユーザー「penguin」を作成する)

passwd penguin

(ユーザー「penguin」にパスワードを設定する)


 useraddコマンド、passwdコマンドは管理者権限で実行します(画面1

画面1
画面1 管理者権限でテスト用のユーザー「penguin」を作成する(同じ要領でユーザー「seagull」も作成する)

準備(2)テスト用グループの作成

 次に、「groupadd」コマンドで「testusers」というグループを作成し、「gpasswd」コマンドでユーザー「penguin」と「seagull」をtestusersグループに追加します。

groupadd testusers

(グループ「testusers」を作成する)

gpasswd -a penguin testusers

(ユーザー「penguin」を「testusers」グループに追加する)


 groupaddコマンド、gpasswdコマンドは管理者権限で実行します(画面2

画面2
画面2 管理者権限でテスト用のグループ「testusers」を作成して、ユーザーを追加する

 なお、この設定は、ユーザー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]キーに触れて実行してしまわないように十分注意してください。

画面3
画面3 テスト用のディレクトリ「workdir」作成して、所有グループを変更する
       | 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る