1.12. 配置共享以允许不进行身份验证的访问

在某些情况下,您想要共享一个用户无需身份验证即可连接到的目录。若要对此进行配置,请对共享启用guest访问。

警告

不需要身份验证的共享可能会造成安全隐患。

1.12.1. 启用对共享的客户机访问

如果对共享启用了 guest 访问,Samba 会将guest连接映射到guest account参数中设置的操作系统帐户。如果至少满足以下条件之一,Guest用户就可以访问此共享上的文件:

  • 该帐户在文件系统 ACL 中列出
  • other 用户的 POSIX 权限允许这样做

例 1.6. 客户端共享权限

如果您将 Samba 配置为将guest帐户映射到 nobody (这是默认值),那么以下示例中的 ACL:

  • 允许 guest 用户读 file1.txt
  • 允许 guest 用户读和修改 file2.txt
  • 防止 guest 用户读或修改 file3.txt
-rw-r--r--. 1 root       root      1024 1. Sep 10:00 file1.txt
-rw-r-----. 1 nobody     root      1024 1. Sep 10:00 file2.txt
-rw-r-----. 1 root       root      1024 1. Sep 10:00 file3.txt

流程

  1. 编辑 /etc/samba/smb.conf 文件:

    1. 如果这是您在这个服务器上设置的第一个客户机共享:

      1. [global] 部分中设置map to guest = Bad User

        [global]
                ...
                map to guest = Bad User

        使用这个设置,Samba 将拒绝使用错误密码的登录尝试,除非用户名不存在。如果指定的用户名不存在,并且对共享启用了 guest 访问,那么 Samba 会将连接视为guest登录。

      2. 默认情况下,Samba 将 guest 帐户映射到 Red Hat Enterprise Linux 上的 nobody 帐户。另外,您也可以设置另外一个帐户。例如:

        [global]
                ...
                guest account = user_name

        此参数中设置的帐户必须在 Samba 服务器中本地存在。出于安全考虑,红帽建议使用没有分配有效 shell 的帐户。

    2. [example] 共享部分中添加 guest ok = yes 设置:

      [example]
              ...
              guest ok = yes
  2. 验证/etc/samba/smb.conf文件:

    # testparm
  3. 重新载入 Samba 配置:

    # smbcontrol all reload-config