初めに #
Linuxシステムにおいて、ファイルやディレクトリの権限(パーミッション)は、セキュリティおよびアクセス制御の観点から非常に重要な要素となります。
通常、ls -l
コマンドで表示される権限は英字(rwx
形式)で表現されますが、これを視覚的にわかりにくいと感じたことがある方も多いのではないでしょうか。
本記事では、stat コマンドを用いて 権限を8進数(数値)形式で確認する方法について解説いたします。
rwx形式 #
Linuxのパーミッション表記では、各ファイルやディレクトリに対して次のような記号でアクセス権が示されます。
アクセス権は r(読み取り)、w(書き込み)、x(実行)の3種類の記号で表され、それぞれに数値が割り当てられています。
この3つを組み合わせて合計したものが、chmod などで使われる 8進数表記 になります。
記号 | 意味 | 数値 |
---|---|---|
r |
読み取り許可 | 4 |
w |
書き込み許可 | 2 |
x |
実行許可 | 1 |
- |
権限なし | 0 |
statコマンド #
statコマンドの「-c
」オプションを使用する事でファイルやディレクトリの権限(パーミッション)を数字で表示する事が可能です。
数字で表示するには「-c
」オプションにて以下の様に「%a
」を指定します。
stat -c "%a" ファイル名
今回は例として「/home
」ディレクトリの権限をstatコマンドを使用し確認してみます。
lsコマンドにて確認した際は以下となっております。
ls -dl /home
drwx--x--x 222 root root 5555 2月 30 16:50 /home
statコマンドにて確認した際は以下となっております。
stat -c "%a" /home
711
このように、statコマンドを使用することで、lsコマンドでは視覚的に確認しづらいパーミッションを8進数(数値)として直接確認できます。
%a 以外の出力フォーマット #
statコマンドの「-c
」オプションでは「%a
」以外にも様々な情報を指定して表示することができます。
例えば以下の様に「%a
」以外に「%n」や「%A」を含めると以下の様により視覚敵に分かりやすいフォーマットとなります。
stat -c "%n: %a %A" /home
/home: 711 drwx--x--x