我有一个 Synology NAS。
在此 NAS 上,有一个组和一个专用的RetroPie用户。组和用户对包含两个子文件夹的特定共享驱动器均具有读写权限:roms/
和saves/
。
当我的 RetroPie 启动时,这两个文件夹使用用户名和密码挂载,我可以读取它们。
但是,尝试写入时,出现权限被拒绝错误。
ls -l
在已安装的文件夹上执行此操作,我得到了以下信息:
-rwxr-xr-x 1 root root
执行该mount
命令,我得到:
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=393084k,mode=700,uid=1000,gid=1000)
//192.168.xx.xxx/RetropieRoms/bios on /home/pi/RetroPie/BIOS type cifs (rw,relatime,vers=3.1.1,cache=strict,username=Retropie,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.50.112,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=4194304,wsize=4194304,bsize=1048576,echo_interval=60,actimeo=1)
我也尝试了sudo chmod
,命令运行正常,但仍然无法创建文件。
这是我用来挂载的命令:
sudo mount -t cifs -o username=<user>,password=<password> //192.168.xx.xxx/RetropieRoms/saves /home/pi/RetroPie/saves
我该怎么做才能修复它?以前文件在 Windows 系统上,一切运行正常。我猜问题出在我的 NAS 上,但我不知道如何修复它。
最后但并非最不重要的:尝试使用 SSH 连接到我的 NAS 时,它与我的管理员帐户配合良好,但当我以 RetroPie 用户身份尝试时出现权限错误
我猜想这是相关的但却无法理解其中的原因。
答案1
我相信您使用的 mount 命令正在将 fgiles 以 root 身份挂载,这使得它们可读和可执行,但不是每个人都可写(第三个 rx)。
tmpfs 的所有者是用户 1000 - 这通常是系统的第一个用户,我猜这相当于你的用户帐户
因此,我们想要做的是让文件由用户 1000 “拥有” - 我认为您可以使用以下 mount 命令的变体来实现:
sudo mount -t cifs -o username=<user>,password=<password>,uid=1000,gid=1000 //192.168.xx.xxx/RetropieRoms/saves /home/pi/RetroPie/savesqleq
注意添加 uid=,gid=(gid = 组 ID,可能不需要,但是个好主意)
替代解决方案
您可能能够更改目录的权限,以便每个人都可以访问它。这不太安全,我不喜欢这样,但在 NAS 本身上,您可以使文件可全部写入。(我不知道 Synology 命令/执行方式,但在幕后它会执行类似于 chmod -R 777 /path/to/files 的操作