chmod-ファイル権限の変更

2890 ワード

chmodはLinuxがファイル権限を変更するコマンドです
$chmod [-R]         

ここでの-Rは、サブディレクトリの下のすべてのファイルを同時に変更する再帰的な操作である. は数字または文字で表される
1、数字
Linuxのファイルが属するロールは、owner、group、otherの3つで、それぞれ独自のread、write、execute権限、つまり9つの基本権限を持っています.read、write、executeはそれぞれr、w、xで表され、その対応する数字は
r  = 4
w  = 2
x  = 1

数値を加算すると、得られた値は対応する権限を表します.
ownerロールを例にとると、ファイルtestがあると仮定します.sh,ownerはファイルに対してr,w,xの3つの権限を同時に持っているので、その権限はr+w+x=>4+2+1=7であり、ここでの7はownerというロールがファイルに対して持っている権限値と同じであり、groupロールがファイルに対してr,wの権限しか持っていないと仮定すると、その権限値はr+w=>4+2=6である.otherはw権限のみを有し、その権限値はx=>1である.
このとき,3つのキャラクタをつなぎ合わせて算出した権限値が,ファイルの権限である.すなわち[owner][group][other]=>[7][6][1]=761であり、ファイル権限chmodの構文を
$chmod 761 test.sh

ロールがファイルに権限を持たない場合、その役割に対応する権限値は0です.上記の例に基づいて、ファイルのotherロールの権限を除去します.つまり、otherロールに権限を与えません.otherロールが持つ権限値が0の場合、ファイル権限を変更するchmod構文は
$chmod 760 test.sh

2、文字
u、g、oでそれぞれロールowner、group、otherを表し、all(すなわち3つのロールを同時に表す)をaで表す.reead、write、executeは依然としてr、w、xで表され、このときchmodの文法は
$chmod u=rwx,g=rwx,o=rwx test.sh

に等しい
$chmod a=rwx test.sh

ownerユーザーがファイルtestに対して.shはr,w,x権限を有し,groupロールはr,w権限を有し,otherロールはr権限を有し,このときchmod構文は
$chmod u=rwx,g=rw,o=r test.sh

この時点でotherロールの権限を除去したい場合、すなわちotherロールに権限を与えない場合、コマンドは
$chmod u=rwx,g=rw test.sh

キャラクタの権限を個別に設定しやすいように、+-を使用して操作できます.+は権限を追加し、-は権限を除去するためにgroupロールにw権限を除去する必要があると仮定し、chmodの構文は
$chmod g-w test.sh

otherユーザーにr権限を追加
$chmod o+r test.sh

なお、aはすべてのロールを表し、キャラクタがデフォルトの場合、デフォルトはa、すなわち
$chmod a+x test.sh

に等しい
$chmod +x test.sh