1、安装samba软件并配置开机自启动
apt-get install samba samba-common
systemctl enable smbd
2、创建sumba主文件夹
mkdir /opt/data/samba
chmod -R 777 /opt/data/samba
3、添加用户,必须先有对应的系统用户,才能添加到samba用户,用useradd添加的用户默认无法从shell登录系统,不会创建用户目录,比较安全。
useradd -s /sbin/nologin -r public
smbpasswd -a public
4、添加组,此处组名叫samba,经测试,用户新建文件权限不管怎么设置other用户都没有写权限(你设置create mode=0777,结果新创建文件就是0775),很奇怪的0755,然后其它用户上传的文件可以删除,不能修改。半天都没解决,心累,无奈,用组用户把吧。 我的需求也简单,管理员全部权限,其它所有用户public目录有全部权限,用户共享和交换文件,share文件夹管理员可写,其它用户只读。
groupadd samba
# 把public用户添加到samba组
usermod -a -G samba public
# 把public用户所属组改为samba
usermod -g samba public
4、create mode=0777,结果新创建文件就是0775,然后其它用户上传的文件可以删除,不能修改。最后发现,write list 里的用户不能修改别人上传的文件,但admin users可以,
经过各种尝试,配置说明如下:
# 所有做过 smbpasswd 的用户都可以登录,可以读取,不能修改、删除、改名(即便是自己创建的文件[有权限的文件]也不行)
public = no browseable=yes
# 所有做过 smbpasswd 的用户都可以登录,可以读取;user1用户可以添加、改名、删除所有文件,但修改其它用户的文件内容无法保存
public = no browseable=yes write list = user1
#所有做过 smbpasswd 的用户都可以登录,可以读取;user1用户也是只读权限,admin users 配置不起作用
public = no browseable=yes admin users = user1
# 只有user2可以登录,可以读取全部文件,不能修改、删除、改名(即便是自己创建的文件也不行)
public = no browseable=yes valid users = user2
# 所有做过 smbpasswd 的用户都可以登录,可以读取,可以添加、改名、删除所有文件,但修改其它用户的文件内容无法保存。writable完全覆盖browseable
public = no browseable=yes writable=yes # 等同于 public = no writable=yes
# 等同于
public = no writable=yes browseable=no # 等同于 public = no browseable=no writable=yes
# 只有user2可以登录,可以读取,可以添加、改名、删除所有文件,但修改其它用户的文件内容无法保存
public = no writable=yes valid users = user2
# writable与write list一起,write list不起作用
public = no writable=yes write list = user1
# 等同于
public = no
writable=yes
# user1拥有全部权限,其它用户没有修改非所属自己的文件的权限(修改万没法保存),其它权限全有 public = no writable=yes admin users = user1
----------------------------
browseable = 可读
writable = 可写(但不能修改其它用户的文件,深层次原因是create mode/mask 配置777,结果上传的文件是775,chmod改为777后可以修改)
----------------------------
valid users = 是否可以登录
write list = 是否可以写文件
admin users = 是否可以修改别人的文件(管理权限)
-----------------------------
5、修改配置文件
vim /etc/samba/smb.conf
找到 map to guest = bad user 并注释,不然后续访问提示:
找到 usershare allow guests = yes ,将yes改为no
[global] 区块的最后加这三句,支持软链接
follow symlinks = yes wide links = yes unix extensions = no
最终配置:# 所有人对所有文件都有读写权限(不能修改他人文件内容)
[public] comment = public path = /opt/data/samba/public create mode = 0666 directory mode = 0777 public = no writable = yes # 只读共享,所有人都只读 [share] comment = share path = /opt/data/samba/share valid user = huiyun create mode = 0777 directory mode = 0777 public = no browseable = true # 科研数据,user1可写,user2只读 [keyan] comment = keyan path = /opt/data/samba/keyan create mode = 0666 directory mode = 0777 public = no valid users = user1,user2 admin users = user1
# 上级目录,管理权限,admin管理(valid users 必须加,不然所有用户都能登录,都有writable权限) [manage] comment = manage path = /opt/data/samba create mode = 0666 directory mode = 0777 public = no admin users = admin valid users = admin
6、重启服务
systemctl restart smbd
7、win10映射
输入用户名,密码完成映射。
标签:ubuntu20.04,samba,users,no,用户,win10,yes,public From: https://www.cnblogs.com/dwj192/p/17040759.html