You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu挂载NAS后无写入权限的解决求助

Ubuntu挂载NAS后无写入权限的解决求助

问题描述

我家里有一台NAS存着所有共享文件,已经通过在/etc/fstab里添加以下配置,用mount -a命令成功在Linux终端挂载了:

//192.168.0.145/TARDIS_Share /mnt/nas cifs username=MY_USERNAME,password=MY_PASSWORD,uid=3000,gid=3002,file_mode=0664,dir_mode=0775 0 0

但现在遇到个问题:不管运行什么生成文件的命令,都会报写入权限错误。我用的是Ubuntu 22.04.4 LTS(jammy版本),测试用VIM保存简单文本文件时,必须用sudo vim才能成功,不用sudo就不行。

有没有办法调整权限,让我不用su类命令就能创建文件呀?


解决方案建议

先别着急,咱们一步步排查和解决:

  • 确认当前用户的UID/GID是否匹配挂载参数
    先在终端里运行id命令,看看你当前登录用户的UID和GID是不是和fstab里设置的uid=3000,gid=3002一致。如果不一致,挂载后的文件/目录权限会属于UID3000、GID3002的用户/组,你当前用户自然没权限写。

    • 如果确实不匹配,把fstab里的uidgid改成你当前用户的对应值,改完后运行sudo mount -o remount /mnt/nas重新挂载试试。
  • 检查NAS端的共享权限设置
    有时候问题出在NAS那边,登录NAS的管理界面,检查TARDIS_Share这个共享文件夹的权限设置:

    • 确认你用来挂载的MY_USERNAME在NAS上拥有写入权限,而不是只读。
    • 有些NAS还会有“用户组权限”的设置,也要确认对应的用户/组有写入权限。
  • 调整挂载参数的权限位
    你现在设置的file_mode=0664dir_mode=0775,意味着文件是所有者和组可读写,其他只读;目录是所有者和组可读写执行,其他只读执行。如果你的用户不在GID3002的组里,那你就只有只读权限。

    • 可以临时把file_mode改成0666dir_mode改成0777测试,重新挂载后看看能不能写入。如果可行,再调整回更安全的权限,同时用sudo usermod -aG 3002 你的用户名把自己加入GID3002的组。
  • 尝试添加nounix挂载参数
    有时候CIFS挂载和Unix权限的兼容性会出问题,你可以在fstab的参数里加上nounix,让挂载时忽略Unix权限,直接用NAS端的权限设置。修改后的配置大概是:

    //192.168.0.145/TARDIS_Share /mnt/nas cifs username=MY_USERNAME,password=MY_PASSWORD,uid=3000,gid=3002,file_mode=0664,dir_mode=0775,nounix 0 0
    

    改完后运行sudo mount -o remount /mnt/nas重新挂载测试。

  • 检查挂载点本身的权限
    最后看看/mnt/nas这个挂载点目录本身的权限,运行ls -ld /mnt/nas,如果挂载前这个目录的权限就不对,也可能影响挂载后的权限。可以用sudo chown 你的用户名:你的组名 /mnt/nas调整挂载点权限,再重新挂载试试。


备注:内容来源于stack exchange,提问作者fred4h

火山引擎 最新活动