我正在努力解决我的 ubuntu 服务器上安装的 NAS 上的文件权限问题 ( 20.04 LTS
)。
NAS 驱动器使用 cifs 安装/etc/fstab
:
sudo nano /etc/fstab:
//PiNAS/PiNASdrive /media/PiNAS cifs vers=3.0,credentials=/home/USERNAME/.secrets/.smbdPiNAScredentials,nodev,nosuid,uid=1000,gid=1000 0 0
权限如下:
stat /media/PiNAS/:
File: /media/PiNAS/
Size: 0 Blocks: 0 IO Block: 1048576 directory
Device: 33h/51d Inode: 2 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 1000/ xxxx) Gid: ( 1000/ xxxx)
当我尝试更改sudo chmod -R 0770 /media/PiNAS
文件权限时,权限并没有改变。
当我尝试设置 NextCloud Docker 容器时出现了这个问题,因为 NextCloud webapp 在安装过程中告诉我:
“请将权限更改为 0770,以便其他用户无法列出该目录。”
我可以持续更改文件权限吗? 或者这是 docker 问题,我是否需要对 docker 容器内的文件权限做些什么(NAS 驱动器上有一个文件夹,它被映射为 docker 容器中的卷)
在 Raspberry Pi 4 上设置 NAS 设备
为了完整起见,NAS 设备的设置方式如下:
我有一台连接了两个 USB 驱动器的 Raspberry Pi 4。我曾经mdadm
创建了一个简单的“RAID1”阵列:
sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Feb 18 20:37:27 2021
Raid Level : raid1
Array Size : 1953381440 (1862.89 GiB 2000.26 GB)
Used Dev Size : 1953381440 (1862.89 GiB 2000.26 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Jul 19 21:38:53 2021
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : PiNAS:0 (local to host PiNAS)
UUID : d0b5192e:3b2b1fd7:f43639bb:e041cac6
Events : 51229
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
该驱动器使用以下方式安装/etc/fstab
:
UUID="1655887b-96c2-40dd-80e2-87e2fdce83c6" /media/USB12 ext4 defaults 0 0
然后通过 samba 共享
nano /etc/samba/smb.conf:
<snip>
[PiNASdrive]
path = /media/USB12
writeable=Yes
create mask=0770
directory mask=0770
public=no
答案1
我设法解决了它——更正确地阅读各种文档就足够了。
正如@golimar 指出的那样,尽管挂载看起来像目录,但并不完全相同,因此也可以采取不同的行为。
这里解释说,对于 cifs 挂载,文件权限是在挂载时创建的,之后无法再更改。此外,您可以将 adir_mode
和 a传递file_mode
给 mount 命令来设置权限。
我首先在 处创建了一个新目录作为挂载点~/smbshares/PiNAS
。然后,我使用 更改了文件夹的权限sudo chmod -R 0770 ~/smbshares/PiNAS
;尽管我不能 100% 确定这是否有必要,甚至是否真的起作用。
现在,我可以挂载了。对我来说,现在的行/etc/fstab
如下所示:
//PiNAS/PiNASdrive /home/USERNAME/smbshares/PiNAS cifs vers=3.0,credentials=/home/USERNAME/.secrets/.smbdPiNAScredentials,nodev,nosuid,uid=1000,gid=1000,dir_mode=0770,file_mode=0770 0 0
快速sudo mount -a
(重新)安装所有驱动器。