Linux

【Linux】権限の確認とchmodを使った 変更方法

今回の記事では、Linixでのファイルやディレクトリに対する権限の仕組みを見ていきます。
Linuxでは、複数のユーザーがログインして使用する形になるので、
アクセスの権限が付与されているのが普通です。

Linuxでの基本である、権限の確認方法や変更の仕方を学んでいきましょう!

権限の確認方法

ここでは、ファイルとディレクトリへのアクセス権限の確認方法を見ていきます。
両者の確認方法は似ているのですが、微妙な違いなどあるのできちんと抑えていきましょう!

ls -lでファイルを確認

以下の様に、lsコマンドに -lオプションをつけることでファイルの権限を確認できます。

$ ls  -l  対象ファイルのパス

上記コマンドで出力される内容で、以下の2つを抑えておきましょう。

  • ファイルタイプ
  • ファイルモード(権限)

 

では、ファイルタイプと権限の見方を学ぶために以下のコマンドを打った例で見ていきましょう。

$ ls -l /bin/cat

 

上記コマンドを打つと結果がこの様に出力されます。

-rwxr-xr-x1 rootwheel23648542019 /bin/cat

行頭の- がファイルタイプを示します。

-が通常ファイル。
dがディレクトリ
lがシンボリックリンク

rwxr-xr-xがファイルモードを示しており、これが権限です。
3文字ごとに1つのブロックになっており、
左から、オーナー、グループ、その他ユーザーに対する権限を意味しています。

rwx(オーナー権限) r-x(グループ権限) r-x(その他ユーザーの権限)

3文字がどの対象の権限を指すか理解されたと思いますが、
rwxとかの文字列が謎ですね。
このパーミッション記号の意味を見ていきましょう。

r: 読み取り可能(read)

w: 書き込み可能(write)

x: 実行可能(execute)

これらの記号が分かると、最初の暗号の意味が見えてきたんじゃないでしょうか?

rwx(オーナーが読み書き実行可能)

r-x(グループが読みと実行可能)

r-x(その他ユーザーが読みと実行可能)

補足で、w(書き込み可)の記号がある場合は、削除が可能です。

ls -ldでディレクトリを確認

以下の様に、lsコマンドに -ldオプションをつけることでディレクトリの権限を確認できます。

$ ls -ld 対象ディレクトリのパス

このコマンドを打つことで、ファイルの場合と同じく、

  • ファイルタイプ
  • ファイルモード

を確認できます。

drwxr-xr-x@ 37 rootwheel118454 00:59 /bin

dがファイルタイプでディレクトリ。
rwxr-xr-xが権限指します。

上記のパーミッション記号の意味がファイルの際とは異なります。
ここはしっかり抑えておきましょう。

r: 読み取り可能 ーーディレクトリ内のファイル一覧取得

w: 書き込み可能ーーディレクトリ内のファイル・ディレクトリの作成・削除

x: 実行可能ーーディレクトリをカレントディレクトリにする

上記に様に、ディレクトリの権限によってファイルの操作でできることが変わってきます。

故に、fileの権限で書き込みを不可にしていたとしても、該当ファイルを含むディレクトリが書き込み可能になっていると削除が可能になってしまいます。

権限を変更する

ファイルディレクトリの権限の確認方法は見たので、権限の変更方法の理解を深めていきましょう。

権限を変更するには、ファイルモードを変えられるchomdコマンドを使います。

chomdの使い方は以下の形になります。

$ chomd [u,g,o,a](誰に対して) [+,-,=](どうする) [r,w,x](何を) ファイル名

誰に対しては、どのユーザーに権限を与えるかどうかを指定します。

uがオーナー
gがグループ
oがその他ユーザー
aがugo全て

次に権限を与えるかのか、無くす、等しくするのかを選択します。

+が権限追加
-が権限禁止
=が指定した権限と等しくする

そして最後に、何の権限を与えるか記述します。

rが読み取り
wが書き込み
xが実行

具体例を確認して終わりにしましょう。

$ chomd o+w file.text

と言うコマンドを打つと、 その他ユーザーにfile.textの書き込みの権限を与える形になります。