如何在 / 上启用完全权限文件浏览?

如何在 / 上启用完全权限文件浏览?

现在,我知道 ServerFault 上有很多有关 samba 的问题(大约 1400 个),我至少浏览了其中的一半,但无法使用任何答案来解决我的问题。

我们正在一台新的空白机器上安装 CentOS 6.2 - 全新安装;它将作为网络服务器运行来托管 Asterisk。

我想配置机器,以便从我的 Windows 工作站对根目录(我的意思是“/”根目录)拥有完全的管理访问权限。

这样我就可以使用自己舒适的机器(和 Notepad++)来编辑所有配置文件。换句话说,我应该能够\\mylinux\etc\samba\在 Windows 资源管理器中打开,然后拥有smb.conf使用 Windows 文本编辑器进行编辑的完全权限。

我在 CentOS 4 上可以很好地使用它,但在 CentOS 6.2 上却无法使用它。在较旧的操作系统版本中,所有东西都有 GUI,但现在我需要学习和使用 CLI 来完成所有事情。我仍然使用 GUI 来做一些我还没有学会如何从 CLI 中做的事情,所以我仍然会在这里的笔记中引用 GUI。

现在您知道了我的问题和目标,以下是一些详细信息:

  • smb正在运行、安装并设置为运行级别 35。
  • nmb正在运行并设置为运行级别 35。
  • 防火墙在 eth0 上完全打开并且network处于开启状态(我运行了此命令iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT:)
  • 我已将我自己在Linux机器上的用户帐户添加到该root组中。
  • 该用户帐户具有与我的 Windows 计算机相同的用户名和密码。
  • samba 配置为知道我的 Windows 工作组的名称
  • 我可以很顺利地 ping\\mylinux\\mywindows,反之亦然。
  • 如果我打开Network\\mylinux我会收到一条错误消息:“无法从服务器检索共享列表”,我发布了有关这里
  • 如果我做一个net view来自,那么它根本\\mywindows看不到。\\mylinux
  • samba 配置为共享根驱动器:

[root]
comment = Root Directory
path = /
valid users = @root all root group
invalid users = None
writeable = yes
browseable = yes
  • 另外,在 中/etc/samba/smbusers.conf我也做了记录:

    myuser = myuser

现在,您可能会认为我此时可以访问 Linux 共享。但是,当我从 Windows 计算机尝试映射路径时\\mylinux\root\,我收到一条错误消息,提示目标不存在。在我的旧 Linux 计算机上,我甚至可以浏览\\oldlinux\并获取共享列表。我似乎无法复制该功能!

[编辑]

好的,我完全禁用了防火墙,现在我可以随时随地浏览文件了。现在剩下的就是编辑 smb.conf 等文件的权限。换句话说,我用来浏览文件的用户帐户(属于该组)root也需要root权限。我该如何获得它?

答案1

Samba 将您的访问权限映射到服务器上的 Unix 用户帐户,并强制执行该用户的正常权限。因此,这相当于授予 Unix 用户对这些文件的写访问权限。您要么需要实际成为用户root(即充当具有写权限的文件所有者),要么需要属于具有文件组写权限的组。后者(略微)更可取,因此将自己添加到该root组并更改文件权限以允许组写。(我假设您知道这样做的安全隐患。)

答案2

终于搞定了!这需要做两件事: - 禁用 selinux - 取消注释 smb.conf 中的以下行

username map = /etc/samba/smbusers

然后,在 smbusers.conf 中,我添加了root = myuser 运行命令:

smbpasswd -a myuser
smbpasswd -e myuser
service smb restart

现在我可以从我的 Windows 计算机连接到机器,浏览根目录中的文件,并使用我的 Windows 计算机上我最喜欢的文本编辑器编辑它们。

只是想给大家提个醒——我确实明白,我所执行的程序存在安全风险,但是我位于安全的防火墙路由器后面,并且只会在 LAN 内以这种方式管理机器。

对于CentOS7

在 CentOS 7 中,它默认拒绝 root 访问的 ntlm 身份验证 - 这意味着您无法使用 root 帐户连接 - 除非您将其添加到[global]smb.conf 的部分:

ntlm auth = yes

如果你要使用 smbusers 文件,请将其添加到 smb.conf 中的相同全局部分:

username map = /etc/samba/smbusers

然后您可以创建该文件并添加以下内容:

root = myusername

相关内容