Unixでは、ずっと前に、 chmod
について学びました。 :Unixでパーミッションを設定する従来の方法(およびsetuid、setgidを使用してプログラムが特権を取得できるようにする方法)。
最近、GNU / Linuxでいくつかの新しいコマンドを発見しました:
-
setfacl
従来のugo:rwx
を拡張します ビットとt
chmod
のビット 。 -
setcap
ug: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
ファイルがディレクトリであるか、一部のユーザーに実行ビットがすでに設定されている場合にのみ、実行/検索します -
s
setuidまたはsetgid(指定されたreference
に応じて) ) -
t
制限付き削除フラグまたはスティッキービット
または、
mode
ugo
の文字の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
削除不可 -
A
atime
はありません 更新 -
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
、users
param
で識別される指定ユーザーの権限 、デフォルトはファイル所有者uid
省略した場合 -
g
、group
param
で識別される名前付きグループの権限 、デフォルトで所有グループuid
省略した場合 -
m
、mask
有効な権利マスク -
o
、other
他の人の許可パーマ
rwxX
の文字の組み合わせです 、権限に対応します: -
r
読む -
w
書く -
x
実行 -
X
ファイルがディレクトリであるか、一部のユーザーの実行権限をすでに持っている場合にのみ実行しますまたは、
perms
8進数の場合があります(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を追加する機能です。
現在作業中ですので、お話できません。私はそれらを使用していません。