在Ubuntu服务器上安装SAMBA服务,实现多用户权限管理控制

先说目的:想要实现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                     # 是否能被浏览到,如果选了否 只能通过 ‘\\/资源名’访问,实测这样在有些环境会出问题,一般建议开启
create mask = 0755
directory mask =0755

:wq保存退出

重启smb服务

sudo service smbd restart

访问

windows下打开运行:win+R,输入\\<服务器ip>,填写刚刚配置的用户名密码后就可以访问了。需要注意的是修改用户的话需要注销系统后才会生效。

Linux下可以使用smbclient

smbclient [网络资源][密码][-EhLN][-B][-d<排错层级>][-i<范围>][-I][-l<记录文件>][-M][-n][-O<连接槽选项>][-p][-R<名称解析顺序>][-s<目录>][-t<服务器字码>][-T][-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

你可能感兴趣的:(在Ubuntu服务器上安装SAMBA服务,实现多用户权限管理控制)