我有一台运行 Ubuntu 和 Samba 的 Linux 服务器。我在 Samba 中创建了两个共享,它们指向用户“cameron”拥有的目录。
当我尝试在 Windows 7 上连接这些共享时,它会连接并允许我查看文件,但它们是只读的。这是访客用户所需的操作,但不是经过身份验证的用户所需的操作。
我在 Windows 客户端上的用户是“Cameron”,并且密码与 Linux 用户“cameron”相同。
我认为我的 Windows 用户没有对 Linux 用户进行身份验证。我甚至创建了一个 users.map 文件来将用户 cameron (linux) 映射到 Cameron (windows),但仍然不起作用。
这是我的 Samba 配置文件(更新):
[global]
server string = %h server (Samba, Ubuntu)
map to guest = Bad User
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
username map = /etc/samba/users.map
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
os level = 65
preferred master = Yes
dns proxy = No
wins support = Yes
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
valid users = cameron
write list = cameron
[www]
path = /usr/local/apache2/htdocs
write list = @www-data
force group = www-data
guest ok = Yes
[cameron]
path = /home/cameron
write list = @www-data
force group = www-data
guest ok = Yes
答案1
- Samba 日志中是否有身份验证错误?
- 磁盘上的文件是否具有适当的权限?如果文件在磁盘上是只读的,则无论您告诉 samba 什么都没有关系。
附注:如果您在 Windows 和 Linux 中的用户名相同,则无需将用户添加到用户映射文件中。
答案2
我通过记录共享文件夹的属性解决了服务器上的问题。我的组为 admin,用户为 Bj。
因此,我在想要分享的部分配置文件中输入了以下内容:强制组 = admin 强制用户 = Bj
现在,我网络上的所有计算机都可以读取和写入该文件夹。
答案3
您还没有告诉 Samba 如何进行身份验证。如果这是您自己的一个小型服务器,您可以使用用户安全性。
将security = user
和添加encrypt passwords = yes
到全局部分,然后运行“smbpasswd cameron”来设置 Samba 的密码。密码不必与您的 unix 或 windows 密码匹配,但匹配您的 windows 密码会让事情变得更轻松。
然后重新启动 samba 并且您就能登录。
答案4
对我来说,有帮助的是使用命令设置与 Samba 相关的密码:
sudo smbpasswd -a username
其中“用户名”必须是来自 Linux 机器的登录名。然后在 Windows 机器上使用此登录名和此命令设置的密码,它就可以正常工作了。