关于 update/delete/write permission deny问题修复
0.首先在服务器端执行testparm -s ,测试 Samba 配置并显示结果。需确保服务器端参数 read only = No ,共享目录有写入权限
一、若配置了允许匿名访问,使用匿名访问来操作smb需要做如下处理(匿名访问会将无效用户映射成nobody用户操作):
1.mount 挂载时设置文件和文件夹权限为777:mount -t cifs //10.1.1.115/shared /samba-data/data/ -o rw,dir_mode=0777,file_mode=0777,username="ecmaster"
或者设置所属用户和所属组为nobody和nogroup:mount -o rw,uid=65534,gid=65534,username="ecmaster" (id nobody 命令可查看用户和用户组的id)
2.上面只是设置了客户端的文件权限,服务器端暴露的共享目录也需修改文件权限为777: chmod -R 777 /目录
或者设置所属用户和所属组为nobody和nogroup: chown -R nobody:nogroup /目录
3.同时还要修改服务器端参数确保新建的文件权限也为777:
force create mode = 0777
force directory mode =0777
或者确保新创建文件的用户和用户组为nobody和nogroup:
force user = nobody
force group = nogroup
二、关闭匿名访问(guest ok = No),看共享的文件所属用户是哪个就用哪个用户登陆,我这边是root
1.给samba增加root用户密码(samba密码默认是与linux分开的,不配置mount时会permission deny): smbpasswd -a root
2.然后以root用户进行挂载即可:mount -t cifs //10.1.1.115/shared /samba-data/data/ -o rw,username="root"
可自行调整参数,然后重新挂载测试
umount -lf /samba-data/data # 制取消挂载 不受device is busy影响