フォルダの下のすべてのアイテムにsamba_share_tを適用する方法

フォルダの下のすべてのアイテムにsamba_share_tを適用する方法

/data新しいLinux RHEL 7.7サーバーに5TBのデータをインストールしました。

私はselinuxを試行として使用しており、/dataSambaを共有しましたが、ほとんどうまくいきます。しかし、いくつかのフォルダに深く入ると、/data/アクセスは拒否されます。その特定のサブフォルダで操作を実行すると、chcon -t samba_share_tSambaはそのサブフォルダに移動します。もう少し深く入ってみると同じ問題です。

/data/私のフォルダの下にあるすべてのアイテムを正しく作成し、samba_share_tSambaでのみ機能するようにするにはどうすればよいですか?

selinuxに疲れました。

答え1

Sambaでのみ使用している場合は、/dataコンテキストマウントオプションを使用してファイルコンテキストをすべてのファイルsamba_share_tに設定できます/datacontext="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

関連情報