Solaris ユーザーズガイド (上級編)

アクセス権の変更 (chmod)

ファイルやディレクトリのアクセス権を変更する場合は、chmod コマンドを使います。アクセス権を変更するには、そのファイルやディレクトリの所有者であるか、root にアクセスできる必要があります。chmod コマンドの一般的な形式は次のとおりです。


chmod permissions name

permissions は変更用のアクセス権、name は影響を受けるファイルやディレクトリの名前を示します。

アクセス権を指定するには、いくつかの方法があります。ここでは簡単な方法を紹介します。

  1. 次の文字のどれかを使ってユーザのタイプを指定します。

    • u (所有者)

    • g (グループ)

    • o (ほかのユーザ)

    • a (上記 3 つのカテゴリの全ユーザ)

  2. アクセス権を付加するか (+) 除去するか (-) を指定します。

  3. 次のいずれかの文字を使ってアクセス権を指定します。

    • r (読み取り)

    • w (書き込み)

    • x (実行)

次の例では、carrots ディレクトリに対する書き込み権を、同じグループに属するユーザに付与しています (つまり permissionsg+wnamecarrots)。


$ cd veggies2

$ ls -l

drwxr-xr-x   2 user2    users        512 Nov  1 09:11 carrots

$ chmod g+w carrots

$ ls -l

drwxrwxr-x   2 user2    users        512 Nov  1 09:11 carrots

$

上記の例の chmod g+w carrots コマンドは、ファイル carrots に対する書き込み権をこのグループに与えます。グループのアクセス権のハイフン (-) が w に変わっています。

この同じディレクトリに対する読み取り権と実行権を、自分のグループに属さないほかのユーザから除去するには、次のように入力します。


$ ls -l

drwxrwxr-x   2 user2    users        512 Nov  1 09:11 carrots

$ chmod o-rx carrots

$ ls -l

drwxrwx---   2 user2    users        512 Nov  1 09:11 carrots

$

他のユーザのアクセス権の r (読み取り権) と x (実行権) が、両方ともハイフン (-) に変更されたことが分かります。

新しいファイルを作成すると、次のアクセス権がシステムによって自動的に割り当てられます。

-rw-r--r--

新しいディレクトリを作成すると、次のアクセス権がシステムによって自動的に割り当てられます。

drwxr-xr-x

たとえば、新しいファイル turnip をその所有者 (user2) が実行できるようにするには、次のように入力します。


$ ls -l turnip

-rw-r--r--   1 user2    users        124 Nov  1 09:14 turnip

$ chmod u+x turnip

$ ls -l turnip

-rwxr--r--   1 user2    users        124 Nov  1 09:14 turnip

$

3 つのカテゴリのすべてのユーザについてアクセス権を変更するには、chmod コマンドに -a オプションを指定します。garlic という新規ファイルの実行権を全ユーザに与えるには、次のように入力します。


$ ls -l garlic

-rw-r--r--   1 user2    users        704 Nov  1 09:16 garlic

$ chmod a+x garlic

$ ls -l garlic

-rwxr-xr-x   1 user2    users        704 Nov  1 09:16 garlic

$

ls -l コマンドの出力に表示されている x は、全ユーザが garlic を実行できることを示します。

ワイルドカード文字の * を使って、複数のファイルやディレクトリのアクセス権を変更することもできます。たとえば、現在のディレクトリ veggies 内の全ファイルのアクセス権を変更して所有者だけがファイルの書き込みをできるようにする場合は、次のように入力します。


$ pwd

/home/user2/veggies

$ ls -l

-rwxrwxrwx   1 user2    users       5618 Nov  1 09:18 beets

-rwxrwxrwx   1 user2    users       1777 Nov  1 09:18 corn

-rwxrwxrwx   1 user2    users       3424 Nov  1 09:18 garlic

-rwxrwxrwx   1 user2    users      65536 Nov  1 09:18 onions

$ chmod go-w *

$ ls -l

total 152

-rwxr-xr-x   1 user2    users       5618 Nov  1 09:18 beets

-rwxr-xr-x   1 user2    users       1777 Nov  1 09:18 corn

-rwxr-xr-x   1 user2    users       3424 Nov  1 09:18 garlic

-rwxr-xr-x   1 user2    users      65536 Nov  1 09:18 onions

$

注 –

chmod は、現在のディレクトリでだけ実行してください。