広告が嫌いですか? 行く 広告なし 今日

chmod カルクレーター オクタル数を覚えることなくUnixファイルの権限

掲載日
chmod カルクレーター:Unixファイルパーミッションを八進数を覚えていなくても

Unixのファイルパーミッションは、ほぼすべての人がどこかで困る。暗訳的な rwxr-xr-xls -la 出力、3桁の八進数、それぞれのセット間の違い chmod, chownと、 chgrp — すべてを頭に持つのは難しい。代わりに、このリファレンスをブックマークできる。

今すぐ値を計算したい場合は、 chmod カルクレーター — ビジュアルにパーミッションを選択して、正しい八進数またはシンボリックな表記を生成します。

パーミッションモデル

すべてのファイルおよびディレクトリは、3つのパーミッションセットを持っています。

  • 所有者 (u) — ファイルを所有するユーザー
  • グループ (g) — ファイルに割り当てられたグループのメンバー
  • その他 (o) — その他すべての人

各セットには3ビットがあります。 読み取り (r = 4), 書き込み (w = 2), 実行 (x = 1). それらを足し合わせて、そのセットの八進数桁を得ます。したがって rwx = 4+2+1 = 7, r-x = 4+0+1 = 5, r-- = 4+0+0 = 4.

3桁の八進数のような 755 は、所有者が7 (rwx)、グループが5 (r-x)、その他が5 (r-x)を得ることを意味します。

ls -laの出力の読み方

-rwxr-xr-x 1 thien www-data 4096 Apr 10 10:00 deploy.sh
drwxr-x--- 2 thien www-data 4096 Apr 10 09:00 private/

最初の文字はファイルの種類です: - 通常のファイルの場合、 d ディレクトリの場合、 l シンボリックリンクの場合。次の9文字は、所有者、グループ、その他という順で3文字ずつパーミッションセットを表します。

一般的なchmod値

価値所有者グループその他一般的な使用
644rw-r–r–ウェブファイル(HTML、CSS、PHP)
755rwxr-xr-xディレクトリ、シェルスクリプト
600rw-SSHキー、プライベート設定ファイル
640rw-r–設定ファイル(グループ読み可)
664rw-rw-r–共有プロジェクトファイル
700rwxプライベートスクリプト
777rwxrwxrwx使用しない — すべてのユーザーにフルアクセスを与える

なぜ777は間違っているか

chmod 777 は、よくある「あとで直す」ためのショートカットで、長期間残ることがあります。システム上のすべてのユーザー(ウェブコンテキストではPHPプロセスを含む)がファイルに書き込みアクセスを持つことになります。共有サーバではセキュリティ上の問題になります。VPSでは不適切です。実際の所有権の問題を解決するために chown その代わり。

chmod と chown と chgrp

コマンド何が変わるか
chmodファイルの読み取り/書き込み/実行権限
chownどのユーザー(およびオプションでグループ)がファイルを所有しているか
chgrpどのグループがファイルを所有しているか
chmod 644 index.php           # Set permissions
chown www-data:www-data .    # Change owner and group
chgrp developers config.yml  # Change group only

Sticky Bit、setUID、setGID

これらは、4桁の八進数(前付)またはシンボリック表記での文字置換で表されます。

  • Sticky bit (1 / t) — ディレクトリでは、ファイルの所有者が自分のファイルを削除できる。ディレクトリで使用される。 /tmp.
  • setUID (4 / s で所有者 x) — ファイルは所有者のユーザーとして実行される。実行ユーザーではなく、実行されるファイルの所有者。これを使用する。 sudopasswd.
  • setGID (2 / s でグループ x) — ファイルでは、ファイルのグループで実行される。ディレクトリでは、新しいファイルはディレクトリのグループを継承し、共有プロジェクトディレクトリでは便利です。
chmod +t /shared/dir          # Add sticky bit
chmod 1755 /shared/dir        # Sticky bit + standard 755
chmod g+s /var/www/project/   # setGID on a directory

in ls -l 出力では、ディレクトリでのsetGIDは drwxrwsr-x; sticky bitは drwxrwxrwt.

再帰的パーミッション:-Rを使うときは注意

chmod -R ディレクトリおよびその中身すべてにパーミッションを適用します。一般的な誤りは、 755 を再帰的に実行すると、すべてのファイルに実行権限が与えられてしまうこと(必要な場合でも)です。より安全なアプローチは、ディレクトリとファイルを分けています。

# Apply 755 to directories, 644 to files
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

よくあるパーミッション問題の解決

# Web server can't read your files (403 Forbidden)
chown -R www-data:www-data /var/www/html
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

# SSH key refused (WARNING: UNPROTECTED PRIVATE KEY FILE)
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 700 ~/.ssh

# Script won't execute (Permission denied)
chmod +x deploy.sh

# PHP can't write to uploads directory
chown www-data:www-data wp-content/uploads
chmod 755 wp-content/uploads

脳内で計算をスキップ

頭の中で rwxr-x---750 を計算するのは可能ですが、面倒です。その chmod カルクレーター(IO Tools) は、視覚的にパーミッションを切り替え、八進数値とシンボリック表記を即座に表示してくれます。これは、実行前に正確に確認するために非常に便利です。 chmod -R on プロダクションディレクトリで

広告なしで楽しみたいですか? 今すぐ広告なしで

拡張機能をインストールする

お気に入りのブラウザにIOツールを追加して、すぐにアクセスし、検索を高速化します。

に追加 Chrome拡張機能 に追加 エッジ拡張 に追加 Firefox 拡張機能 に追加 Opera 拡張機能

スコアボードが到着しました!

スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!

ニュースコーナー 技術ハイライト付き

参加する

価値ある無料ツールの提供を継続するためにご協力ください

コーヒーを買って