私はずっと前にUnixで次のことを学びましたchmod
。 Unixで権限を設定する従来の方法(そしてプログラムが権限を取得できるようにする方法はsetuidとsetgidを使用することです)。
私は最近GNU / Linuxでいくつかの新しいコマンドを見つけました:
setfacl
既存のビットugo:rwx
合計を拡張します。t
chmod
setcap
ug:s
よりきめ細かい権限制御を提供するよりも優れていますchmod
。chattr
ファイルの追加制御を許可します(少しハイブリッド)。
他の人はいますか?
ベストアンサー1
chmod
:ファイルモードビット変更
使い方(8進モード):
chmodオクタルモード ドキュメント...
使い方(シンボルモード):
chmod [引用する][[オペレーター][モデル]]ドキュメント...
references
ugoa
どのユーザーがアクセスできるかを指定する文字の組み合わせです。files
修正されます:
u
それを所有しているユーザーg
ファイルグループの他のユーザーo
ファイルグループにない他のユーザーa
すべてのユーザー
省略すると、デフォルトはすべてのユーザーに設定されますが、許可された権限のみを変更しますumask
。
operator
次のキャラクターの一つです+-=
。
+
指定されたファイルモードビットを各ファイルの既存のファイルモードビットに追加します。file
-
各ファイルの既存のファイルモードビットから指定されたファイルモードビットを削除します。file
=
明示的に指定しない限り、ディレクトリに設定されたsetuid
合計ビットを除いて指定されたビットを追加し、指定されていないビットを削除します。setgid
mode
rwxXst
変更する権限ビットを指定する文字の組み合わせで構成されています。
r
読むw
書くx
(小文字X
)実行(またはディレクトリ検索)X
(大文字)ファイルがディレクトリの場合、または特定のユーザークラスに対して実行ビットが設定されている場合にのみ実行/トラバースします。s
setuidまたはsetgid(指定された項目によって異なります)references
)t
削除フラグまたは固定ビット制限
または、mode
文字のいずれかで構成できます。ugo
この場合、パターンは現在の所有者(u
)、ファイルグループのメンバー(g
)、または上記のカテゴリ(o
)のユーザーに付与されている権限に対応します。
各部分の説明chmod
:
- アクセス制御(参照
setfacl
)rwx
— 読み取り(r
)、書き込み(w
)、実行/トラバース(x
)権限- read(r)は、ファイルを読み取ることができるのか、ディレクトリを一覧表示できるのかに影響します。
- 書き込み(w)は、ファイルに書き込むことができるのか、ディレクトリを変更できるのか(ファイルの追加、削除、名前変更)に影響します。
- Execute(x)は、スクリプトや他の実行可能ファイルに対してファイルを実行できるかどうかに影響します。
- 「検索」とも呼ばれるTraversal(x)は、ディレクトリを参照できるかどうか、つまりプロセスがディレクトリのエントリを介してファイルシステムオブジェクトにアクセスできるか(またはアクセスしようとするか)に影響します。
s
と — ディレクトリのt
固定ビット(t
)と setgid()s
- 固定ビットはディレクトリにのみ影響します。ファイル所有者とルートを除くすべての人は、ディレクトリ内のファイルを削除することはできません。
- ディレクトリのsetgidビットは、新しいファイルとディレクトリを同じグループにグループ化し、新しいディレクトリにsetgidビットが設定されるようにします(のデフォルト値を参照
setfacl
)。
s
— 実行可能ファイルの setuid, setgid- 現在行っていることがわからない場合は、セキュリティに重大な影響を与える可能性があります。
- 実行可能ファイルの実行時にこれらのビットのいずれかが設定されると、実行可能ファイルのユーザー/グループがプロセスの有効なユーザー/グループになります。これによりプログラムが実行されます。〜のようにそのユーザー。
setcap
これを行うためのより現代的な方法を確認してください。
chown
chgrp
:
chattr
: ファイル属性の変更
使用法:
シャテルオペレーター[プロパティ]ドキュメント...
operator
次のキャラクターの一つです+-=
。
+
選択した属性を既存の属性に追加attributes
~のfiles
-
選択したものを消去するattributes
=
ファイルの現在の属性セットを指定された値で上書きします。attributes
。
attribute
acdeijmstuxACDFPST
属性に対応する文字の組み合わせです。
a
追加のみc
圧縮d
ダンプなしe
範囲形式i
不変j
データログm
圧縮しないでくださいs
安全削除t
尾マージなしu
削除できません。x
ファイルに直接アクセスA
atime
更新なしC
文章を書くとコピーはありません。D
ディレクトリ更新の同期F
大文字と小文字を区別しないディレクトリの検索P
プロジェクト階層S
同期の更新T
ディレクトリ階層の最上位
これらの属性の多くは使用が制限されています。たとえば、その多くはスーパーユーザー(ルートなど)または他の権限を持つプロセスによってのみ設定または消去できます。
setfattr
:変化拡張ファイル属性
使い方(プロパティ設定):
setfattr-n名前-V値 ドキュメント...
使い方(削除):
setfatr-x名前 ドキュメント...
name
設定または削除する拡張属性の名前。
value
拡張属性の新しい値。
setfacl
:ファイルアクセス制御リストの変更
使用法:
設定値オプション[基本:][ターゲット:][パラメータ][:パーマ]ドキュメント...
option
次のいずれかを含める必要があります。
--set
ファイルまたはディレクトリのACLを設定し、古いACLを置き換えます。-m
|--modify
ファイルまたはディレクトリのACLの変更-x
|--remove
ファイルまたはディレクトリのACLエントリの削除
target
文字の1つですugmo
(または以下のように長い形式)。
u
、users
指定されたユーザーの権限は、次によって決定されます。param
、 省略した場合、デフォルトはファイル所有者UIDです。g
、group
指定されたグループの権限は、次によって決定されます。param
、 省略した場合、デフォルトは自分が属するグループのGIDです。m
、mask
有効権限マスクo
、other
他人の権限
perms
rwxX
権限に対応する文字の組み合わせです。
r
読むw
書くx
実装するX
ファイルがディレクトリである場合、またはすでに一部のユーザーに対する実行権限がある場合にのみ実行
または、perms
権限セットを表す 8 進数 (-) です0
。7
setcap
:変化ファイル機能
使用法:
セットキャップ容量規定 文書
ㅏcapability-clause
カンマで区切られたリストで構成されます。能力名前の後には演算子フラグペアのリストが続きます。
使用可能な演算子は=
、+
およびです-
。使用可能なフラグはおよびでe
、これは次のとおりです。i
p
効果的な、継承可能そして許可する能力値設定。
オペレータは、=
指定された機能セットを発展させ、他の機能セットをリセットします。演算子にフラグが設定されていない場合は、=
すべての機能セットがリセットされます。+
および演算子は、-
それぞれ1つ以上の指定された機能セットを増減します。
chcon
: ファイル変更SELinuxセキュリティコンテキスト
使用法:
chcon[-uユーザー][-r役割][-tタイプ]ドキュメント...
user
またはなどのSELinuxユーザーである必要がありますuser_u
。system_u
root
role
SELinuxの役割です(常にobject_r
ファイル用)。
type
SELinuxのトピックタイプですか?
chsmack
:変化スマーカー拡張属性
SMACKは単純化された必須アクセス制御カーネルです。
使用法:
chsmack -a値 文書
value
SMACK64
拡張ファイル属性にSMACKタグが設定されていますか?
セットリチャール:さまざまなアクセス制御リストの変更
リチャードこれはより高度なACLを追加する機能です。
現在進行中の作業なので、これについて詳しくお伝えできません。私はそれらを使用しませんでした。
この質問も参照してください既存の「rwx」およびPOSIX ACLに加えて、高度なファイルシステムACLはありますか? そしてマニュアルページ