参考资料:
https://wiki.ubuntu.org.cn/Samba
Linux用户管理参考
https://www.runoob.com/linux/linux-comm-useradd.html
安装Samba
# 安装
demo@ubuntu:~$ sudo apt install samba -y
# 防火墙通过
demo@ubuntu:~$ sudo ufw allow 'samba'
指定共享文件夹
# 当前用户是demo,在demo的home目录下建立共享文件夹
demo@ubuntu:~$ mkdir /samba_share
# samba_share文件夹的权限如下 owner|group|other
demo@ubuntu:~$ ls -l
total 8
drwxrwxr-x 2 demo demo 4096 Oct 4 06:08 samba_share
drwxrwxr-x 3 demo demo 4096 Oct 3 12:39 software
设置samba用户
# 设置一个普通用户sam,该用户不需指定目录和shell
demo@ubuntu:~$ sudo useradd sam
# 设置sam的密码,输入2次确认
demo@ubuntu:~$ sudo passwd sam
# 由于没有指定sam的组,所以sam属于sam组,与用户名同名
# 按照上面的文件夹权限,该用户只有读和执行的权限
# 添加samba用户,samba用于是基于系统用户,所以必须先建立系统用户才可以添加samba用户
demo@ubuntu:~$ sudo smbpasswd -a sam
# 输入2次密码,可以与系统账户不一致,samba账户与系统账户没关系
修改samba配置
demo@ubuntu:~$ cd /etc/samba/
# 备份配置
demo@ubuntu:/etc/samba$ sudo cp smb.conf smb.conf.bak
# 修改配置
demo@ubuntu:/etc/samba$ sudo vim smb.conf
# 在配置最后添加共享配置
# 共享显示的名称
[share]
# 描述,自由填写
comment = SambaShare
# 共享文件夹的绝对路径
path = /home/demo/samba_share
# everyone可见
public = yes
# 是否可写
writable = yes
# 文件权限
create mask = 0700
# 文件夹权限
directory mask = 0700
# 允许访问的用户,多用户用逗号隔开,添加组 ‘@+组名’
valid users = @demo, sam
# 资源是否可用
available = yes
# 是否可浏览
browseable = yes
# 设置中文正确显示
display charset = utf-8
unix charset = utf-8
doc charset = uft-8
[share]
comment = SambaShare
path = /home/demo/samba_share
public = yes
writable = yes
create mask = 0700
directory mask = 0700
valid users = @demo, sam
available = yes
browseable = yes
display charset = utf-8
unix charset = utf-8
doc charset = uft-8
# 重启服务
demo@ubuntu:~$ sudo /etc/init.d/smbd restart
配置完毕可用Windows上使用\\IP地址来访问该共享,若弹出需要输入用户名和密码就填写刚才新建samba用户的用户名和密码。
若使用sam用户只能访问不能写入,可将sam用户加入demo组
# 将用户sam添加到demo组
demo@ubuntu:~$ sudo usermod -g demo sam
# 设置sam用户禁止登陆shell
demo@ubuntu:~$ sudo usermod -s /usr/sbin/nologin sam