今回やること
2進数を用いて、片手で31まで数える方法を解説します。
Linux上でファイルのパーミッションを変更する際に役立つので、ぜひ覚えてみてください。
2進数とは
2進数とは、2で桁が上がる数字のことです。
私たちが普段使用しているのは10で桁上がりするため10進数となります。
我ながら大変わかりづらい説明なので、以下に2進数と10進数の対応表を用意しました。
2進数では数字が2になるときに桁数が増えてますね。
10進数も同様に10になるときに桁数が増えています
2進数 | 10進数 |
---|---|
0 | 0 |
1 | 1 |
10 | 2 |
11 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | 10 |
指で2進数を数える方法
まず拳をグーの状態にしてください。
そうすると全ての指が折り畳まれている状態になります。
この状態から、以下のようにして2進数を数えていきます。
折り畳まれている指=0
立っている指=1
2のn乗-1(nは指の本数)まで数えられるので、両手の指を使えば2の10乗-1で1023まで数えられます。(実用性は皆無ですが...)
パーミッションの読み方
linuxサーバー上にテスト用のファイルを用意しました。
lsコマンドの実行結果の左端に -rwxr--r-- という記載がありますね。
これがパーミッションを表しており、以下のような意味を持ちます。
r = 参照権限
w = ファイルの編集権限
x = ファイルの実行権限
パーミッションの2桁目から4行目 = ルートユーザーが出来ること
パーミッションの5桁目から7行目 = ファイルの所有者が出来ること
パーミッションの8桁目から10行目 = 指定のグループに所属しているユーザーが出来ること
つまり、以下の例では
ルートユーザー 参照、編集、実行が出来る。つまりなんでも出来る。
ファイルの所有者 参照だけできる
グループに所属しているユーザー 参照だけできる
ということになります。
# ls -l
-rwxr--r--. 1 yoshida users 0 5月 6 03:35 test.txt
実践
それではパーミッションの変更を行ってみましょう。
今回はファイルの所有者に編集の権限を付けたいと思います。
結論から言うと以下のコマンドでパーミッションを変更することが出来ます。
ここで重要な部分が"764"です。これがパーミッションを表しています。
1桁目の7は2進数で111なので、ルートユーザーにrwxの権限を付与することが出来ます。(つまり変更無し)
2桁目の6は2進数で110なので、所有者にrwの権限を付与することが出来ます。
2桁目の4は2進数で100なので、所有者にrの権限を付与することが出来ます。(つまり変更無し)
# chmod 764 test.txt
# ls -l
-rwxrw-r--. 1 yoshida users 0 5月 6 03:35 test.txt
頭の中での流れを以下に示します。
1.ファイルの所有者のパーミッションを変更するから5桁目〜7桁目を編集する
2.編集権限を付与するので、「r--」から「rw-」にする
3.「rw-」と言うことは2進数で110(ここで指を動かして110が10進数でいくつなのか数える)
4.2進数の110は6だ!
となるため、「chmod 764」で所有者に編集権限が付与できると言うわけです。
終わりに
今回の記事は以上となります。
簡単にできることなのでAWSのEC2上でやってみるか、私が以前書いた記事を参考にLinuxサーバーを立ち上げるなりして試してみてください!
・参考
VMware vSphereで仮想サーバーを作ってみた
仮想マシンにCentOSをインストールしてみた