Linux - chmodコマンドを使用する方法

chmodは、ファイルやディレクトリのアクセス権などのモードを変更します。

コマンドは次のように書くことができます。

$ chmod [options] mode file1

権限の変更

chmodフォルダには、次のように4つのファイルがあります。一番左の9つの文字 rwxr-xr-xは、ファイルのアクセス権(モード)を意味します。 ls -lを使用すると、ファイルのアクセス権の状態を見ることができます。

chmod$ ls -l
total 16
-rwxrwxrwx 1 js js 6  310 16:02 file1.txt
-rw-r--r-- 1 js js 6  310 16:02 file2.txt
-rw-r--r-- 1 js js 6  310 16:02 file3.txt
-rw-r--r-- 1 js js 6  310 16:02 file4.txt

一般的に、ユーザーがファイルにアクセスする際User、Group、Otherの権限が必要アクセスが可能です。 この権限を示すことが rwxrwxrwxのような状態です。

上記の ls -l出力では、rwxrwxrwxは権限の状態を示します。 前から文字の3つの rwxはOwnerの権限、次いで文字の3つのrwxはGroupの権限は、その次の文字の3つ rwxはOtherの権限です。

そして権限の rはread、wはwrite、 xexecute(実行可能)を意味します。

ファイルに各モードごとに権限を別の設定にみましょう。

chmod$ chmod u=rwx,g=rx,o=r file1.txt

上記のコマンドで userにrwx(read、write、execute)、 groupにrx(read、write)、otherにr(read)アクセス権を file1.txtに付与しました。

ls -lに検証することで設定したとおり変更されたことを見ることができます。

chmod$ ls -l
total 16
-rwxr-xr-- 1 js js 6  310 16:02 file1.txt

上記のコマンド $ chmod u=rwx,g=rx,o=r file1.txtは次のように簡潔に使用することもできます。

chmod$ chmod 754  file1.txt
chmod$ ls -l
total 16
-rwxr-xr-- 1 js js 6  310 16:02 file1.txt

754u=rwx,g=rx,o=rを意味します。 7はuser、5はgroup、4はotherの権限です。 そして、各数値は、次の権限の組み合わせ(合計)です。

  • 4はreadをの
  • 2はwriteをの
  • 1は、executeをの
  • 0は何の権限もないことをの

だから7はread、write、execute(4 + 2 + 1)権限の組み合わせであり、6はread、write(4 + 2 + 0)の権限の組み合わせです。

サブフォルダ完全な権限の変更(Recursive)

フォルダ全体のアクセス権を変更して与えるに -Rオプションを使用します。 Recursiveにフォルダの下のサブフォルダにも適用されます。

$ chmod -R 755 chmod/

確認してみるのフォルダ内のすべてのファイルのアクセス権が 755に変更されたことを確認することができます。

$ ls -l chmod/
total 16
-rwxr-xr-x 1 js js 6  310 16:02 file1.txt
-rwxr-xr-x 1 js js 6  310 16:02 file2.txt
-rwxr-xr-x 1 js js 6  310 16:02 file3.txt
-rwxr-xr-x 1 js js 6  310 16:02 file4.txt

特定の権限の追加/削除

Userのexecute権限を除いてたいだけ u-xを使用します。 他の権限は、触れることなくuserのx権限のみを抜くには( - )を意味します。

$ ls -l
-rwxr-xr-x 1 js js 6  310 16:02 file1.txt

$ chmod u-x file1.txt

$ ls -l
-rw-r-xr-x 1 js js 6  310 16:02 file1.txt

逆に権限を付与するには、 u+xを入力します。他の権限は触れることなくuserのx権限のみを加えるには(+)を意味します。

$ ls -l
-rw-r-xr-x 1 js js 6  310 16:02 file1.txt

$ chmod u+x file1.txt

$ ls -l
-rwxr-xr-x 1 js js 6  310 16:02 file1.txt

group、otherもすべて同様に使用ください。そして、上では一つの権限のみを除去、追加したが、次のように複数の権限を抜いたり加えることができます。 たとえば、groupでreadとwriteを削除するには、 g-rwを使用します。

$ ls -l
-rwxr-xr-x 1 js js 6  310 16:02 file1.txt

$ chmod g-rx file1.txt

$ ls -l
-rwx---r-x 1 js js 6  310 16:02 file1.txt

すべてのタイプの権限を付与する

すべてのUser、Group、Otherの権限を一度に変更するには、 a=を使用します。 a=rwxは、すべてのグループにrwx権限を設定するようにという意味です。

$ chmod a=rwx file1.txt
$ ls -l
-rwxrwxrwx 1 js js 6  310 16:02 file1.txt
codechachaCopyright ©2019 codechacha