Ubuntu 22.04同系统局域网共享文件夹权限异常(所有者为nobody)求助
Ubuntu 22.04同系统局域网共享文件夹权限异常(所有者为nobody)求助
兄弟我太懂你这糟心的情况了!明明都是纯Ubuntu环境,用户名密码都完全一致,结果跨机器操作完共享文件,本地反而被锁没法碰,这Samba的默认配置确实有点坑人。别慌,给你一套永久解决的方案,搞定之后不管是从Laptop B传文件、编辑文件,还是直接在Laptop A本地操作,权限都能保持完全一致:
步骤1:备份Samba配置(防改崩)
先把原配置文件备份一份,万一改出问题还能恢复:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
步骤2:修改Samba共享配置
用文本编辑器打开Samba的主配置文件:
sudo nano /etc/samba/smb.conf
找到你之前设置的共享文件夹配置段(一般是文件末尾以[你的共享名]开头的部分),修改或补充以下参数(把占位符换成你自己的用户名、用户组和共享路径):
[你的共享名称] path = /home/你的用户名/共享文件夹路径 # 替换成实际的共享文件夹绝对路径 writable = yes create mask = 0664 directory mask = 0775 force user = 你的用户名 # 两台机器相同的那个用户名 force group = 你的用户名 # 一般用户组和用户名同名,也可以填users valid users = 你的用户名 public = no
参数说明:
force user/force group:强制让Samba用你本地的用户身份处理所有共享操作,不管从哪台机器访问,创建/修改的文件所有者都会是你,直接解决nobody的问题create mask/directory mask:设置新文件和文件夹的默认权限,保证你有读写、执行(文件夹)的权限valid users:限制只有指定用户能访问,提升安全性
步骤3:验证配置并重启服务
保存退出nano(按Ctrl+O回车确认,再按Ctrl+X退出),先检查配置有没有语法错误:
testparm
如果输出里显示Loaded services file OK,就说明配置没问题。接着重启Samba服务让配置生效:
sudo systemctl restart smbd nmbd
步骤4:修复已存在的异常权限文件
这步是一次性处理那些已经变成nobody的文件,把它们的权限改回你的用户:
sudo chown -R 你的用户名:你的用户名 /home/你的用户名/共享文件夹路径 sudo chmod -R u+rwX,g+rwX,o+rX /home/你的用户名/共享文件夹路径
做完这些之后,你再从Laptop B传文件、编辑共享文件,回到Laptop A看就不会有红锁了,所有文件的所有者都是你自己,权限完全正常。本质上就是让Samba跳过默认的匿名身份映射,直接用你本地的用户身份来处理共享操作,完美适配同系统同账号的局域网共享场景~
备注:内容来源于stack exchange,提问作者Cant Sleep




