/data
新しいLinux RHEL 7.7サーバーに5TBのデータをインストールしました。
私はselinuxを試行として使用しており、/data
Sambaを共有しましたが、ほとんどうまくいきます。しかし、いくつかのフォルダに深く入ると、/data/
アクセスは拒否されます。その特定のサブフォルダで操作を実行すると、chcon -t samba_share_t
Sambaはそのサブフォルダに移動します。もう少し深く入ってみると同じ問題です。
/data/
私のフォルダの下にあるすべてのアイテムを正しく作成し、samba_share_t
Sambaでのみ機能するようにするにはどうすればよいですか?
selinuxに疲れました。
答え1
Sambaでのみ使用している場合は、/data
コンテキストマウントオプションを使用してファイルコンテキストをすべてのファイルsamba_share_t
に設定できます/data
。context="system_u:object_r:samba_share_t:s0"
fstabから。コンテキストオプションは、マウント時に既存のファイルラベルを上書きしますが、ディスクの内容は変更しません。コンテキストマウント時にファイルラベルを変更することはできません。すべてのファイルは同じラベルを持ちます。
インストールオプションがオプションでない場合は、ファイルコンテキストを設定する一般的な方法は、.semanage fcontext
を使用してsemanage fcontext -a -t samba_share_t '/data(/.*)?'
データベースにコンテキストを追加し、を使用して新しいファイルコンテキストを(再帰的に)適用することですrestorecon -r /data
。
(Sambaに加えて)データにアクセスする他のユーザー/サーバーがある場合は、いくつかのオプションがあります。
有効に
samba_export_all_ro
するsamba_export_all_rw
ブール値非常に広範な読み取り専用アクセスまたは読み取り/書き込みアクセスが可能です(Sambaが最初にファイルを読み取ることができると仮定すると、SELinuxルールは標準の権限確認後に適用されます)。 2 つのブール値のいずれかを有効にすると、セキュリティ ポリシーがより許容的に適用されます。上記のようにマウントオプションを使用し、他のプロセスが
samba_share_t
。その他実行中のプロセス許可モード(プロセス/サービスを再起動する必要があります)ログエントリを生成します。その後、使用audit2allow
必要なポリシーを策定します。ポリシーを挿入して他のポリシーをリセットしてください。実装するモデル。 AVCエラーがさらに発生した場合は、このプロセスを繰り返してカスタムポリシーを関連付けることができます。これは他の方法でも適用できます(Sambaは異なるコンテキストを持つファイルにアクセスすることを許可しますが、
/data
間違ったコンテキストを持つファイルと同じ問題に直面する可能性があります)。新しいファイルコンテキストと追加ドメインに必要なアクセス権を定義するカスタムポリシーを作成します。
答え2
だからこれが私がしたことです。私の考えで私の主な問題は、構文を誤って入力することであり、それが私が問題に遭遇した理由でした。
- LSI RAIDカードを介してサーバーに8つのディスクraid-5ボリュームがあります。XFS過去10年間、SLES 11.4に従ってインストールされました。
- オペレーティングシステムディスクを交換してこれでRHEL 7.8を実行し、selinuxを強制します。。
- RHEL 7でXFSファイルシステムをマウントしました。
/data
特に、次の構文が必要です。意味論
-
semanage fcontext -a -t samba_share_t "/data(/.*)?"
restorecon -vR /data
# to samba share out home directories, if in your smb.conf
setsebool -P samba_enable_home_dirs on
今人々はできるchcon -t samba_share_t /data/folder1/folder2/folder3
ただし、10年のデータと何百万ものファイル/フォルダがある場合、これはすぐに解決策になりません。迅速な診断ですselinux=強制特定のサブフォルダへのアクセスが拒否されました。chcon -t サンバ_共有_tこれにより、そのサブフォルダへのアクセスがすぐに許可されます。ソリューションを使用するときに正しい構文のようです。意味論的文脈そして"
その後con-vRの復元
5TBデータの場合はsemanage
完了するのに約30秒、約2分程度かかります。restorecon
気になるなら:
/etc/fstab` is this in RHEL 7.8
/dev/disk/by-uuid/e16528d8-ec26-4441-828a-d399b46e4a21 /data auto nosuid,nodev,nofail 0 0
# ------------------------------------------------------------------------
/etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = bsd
printcap name = /dev/null
load printers = no
disable spoolss = yes
# cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[data]
comment = data
inherit acls = Yes
read only = No
path = /data
directory mask = 770
create mask = 660
# ------------------------------------------------------------------------
/etc/selinux/config
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUX=enforcing
SELINUXTYPE=targeted