Linux パーミッションについて

2006-12-23 更新

パーミッションとは?
リナックスファイル(ディレクトリ)に対する「読み」、「書き」、「実行(閲覧)」 権限のことです。
これらの権限は「所有者」、「グループ」、「その他」に対して それぞれ許可/禁止の設定が可能です。
パーミッションを見るには
$ ls -l    (ファイル/ディレクトリ)
などと入力します。
パーミッション図
パーミッションはセキュリティの第一歩と言えるでしょう。
パーミッションの設定は chmod コマンドで行ないます。
対象者のユーザを u、グループを g、その他を o、全てを a
操作の読込みを r、書込みを w、実行を x、許可を +、禁止を - とすれば、
$ chmod u+rwx,g+w,o-rwx some.file (1)
$ chmod u+rx-w,g+r-wx,o-rwx some.file (2)
$ chmod a+w some.file (3)
(1) ユーザは読み書き実行が可能
グループは書込みを許可
その他は読み書き実行を禁止
グループの読込み、実行は以前のままです。
(2) ユーザは読み込み、実行が可能で書込みを禁止
グループは読込みのみを許可
その他は全て禁止
(3) 誰でも書込み可能

rwx を 8進数で記述する方法もあります。
0---4r--
1--x5r-x
2-w-6rw-
3-wx7rwx
この場合は元の状態を保持しないで完全な設定を行なうことになります。

# chmod 744 file (4)
# chmod 777 directory (5)
# chmod -R 744 directory (6)
(4) ユーザは読み書き実行が可能
グループとその他は読込みのみを許可
(5) directory に対し、誰でも読み書き実行が可能
(6) directory とその下の全てに対しユーザは読み書き実行が可能、
グループとその他は読込みのみを許可
Apache サーバ、の CGI, PHP メール配送のスクリプトから ファイル操作、コマンド等を実行する場合、どの所有者、 グループで実行するのかを考えないとハマってしまうことがあります。
設定ファイル(*.conf) を確認するか whoami を実行して確認します。

高度(?) なパーミッション
あまり使うことはないでしょうが、こういう設定もできます。
SUID
実行可能ファイルに対し、所有者権限で実行します。
SGID
実行可能ファイルに対し、グループ権限で実行します。
ディレクトリの場合、グループが同じファイル、ディレクトリを作成します。
スティッキービット
実行ファイルに対し、メモリに常駐させ、次回から起動を速くします。
ディレクトリの場合、所有者以外は名前の変更、削除ができません。
それぞれの設定は chmod コマンドで u+s, g+s, o+t のように書きます。

End of page
メニュー
トップページ
Linuxノート目次
LAN の構成例
Linux のインストール
ユーザ登録
vi(エディタ)の使いかた
tar の使いかた
rpm の使いかた
パーミッションについて
ネットワークの設定
iptables
(ファイアウォール)の設定
NTP(時刻あわせ)の設定
dhcpd の設定
一般的なソースからの
インストール方法
PostgreSQL
グラフィックライブラリ
OpenSSL
Apache2.0
Apache2(工事中)
php4,php5
vsftpd(FTP サーバ)
Postfix(メール)
POP Before SMTP
Tripwire(改竄検出)
openssh
Linux で CD 書込み
sudo
文字コード
RAID1 構築