我正在尝试为只有我可以访问的计算机设置 samba 共享。我需要从我的 Windows 机器完全访问这台计算机。我是唯一使用这两台机器的人,并且我需要对共享的完全读/写访问权限。
到目前为止我已经尝试过了,我可以从我的 Windows 机器上看到文件夹/文件,但我无法编辑任何文件。
我的代码将在 Linux 机器上,我将使用我的 Windows 笔记本电脑在其上编码。
- 我的 Windows 用户名就是我的电子邮件,我们就这样称呼它吧[电子邮件受保护]
- 没有工作组(它只是 WORKGROUP)。
- 我的linux安装用户是“专家”(讽刺的是,我知道)
- 我正在使用 Debian 9(延伸版)。今天刚从 debian-9.4.0-amd64-netinst.iso 安装。用过KDE。
这是我的 smb.conf(注释已删除,打印部分已删除)
[global]
; wins server = w.x.y.z
; interfaces = 127.0.0.0/8 eth0
; bind interfaces only = yes
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
########## Domains ###########
; logon path = \\%N\profiles\%U
; logon drive = H:
; logon script = logon.cmd
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
; add group script = /usr/sbin/addgroup --force-badname %g
############ Misc ############
; include = /home/samba/etc/smb.conf.%m
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; template shell = /bin/bash
; usershare max shares = 100
usershare allow guests = yes
#======================= Share Definitions =======================
[homes]
comment = Home Directories
browseable = no
read only = yes
create mask = 0700
directory mask = 0700
valid users = %S
[Share]
comment = Full Access Share
path = /home/expert/Projects/expert
browseable = yes
writable = yes
public = yes
guest ok = yes
read only = no
create mask = 0777
directory mask = 0777
write list = 0777
valid users = nobody, admin, expert, anonymous, [email protected]
当我ls -ld .
对我想要完全访问的文件夹执行操作时,我得到:
drwxrwxrwx 3 expert expert 4096 <date time> .
我认为通过将创建、目录掩码和写入列表指定为 0777,我可以完全控制 Samba。
最后一行(有效用户)只是我在黑暗中的一枪(不起作用)
答案1
有几件事可能有助于回答您的问题。
你是如何安装桑巴的?来自回购?它是什么版本?samba --version
您使用什么 Windows?可以从linux连接吗?
您可能需要一次解决几个问题。使用最少的配置条目设置 samba。请注意您的 samba 版本的默认值。在工作安装的基础上构建。
连接到 SMB 共享时,Windows 可能会发送您的登录用户名、来宾、无用户名或其他用户名。
确定哪些信息从 Windows 传递到 Linux samba。
smbclient //host/share -U username
在深入研究 Windows 发送的内容之前,您可以从 Linux 命令行检查您的 samba 用户设置。
这些用户是否在密码后端?
valid users = nobody, admin, expert, anonymous, [email protected]
passdb backend = tdbsam
更改后不要忘记重新启动 samba 服务器位smb.conf
...
sudo service smbd restart
sudo service nmbd restart
可能想要从一个广泛开放的共享设置开始,然后在此基础上进行构建。
[global]
server string = This is: %h. Welcome.
workgroup = workgroup
netbios name = hostname
encrypt passwords = yes
## permissions
server role = standalone
security = user
null passwords = yes
map to guest = Bad Password
guest ok = yes
guest account = nobody
# debug Adjust for trouble shooting
log level = 2
# the IPC$ connection that lists the shares is done as guest and so you must have a valid guest account.
[IPC$]
path = /tmp
[lookie]
comment = open share on %h
path = /samba/share/lookie
# all files copied to this share have full r/w to all
create mask = 0777
delete readonly = yes
## This user must have read/write to the share directory
## May require R/W for the full path up to the share. Check.
force user = expert
read only = No
browseable = yes