我有一个朋友在一家 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.conf
有passdb backend = tdbsam
,那么对于任何用户,他们都需要设置一个 samba 密码,通过smbpasswd -a <username>
该密码,您可以通过查看他们的帐户名显示在pdbedit -L
.当 samba 密码与 windowsNT 密码(不是 Windows PIN)匹配时,samba 服务器将授予访问权限。