Jump to content 日本-日本語
日本HPホーム 製品 & サービス サポート & ドライバー ソリューション ご購入方法
お問い合わせ

製品とサービス  >  ソフトウェアとOS  >  HP-UX   >  Knowledge-on-Demand  >  UNIXの教科書 運用編

UNIXの教科書 運用編
〜はじめよう! WindowsとLinuxからのステップアップ〜

第2日目:ファイルの安全管理(その1)〜パーミッションを設定する〜

HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
UNIXの教科書 運用編 第2日目:ファイルの安全管理(その1)
UNIXの教科書 運用編〜はじめよう! WindowsとLinuxからのステップアップ〜
パーミッションの概要
パーミッションを設定する
ページ:  戻る   |   1   2

2時間目:パーミッションを設定する

1時間目の説明でUNIXにおけるパーミッションの概要がつかめたと思います。2時間目では既存のファイルのパーミッションを変更する方法を中心に説明します。chmodコマンドを使いますが、パーミッションの指定方法は記号による方法と、数値による方法の2種類があります。

記号によるパーミッションの設定

記号によってパーミッションを変更する場合の、chmodコマンドの書式は次のようになります。

chmod <ユーザー><オペレーター><アクセス権限> ファイル

ユーザー
u 所有者(「User」の略)
g 所有グループ(「Group」の略)
o その他のユーザー(「Other」の略)
a すべてのユーザー(「All」の略、ugoを指定したのと同じ)
オペレーター
+ 許可を加える
- 許可を取り消す
= 設定する(元の設定をクリアする)
アクセス権限
r 読み出し可
w 書き換え可
x 実行可

次にいくつかの例を示します。

1) 所有者と所有グループに対して書き換えを許可する
$ chmod ug+w sample.txt

2) すべてのユーザーに読み出しを許可する
$ chmod a+r sample.txt

3) 所有グループとその他のユーザーの書き換えを許可しない
$ chmod go-w sample.txt

四色君:
オペレーターの「+」と「=」の違いがよくわからないんですけど……。
四色君
マリー先生
マリー先生:
「+」はそれまでの設定はそのままで新たにアクセス権を追加し、「=」は、指定したユーザーに対するそれまでの設定をクリアして再設定するの。たとえば、「a=r」とした場合には、「すべてのユーザー」(a)に対して、「読み出し」(r)、「書き換え」(w)、「実行」(x)のそれまでの設定がいったんクリアされ、新たに「読み出し」(r)のみが許可されるようになるの。次の例を見て理解してね。

$ ls -l sample.txt  【Enter】
-rw-r-----   1 o2         users           12 Sep  6 16:30 sample.txt
←初期状態のパーミッションは「rw-r------」
$ chmod g+w sample.txt  【Enter】  ←所有グループに書き換えを許可する
$ ls -l sample.txt  【Enter】
-rw-rw----   1 o2         users           12 Sep  6 16:30 sample.txt
←パーミッションは「rw-rw-----」
$ chmod a=r sample.txt  【Enter】  ←すべてのユーザーに読み出しのみを許可する
$ ls -l sample.txt  【Enter】
-r--r--r--   1 o2         users           12 Sep  6 16:30 sample.txt
←パーミッションは「r--r------」

タックス君:
他人の作ったファイルのパーミッションを変更することはできるのですか?
タックス君
マリー先生
マリー先生:
一般ユーザーの場合、パーミッションを変更できるのは所有者が自分自身、つまり通常は自分の作ったファイルだけなの。ただし、スーパーユーザーはすべてのファイルのパーミッションを変更できるわ。

数値によるパーミッションの設定

パーミッションを3桁の数値で指定するには、chmodを次の書式で実行します。

chmod <3桁の8進数> ファイルのパス

各桁は順に「所有者」「所有グループ」「その他のユーザー」のアクセス権に対応しています。
8進数の数値の作り方を説明しましょう。まず、「読み出し」(r)、「書き換え」(w)、「実行」(x)の順に、許可されていれば「1」、許可されていなければ「0」と表して並べます。これを2進数と見立てて8進数の数値に変換します。たとえば、「読み出し」(r)と「書き換え」(w)のみが許可されている場合、8進数の数値は「6」になります。
パーミッションを8進数で表現する
図2:パーミッションを8進数で表現する
これを「所有者」「所有グループ」「その他のユーザー」ごとに行って数値を順につなげれば、アクセス権を表す3桁の8進数ができるというわけです。たとえば、所有者が読み出しと書き換え可(rw-)、所有グループは読み出しのみ可(r--)、その他のユーザーは許可なし(---)の場合には「640」となります
パーミッションを3桁の8進数で表現する
図3:パーミッションを3桁の8進数で表現する

タックス君:
2進数から8進数にするのはどうやるのでしたっけ。そういえば、中学生の時に習ったような……。
タックス君
マリー先生
マリー先生:
次の表に、3桁の2進数から8進数への変換をまとめておくわね。

2進数 8進数
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

四色君:
複数のファイルのパーミッションを、まとめて設定することはできますか?
四色君
マリー先生
マリー先生:
chmodコマンドの引数に「*」や「?」といったシェルのワイルドカードを使うこともできるわ。たとえば、カレントディレクトリの下の拡張子が「.txt」のすべてのファイルのパーミッションを「600」にするには、次のようにするの。

$ chmod 600 *.txt

タックス君:
指定したディレクトリ以下のファイルやディレクトリをまとめて変更することもできますか?
タックス君
マリー先生
マリー先生:
その場合は「-R」オプションを指定すればOKよ。「-R」は「Recursive」(再帰的)の頭文字を表し、指定したディレクトリ以下を順にたどって、まるごとパーミッションを設定するの。
たとえば、samplesディレクトリ以下を丸ごと、「a+r」(すべてのユーザーに対して読み出し権限を追加)に設定するには、次のようにすればいいわ。

$ chmod -R a+r samples/

練習問題

第1問:パーミッションの説明に関して、正しくないのはどれか?

a) 読み出し権限「r」がないファイルは表示できない
b) 書き換え権限「w」がないファイルは削除できない
c) 読み出し権限「r」がないディレクトリの下の一覧は表示できない
d) 書き換え権限「w」がないディレクトリの下のファイルは削除できない
正解はこちら
b) 書き換え権限「w」がないファイルは削除できない
ファイルが削除できるかどうかは、それが保存されているディレクトリの書き換え権限に依存する。

第2問:ファイル「sample.txt」に対して、所有グループへの書き換えを許可する権限を追加するコマンドはどれか? ただし、その他のパーミッションは変更しないものとする。

a) chmod g+w sample.txt
b) mod gw sample.txt
c) chmod g=w sample.txt
d) chmod g-w sample.txt
正解はこちら
a) chmod g+w sample.txt
オペレーターに「+」を使用することに注意。「=」を使うと、対象となるユーザーに設定されているその他のパーミッションがクリアされてしまう。

第3問:カレントディレクトリの下の、拡張子が「.txt」のファイルのパーミッションを、所有者のみ読み書き可に設定するコマンドはどれか?

a) chmod 400 *.txt
b) chmod 666 *.txt
c) chmod 133 *.txt
d) chmod 600 *.txt
正解はこちら
d) chmod 600 *.txt
所有者のパーミッションを「rw-」、つまり読み出し可「r」書き換え可「w」に設定する場合の8進数の値は「6」になる。

第4問:samplesディレクトリ以下の、すべてのファイルとディレクトリに対して、所有者および所有グループへの書き換え権限を追加するコマンドはどれか?

a) chmod ug+w samples
b) chmod -R ug+w samples
c) chmod -a ug+w sample
d) chmod -r ug+w samples
正解はこちら
b) chmod -R ug+w samples
指定したディレクトリ以下のパーミッションを再帰的に変更するには、chmodコマンドを「-R」オプションを指定して実行する。

連載記事一覧 戻る ページ:  戻る   |   1   2

教科書シリーズ 「UNIXの教科書」 「HAクラスターの教科書」 連載記事一覧

UNIXの教科書「基礎編」

第1日目:ログインしてコマンドを実行してみる
第2日目:ディレクトリやファイルを操作してみる
第3日目:シェルの基本を知る
第4日目:ファイルの基本操作
第5日目:viエディタの操作(基本編)
第6日目:リダイレクションとパイプを活用する
期末試験

UNIXの教科書「応用編」

第1日目:grepコマンドと正規表現
第2日目:ファイルの検索
第3日目:viエディタの操作(活用編)
第4日目:ファイルの圧縮とアーカイブ
第5日目:ジョブとプロセスの操作
第6日目:シェルの環境設定
第7日目:シェルスクリプトでより便利に
期末試験

UNIXの教科書「運用編」

第1日目:ユーザーの管理
第2日目:ファイルの安全管理(その1)
第3日目:ファイルの安全管理(その2)
第4日目:ネットワークの基本を理解する
第5日目:ネットワーク関連のコマンド
第6日目:システム情報の表示
期末試験 New!

HAクラスターの教科書

第1日目:ハードウェア構成を知る
第2日目:ネットワークを設定する
第3日目:共有ディスクを構成する
第4日目:HAクラスターを構成する
第5日目:パッケージを構成する
第6日目:障害テストを実施する
期末試験

 その他の連載記事


本ページの内容は執筆時の情報に基づいており、異なる場合があります。

お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

オンラインサポート
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。
印刷用画面へ
プライバシー ご利用条件・免責事項 ウェブマスターに連絡