「お前にはこのファイル触らせねーからm9(^Д^)」が出来る[chmod]とパーミッションについて
パーミッションがかけられたファイルを扱う機会があったので、簡単にまとめてみます。
環境はmacOSです。
パーミッションについて
パーミッショは、アクセス権限のことです。
つまり、あるファイルやディレクトリを読み・書き・実行することが出来るかどうかを示しているのです。
これを弄って大ッ嫌いな上司に嫌がらせをしたり、人に見られたくない、ウフフなファイルを見れないようにしてしまいましょう。
まずはパーミッショを確認してみます。
パーミッションの確認方法
確認の方法
$ ls -l
を実行するとそのディレクトリ直下にあるファイルやディレクトリの情報を詳しく見ることができます。
その中にパーミッションの情報もあるので、実際に見て行きましょう。
現在のディレクトリ内は以下のようになっているとします。
そこで$ ls -l
を実行してみます。
$ ls -l
total 0
drwxr-xr-x 1 [user] [group] 0 7 7 06:03 test-directory
-rw-r--r-- 1 [user] [group] 0 7 7 06:02 test.py
-rw-r--r-- 1 [user] [group] 0 7 7 06:02 test.rb
-rw-rw-rw- 1 [user] [group] 0 7 7 06:02 test.txt
色々出てきましたね。
一番右にファイルやディレクトリの名前がありますが、その行はそのファイルの情報を表します。
ファイルがいっぱいあって、目的のファイルを見つけにくいときはパイプを使いましょう。
ls -l | grep [file_name]
[file_name]は一部分だけでも大丈夫です。
また、ここではユーザー (user) やグループ (group) の説明は省きますが、興味があれば調べてみてください。
$ cat /etc/password $ cat /etc/group groups chown user:group filename
等が関係してきます。
一番左の
drwxr-xr-x
は、最初の1文字がデータの種類を示しており、
文字 | データの種類 |
---|---|
d | ディレクトリ |
- | ファイル |
l | シンボリックリンク |
残りの9文字が、3文字1区切りで左から順に、ユーザー・グループ・その他に対するパーミッションなのです。
この例で言えば
rwx | r-x | r-x |
---|---|---|
ユーザー | グループ | その他 |
となります。
パーミッションの表示
パーミッションを確認しましたが、r・w・x・-
の4文字が使われていることに気づきましたか?
上の例では、ユーザーのパーミッションはrwx
でしたが、グループのパーミッションはr-x
でした。
この表記には以下のルールがあります。
1文字目 | 2文字目 | 3文字目 |
---|---|---|
r / - | w / - | x / - |
read(読み込み) | write(書き込み) | execute(実行) |
文字があれば可能、-(ハイフン)であれば不可なのです。
つまり、このtest-directoryというディレクトリは
ユーザー : 読み込み・書き込み・実行ができる
グループ : 読み込み・実行ができる
その他 : 読み込み・実行ができる
という状態にあることが分かりました。
これらが理解できたところで、パーミッションを書き換えてみましょう。
パーミッションの変更
パーミッションの変更は$ chmod
で行うことができますが、
追加・削除するパーミッションの指定方法は2つあります。
1 ) 文字列で指定する方法
$ chmod [文字列] [対象のファイル・ディレクトリ]
文字列で「誰に どの権限を どうするか」を指定することができます。
指定方法は次の通りです。
誰? | どうする? | どの権限? |
---|---|---|
u (ユーザー) / g (グループ) / o (その他) / a (全員) | + (付与) / - (削除) | r / w / x |
ユーザーから実行権限を奪いたい時は、u-x
という文字列を指定します。
$ chmod u-x test-directory
$ ls -l | grep test-directory
drw-r-xr-x 2 [user] [group] 64 7 7 06:07 test-directory
ユーザーのパーミッション部分からx
が無くなっていることが分かりますね。
また、誰の部分と権限の部分は複数指定することができ、
グループとその他から実行権限を失くして、書き込みは可能にしたい時は、
$ chmod go+w-x test-directory
$ ls -l | grep test-directory
drw-rw-rw- 2 [user] [group] 64 7 7 06:07 test-directory
となります。
誰にの部分でa(全員)
を指定すると、ユーザー・グループ・その他のパーミッションを変更することができます。
$ chmod a-x test-directory
$ ls -l | grep test-directory
drwxrwxrwx 2 [user] [group] 64 7 7 06:07 test-directory
2 ) 数値で指定する方法
さて、パーミッションであるrwx
の3文字ですが、2進数で表すこともできますよね。
文字がある => 1
ハイフンがある => 0
とすれば、rwx
の順番は決まっているので、
rwx
: 111
r-x
: 101
のように表せます。
次は、これを10進数に戻しましょう。
パーミッション | 2進数 | 10進数 |
---|---|---|
rwx | 111 | 7 (= 4 + 2 + 1) |
r-x | 101 | 5 (= 4 + 0 + 1) |
となりますね。
したがって、1つのパーミッションは0~7の数字で表すことができ、
これがユーザー・グループ・その他の3個あるので、
rwx rw- r--
=> 764
といった感じで、表すことができます。
ではこの数値を使って、パーミッションを変更して行きましょう。
$ chmod 764 test-directory
$ ls -l | grep test-directory
drwxrw-r-- 2 [user] [group] 64 7 7 06:07 test-directory
これでパーミッションの変更が簡単にできました。
どちらの方法を使うかは自由ですが、個人的には数値指定の方が楽に感じます。
まとめ
どうでしたか?
僕の説明が分かりやすければ、簡単にパーミッションについて理解することができたかと思います。
$ chmod 700 [file or directory]
とでもしてやれば、自分以外はアクセスすることができないファイルが出来上がります。
これであーんなファイルやこーんなファイルも、さらには、上司への恨み辛みを書き連ねた怨讐こもるファイルも、思いのままですね。
是非とも快適なライフを!
Author And Source
この問題について(「お前にはこのファイル触らせねーからm9(^Д^)」が出来る[chmod]とパーミッションについて), 我々は、より多くの情報をここで見つけました https://qiita.com/jeankenshow/items/ff0d77363878c8ccd063著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .