web-dev-qa-db-ja.com

マウントされたドライブをCentOS7のsambaと共有する

CentOS 7、sambaの問題:USBドライブをEXT4ファイルシステムと共有しようとすると0ファイル/フォルダー。

Samba構成ファイル:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = 271-filesharing
security = user
map to guest = bad user
dns proxy = no

#============================ Share Definitions ============================== 
[Administrator]
path = /mnt/ELEMENTERY-1TB/
browsable =yes
writable = yes
public = no
valid users = RVS

SambaにRVSというユーザーがいます。ユーザーのホームディレクトリへのパスを使用すると、macbookproを使用してsamba共有にアクセスできます。

Sudo chown RVS:RVS -R /mnt/ELEMENTERY-1TBを実行しました。ドライブの権限は次のとおりです。

[RVS@271 mnt]$ ls -al
total 4
drwxr-xr-x.  3 RVS  RVS    28 Sep 12 00:26 .
dr-xr-xr-x. 17 root root  224 Sep  9 11:27 ..
drwxrwxrwx.  4 RVS  RVS  4096 Sep 12 00:26 ELEMENTERY-1TB

また、このドライブをRVSユーザーとしてSudo mount /deb/sdb /mnt/ELEMENTERY-1TBでマウントしました。

構成/許可でスキップしたものはありますか?

2
Rahul Sharma

CentOSはデフォルトでSELinuxを有効にします。これにより、システムにセキュリティ制限が追加されます。デフォルトポリシーは、主に、制限されたソフトウェアの標準/デフォルト構成を対象としています。アクセスが拒否されると、通常、ログエントリが/var/log/audit/audit.logの監査ログに生成されます。

リムーバブルメディアを使用する場合は、SELinux context option を使用してデバイスをマウントすることを検討する必要があります。これにより、システムのSELinuxポリシーを変更したり、リムーバブルデバイスでファイルシステムのラベルを変更したりする必要がなくなります。マウントポイントをsambaで使用するだけにする場合は、samba_share_tを使用できます。 user_home_tタイプを使用/ラベル付けすると、ファイルはユーザーのホームディレクトリにあるかのように扱われます。

mount -t ext4 /dev/sdb /mnt/ELEMENTERY-1TB \
      -o context="system_u:object_r:samba_share_t:s0"

または/etc/fstab

UUID=<...> /mnt/ELEMENTERY-1TB/ ext4 defaults,errors=remount-ro,context="system_u:object_r:samba_share_t:s0" 0 1

それでもSELinuxに問題がある場合は、 audit2why を使用して、アクセスが拒否された理由を確認できます。また、SELinux boolean が存在してアクセスを許可している場合もあります。 SELinuxポリシーを変更する必要がある場合は、 audit2allow を使用して、アクセスを許可するポリシーモジュールを生成できます。

有効にすると、2つのブール値samba_export_all_rosamba_export_all_rwがあり、sambaが任意のファイルにアクセス(および共有)できるようになります。この場合、これによりSambaは必要以上のアクセスを許可されるため、マウントオプションを構成できるため、この状況ではを使用しないでください簡単に。

2
sebasth