参考资料:

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
10-04 21:18