Unixでは、ずっと前に、 chmodについて学びました。 :Unixでパーミッションを設定する従来の方法(およびsetuid、setgidを使用してプログラムが特権を取得できるようにする方法)。
最近、GNU / Linuxでいくつかの新しいコマンドを発見しました:
-
setfacl従来のugo:rwxを拡張します ビットとtchmodのビット 。 -
setcapug:sよりも多くのフィングレイン制御を提供しますchmodのビット 。 -
chattrファイルの他のいくつかのコントロール(少しの組み合わせ)を許可します。
他にありますか?
承認された回答:
chmod :ファイルモードビットを変更する
使用法(8進数モード):
chmod <octal-mode> files...
使用法(シンボリックモード):
chmod <references><operator><modes> files..
参照 ugoaの文字の組み合わせです 、ファイルへのユーザーのアクセスを指定します 変更されます:
-
uそれを所有するユーザー -
gファイル内の他のユーザー のグループ -
oファイルのグループに属していない他のユーザー -
aすべてのユーザー省略した場合、デフォルトですべてのユーザーに設定されますが、
umaskで許可されている権限のみが適用されます 変更されます。オペレーター+-=の文字の1つです :-
+指定されたファイルモードビットを各fileの既存のファイルモードビットに追加します -
-指定されたファイルモードビットを各fileの既存のファイルモードビットに削除します -
=setuidを除いて、指定されたビットを追加し、指定されていないビットを削除します およびsetgid明示的に指定されていない限り、ディレクトリに設定されるビット。
モードrwxXstの文字の組み合わせで構成されます 、変更する許可ビットを指定します:-
r読む -
w書く -
x実行(またはディレクトリの検索) -
Xファイルがディレクトリであるか、一部のユーザーに実行ビットがすでに設定されている場合にのみ、実行/検索します -
ssetuidまたはsetgid(指定されたreferenceに応じて) ) -
t制限付き削除フラグまたはスティッキービット
または、
modeugoの文字の1つで構成できます 、この場合、モードは所有者に現在付与されている権限に対応します(u)、ファイルのメンバー のグループ(g)または上記のいずれのカテゴリにも属さないユーザーの権限(o。 -
chmodのさまざまなビット 説明:
- アクセス制御(
setfaclも参照) )-
rwx—読み取り(r)、書き込み(w)、および実行/クロス(x)のアクセス許可。- 読み取り(r)は、ファイルを読み取ることができるかどうか、またはディレクトリを一覧表示できるかどうかに影響します。
- 書き込み(w)は、ファイルへの書き込みが可能かどうか、またはディレクトリの編集(ファイルの追加、削除、名前変更)が可能かどうかに影響します。
- 実行(x)は、ファイルを実行できるかどうかに影響します。スクリプトに使用します(
#!を参照)。 )、およびその他の実行可能ファイル。 - クロス(x)は、ディレクトリをトラバースできるかどうかに影響します。
-
sおよびt—ディレクトリのスティッキービット(t)、およびsetgid(s)- スティッキービットはディレクトリにのみ影響します。ファイルの所有者とルート以外のユーザーがディレクトリ内のファイルを削除できないようにします。
- ディレクトリのsetgidビットにより、新しいファイルとディレクトリでグループが同じグループに設定され、新しいディレクトリでsetgidビットが設定されます(setfaclのデフォルトも参照してください)。
-
s— setuid、setgid、実行可能ファイル。- 何をしているのかわからない場合、これはセキュリティに悪影響を与える可能性があります。
- 実行可能ファイルを実行するときに、これらのビットの1つが設定されている場合、実行可能ファイルの有効なユーザー/グループはファイルの有効なユーザー/グループになります。したがって、プログラムはそのユーザーとして実行されます。
setcapを参照してください これを行うためのより現代的な方法について。
-
chown chgrp :
chattr :ファイル属性の変更
使用法:
chattr <operator><attribute> files...
オペレーター +-=の文字の1つです :
* + 選択した属性を既存の属性に追加します ファイルの *-コード> 選択した属性を削除します * = ファイルが持つ現在の属性セットを指定された属性で上書きします 。
属性 acdeijstuADSTの文字の組み合わせです 、属性に対応します:
-
a追加のみ -
c圧縮 -
dダンプなし -
eエクステントフォーマット -
i不変 -
jデータジャーナル -
s安全な削除 -
tテールマージなし -
u削除不可 -
Aatimeはありません 更新 -
D同期ディレクトリ更新 -
S同期更新 -
Tディレクトリ階層の最上位
setfattr :拡張ファイル属性を変更する
使用法(属性の設定):
setfattr -n <name> -v <value> files...
使用法(削除):
setfattr -x <name> files...
名前コード> 設定または削除する拡張属性の名前です
値 拡張属性の新しい値です
setfacl :ファイルアクセス制御リストの変更
使用法:
setfacl <option> [default:][<target>:][<param>][:<perms>] files...
オプション 次のいずれかを含める必要があります:
-
-set以前のACLを置き換えて、ファイルまたはディレクトリのACLを設定します -
-m|-変更ファイルまたはディレクトリのACLを変更する -
-x|-削除ファイルまたはディレクトリのACLエントリを削除するターゲットugmoの文字の1つです (または以下に示す長い形式): -
u、usersparamで識別される指定ユーザーの権限 、デフォルトはファイル所有者uid省略した場合 -
g、groupparamで識別される名前付きグループの権限 、デフォルトで所有グループuid省略した場合 -
m、mask有効な権利マスク -
o、other他の人の許可パーマrwxXの文字の組み合わせです 、権限に対応します: -
r読む -
w書く -
x実行 -
Xファイルがディレクトリであるか、一部のユーザーの実行権限をすでに持っている場合にのみ実行しますまたは、
perms8進数の場合があります(–7)権限のセットを示します。
setcap :ファイル機能の変更
使用法:
setcap <capability-clause> file
機能句 機能名のコンマ区切りのリストと、それに続く演算子とフラグのペアのリストで構成されます。
使用可能な演算子は=です。 、 + および- 。使用可能なフラグはeです。 、 i およびp 有効に対応します 、継承可能 および許可 機能セット。
= オペレーターは、指定された機能セットを上げ、他の機能セットをリセットします。 =に関連してフラグが指定されていない場合 オペレーターはすべての機能セットがリセットされます。 + および- オペレーターは、指定された1つ以上の機能セットをそれぞれ上げたり下げたりします。
chcon :ファイルSELinuxセキュリティコンテキストを変更する
使用法:
chcon [-u <user>] [-r <role>] [-t <type>] files...
ユーザー user_uなどのSELinuxユーザーです 、 system_u またはroot 。
役割 SELinuxの役割です(常に object_r ファイルの場合)
タイプ SELinuxサブジェクトタイプです
chsmack :SMACK拡張属性を変更する
使用法:
chsmack -a <value> file
値 SMACK64に設定するSMACKラベルです 拡張ファイル属性
setrichacl:リッチアクセス制御リストを変更します。
richaclsは、より高度なACLを追加する機能です。
現在作業中ですので、お話できません。私はそれらを使用していません。