先说目的:想要实现Samba共享Ubuntu上的一个目录,需要有两种用户权限——一个只读、一个可读写。
创建目录
mkdir -p /yourpath
chmod o+w /yourpath
/yourpath
是指需要共享的目录路径
创建用户
为了方便文件的权限管理 将两个用户都加到一个组里:
useradd smbuser -s /usr/sbin/nologin -g smbuser
useradd smbuseradmin -s /usr/sbin/nologin -g smbuser
修改文件权限
chown -R smbuser:smbuser /yourpath
chown -R 775 /yourpath
设置smb用户密码
smbpasswd -a smbuser
smbpasswd -a smbuseradmin
需要输入两遍密码,这个命令也可以用来修改密码
修改smb配置文件
vim /etc/samba/smb.conf
在最下面添加上如下配置:
[smbresource] # 资源名 这里叫什么 连接samba后显示的目录就叫什么
comment = smbuser Media File # 注释
path = /yourpath # 需要samba共享的目录
valid user = smbuser,smbuseradmin # 可以使用该资源的用户,多个用户用‘,’分隔
guest ok = no # 是否运行guest用户
read only = yes # 是否只读
write list = smbuseradmin # 有可写权限的用户列表,多个用户用‘,’分隔
browsable = yes # 是否能被浏览到,如果选了否 只能通过 ‘\\<ip>/资源名’访问,实测这样在有些环境会出问题,一般建议开启
create mask = 0755
directory mask =0755
:wq
保存退出
重启smb服务
sudo service smbd restart
访问
windows
下打开运行:win
+R
,输入\\<服务器ip>
,填写刚刚配置的用户名密码后就可以访问了。需要注意的是修改用户的话需要注销系统后才会生效。
Linux
下可以使用smbclient
:
smbclient [网络资源][密码][-EhLN][-B<IP地址>][-d<排错层级>][-i<范围>][-I<IP地址>][-l<记录文件>][-M<NetBIOS名称>][-n<NetBIOS名称>][-O<连接槽选项>][-p<TCP连接端口>][-R<名称解析顺序>][-s<目录>][-t<服务器字码>][-T<tar选项>][-U<用户名称>][-W<工作群组>]
使用用户组
smb服务允许使用用户组来管理:
[smbresource]
...
valid user = smbuser,@usergroup
write list = @admingroup
...
下面是关于用户组的一些操作
创建两个用户组
groupadd smb
groupadd smbadmin
额外的:
已有的用户添加组(-a是追加新组,不带-a是修改组):
usermod -a -G smb smbuser
usermod -a -G smbadmin smbuseradmin