Linux中的用户组应该是什么才能访问samba?

Linux中的用户组应该是什么才能访问samba?

我有一个朋友在一家 IT 人员去世的公司工作,我正在努力帮助他们,直到他们可以雇用其他人。它是一个与 Linux 服务器联网的工作组。他们最近雇用了一名需要访问其文件共享的新员工。我从未使用过Linux,但尝试创建用户但他无法访问文件共享。

当他尝试访问服务器 \server1 时,他当然无法连接到它。

这是我目前所处的位置。

我在他们的服务器上创建了一个名为 chris 的用户,并将他添加到我认为是的组中。

用户 cary 设置正确并且可以访问文件共享,因此我尝试复制他的访问权限。

以下是 id chris 和 id cary 以及我认为可能存在的问题。

uid=1010(cary) gid=100(users) groups=100(users),101(cad),1005(samba)
uid=1035(chris) gid=1035(chris) groups=1035(chris),100(users),101(cad),1005(samba)

我看到 chris 的第一个 gid 是 1035,所以我假设它需要更改为 100。然后他的 groups=1035(chris) 根本不应该存在?

任何帮助,将不胜感激!谢谢!

答案1

我建议像这样更改用户 chris 的主要组

usermod -g users chris

这会将主要组chris从更改chris(1035)users(100)

由于我不知道 samba 是如何配置的,这就是我所能建议的,您可以随时切换回原始配置,如下所示。

usermod -g chris chris

还要确保在组中进行任何更改后用户注销并重新登录。

答案2

Linux中的用户组应该是什么才能访问samba?

  • 它应该是在管理方面对保护 linux [samba] 服务器上的文件有意义的组,并且它将处于 Linux 中设置的文件夹和文件权限的简单上下文中,就像drwxrwxrwx当您执行ls -l
  • 一旦从客户端到服务器成功进行了 samba 身份验证,那么 linux 文件系统权限就生效了,就是这样,所以根据需要将组权限应用于 Linux 中的文件/文件夹,但用户需要有权访问它们才能查看它们 - 这无论您是在终端直接登录 Linux 还是通过 Samba 连接登录,都没有什么不同
  • 你没有提到Linux的版本,但是如果SELinux受到影响,则samba_share_t需要将 selinux 标签应用于 samba 服务器上共享的文件夹,否则将能够首先连接到 samba 服务器,但随后您将被拒绝访问该文件夹
    • 在提示符下执行操作setenforce 0并查看 samba 访问是否立即起作用,这是诊断问题是否由 selinux 引起的简单方法;如果是,则setenforce 1重新打开;先做sestatus看看是什么。
    • setsebool -P samba_enable_home_dirs on 请参阅/etc/samba/smb.conf.example解释。

如果用户最初无法从 Windows PC(客户端)连接到 samba [linux] 服务器,例如通过执行\\192.168.1.1 (*或任何 samba 服务器 IP 地址),则检查以确保 Windows 用户帐户名称与 linux 匹配中列出的帐户名/etc/passwd,然后如果/etc/samba/smb.confpassdb backend = tdbsam,那么对于任何用户,他们都需要设置一个 samba 密码,通过smbpasswd -a <username>该密码,您可以通过查看他们的帐户名显示在pdbedit -L.当 samba 密码与 windowsNT 密码(不是 Windows PIN)匹配时,samba 服务器将授予访问权限。

相关内容