在 CentOS7 上与 samba 共享已安装的驱动器

在 CentOS7 上与 samba 共享已安装的驱动器

CentOS 7,samba 问题:尝试与 EXT4 文件系统共享 USB 驱动器时出现 0 个文件/文件夹。

桑巴配置文件:

[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 的用户。当我使用用户主目录的路径时,我可以使用我的 macbook pro 访问 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.

我在配置/权限中跳过了某些内容吗?

答案1

CentOS 默认启用 SELinux,这对系统增加了额外的安全限制。默认策略主要涵盖受限软件的典型/默认配置。当访问被拒绝时,通常会在 中的审核日志中生成一条日志条目/var/log/audit/audit.log

对于可移动介质,您应该考虑使用 SELinux 安装设备上下文选项。这样您就可以避免修改系统的 SELinux 策略以及在可移动设备上重新标记文件系统的需要。samba_share_t如果您只想让挂载点与 samba 一起使用,则可以使用。如果您使用 /labeluser_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布尔值存在以允许访问。如果您需要更改 SELinux 策略,您可以使用audit2allow生成允许访问的策略模块。

还有两个布尔值samba_export_all_rosamba_export_all_rw启用后允许 samba 访问(和共享)任何文件。在这种情况下,这允许 samba 比所需的访问权限多得多,因此不应该用于这个情况因为安装选项可以轻松配置。

相关内容