希望这是一个简单的问题,但我很难找到任何类似的问题。
在我的 Ubuntu 系统中,我有一个外部硬盘。当我在这个外部驱动器中创建文件时,我发现我无法打开该文件。经过一番挖掘,我发现这是因为在硬盘中创建的目录的权限为 664,这对于目录来说不是很有用。(文件也是用 664 创建的,这对我来说没有意义)。我已经检查过,在主文件系统中(不在外部驱动器内),文件的创建遵循 umask 值 0022,这是应该的。目录的创建权限为 755,文件为 644。
我的问题是:为什么我的外部硬盘会忽略我的 umask?我在本地制作文件,这里没有什么特别的,那么为什么我的外部驱动器中的默认权限与我的系统不同,我在哪里可以更改它?
我可以手动将权限更改为所需的权限,但这非常繁琐。如果需要更多信息,请告诉我,我真的不知道需要知道什么。
编辑:复制错误:在计算机内部,umask 工作正常。
tnevins@mixing:Music$ umask
0022
tnevins@mixing:Music$ mkdir mydir
tnevins@mixing:Music$ touch myfile
tnevins@mixing:Music$ ls -l
total 4
drwxr-xr-x 2 tnevins mixinglab 4096 May 10 11:23 mydir
-rw-r--r-- 1 tnevins mixinglab 0 May 10 11:23 myfile
在驱动器 /tank/planktonPool 内部则不存在。
tnevins@mixing:planktonPool$ umask
0022
tnevins@mixing:planktonPool$ mkdir mydir
tnevins@mixing:planktonPool$ touch myfile
tnevins@mixing:planktonPool$ ls -l
drw-rw-r--+ 2 tnevins mixinglab 4096 May 10 11:27 mydir
-rw-rw-r-- 1 tnevins mixinglab 0 May 10 11:27 myfile
/etc/fstab
UUID=f1a76953-ece5-4559-8436-54bdd86d7fee /media/tank ext4 nofail,defaults 0 2
sudo lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
└─sda1 ext4 a1e54134-bc37-4f85-9f61-65311b75c573 /
sdb
└─sdb1 ext4 mixingBackup 9ccbbee0-167e-4b19-bcf8-b2648a7dd40c /media/mixingBac
sdc
└─sdc1 ntfs vault 220EA82D219FBF1D /media/vault
sdd
└─sdd1 ext4 tank f1a76953-ece5-4559-8436-54bdd86d7fee /media/tank
啊,所以根据这个命令,看起来“tank”驱动器是 sdd1 驱动器。这是我目前询问的那个。
sudo lsblk -m
NAME SIZE OWNER GROUP MODE
sda 1.8T root disk brw-rw----
└─sda1 1.8T root disk brw-rw----
sdb 931.5G root disk brw-rw----
└─sdb1 931.5G root disk brw-rw----
sdc 10.9T root disk brw-rw----
└─sdc1 10.9T root disk brw-rw----
sdd 8.2T root disk brw-rw----
└─sdd1 8.2T root disk brw-rw----
sudo parted -ls
Model: ATA WDC WD2003FZEX-0 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 2000GB 2000GB primary ext4 boot
Model: Seagate Backup+ BK (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1000GB 1000GB primary ext4
Model: TT H/W R AID5 (scsi)
Disk /dev/sdc: 12.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 12.0TB 12.0TB ntfs msftdata
Model: HzW RAID 5 (scsi)
Disk /dev/sdd: 9002GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 9002GB 9002GB ext4 msftdata
自由度
Filesystem 1K-blocks Used Available Use% Mounted on
udev 32931096 0 32931096 0% /dev
tmpfs 6591648 3428 6588220 1% /run
/dev/sda1 1921802432 213108624 1611001752 12% /
tmpfs 32958224 46184 32912040 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 32958224 0 32958224 0% /sys/fs/cgroup
/dev/sdc1 11720883180 10724315468 996567712 92% /media/vault
/dev/sdd1 8721245008 8136336948 145359752 99% /media/tank
/dev/sdb1 961302556 961286176 0 100% /media/mixingBackup
tmpfs 6591644 20 6591624 1% /run/user/127
128.151.161.22:/media/cage 11627446496 8377352688 2664031680 76% /media/cage
tmpfs 6591644 0 6591644 0% /run/user/1001
tmpfs 6591644 10144 6581500 1% /run/user/1003
tmpfs 6591644 0 6591644 0% /run/user/1004
ls -ld /媒体/坦克/
drwxrwxrwx 25 dhk mixinglab 4096 May 10 11:26 /media/tank/
ls -ld /media/tank/planktonPool/(我通常在其中工作的文件夹)
drwxrwxr-x+ 76 tnevins mixinglab 4096 May 10 11:27 /media/tank/planktonPool/
答案1
幸运的是你确实拥有 planktonpool 文件夹 ;-)你(您的用户 ID)具有写权限(以及您所在组中的权限)。
我看到两个选择
要么你给每个人写权限,要么在
chmod
语言中给‘其他人’写权限sudo chmod o+w /media/tank/planktonPool/
或者你将所有你期望写入到你的组(或该组
mixinglab
)的用户 ID 都添加进去。将它们添加到以
tnevins
( 冒号后,如果有多个用户 ID,则在文件中用冒号分隔它们/etc/group
sudo nano /etc/group
还有一件事:如果其他用户正在写,或许他们写入的文件(或目录)将获得其他权限(其他用户 ID 没有写入权限。在这种情况下,您将无法覆盖这些文件。请检查是否是这种情况(某些文件缺少写入/media/tank/planktonPool/
权限,尽管您需要覆盖它们)。
答案2
因此,经过第二轮挖掘,我发现了 /planktonPool/ 文件夹的问题所在。如果您注意到 planktonPool 文件夹有访问控制列表,而 tank 文件夹没有。
drwxrwxr-x+ 76 tnevins mixinglab 4096 May 10 11:27 /media/tank/planktonPool/
drwxrwxrwx 25 dhk mixinglab 4096 May 10 11:26 /media/tank/
我对此进行了调查并发现 planktonPool 文件夹的 getfacl 是:
# file: planktonPool/
# owner: tnevins
# group: mixinglab
user::rwx
group::rwx
other::r-x
default:user::rw-
default:group::rw-
default:other::r--
换句话说:planktonPool 中创建的新文件夹被赋予了默认权限,而不是转到 umask。抱歉,我之前不知道如何提供 getfacl,但问题就出在这里。由于我没有设置计算机,所以我并不总是知道它的所有细节。我最终使用以下命令解决了我的问题:
setfacl -R -m default:u::rwx,default:g::rwx,default:o::r-x /media/tank/planktonPool/
我确信这不是理想的,它解决了我的问题的最大部分:能够创建我无法访问的目录。
如果人们仍然愿意提供帮助:我确实注意到,当我创建新文件时,权限仍然与 umask 不匹配。它表现得好像 umask 是 0002 而不是 0022,但仅限于 planktonPool 文件夹内。
感谢所有帮助过的人,尽管我们似乎找错了地方,而且很抱歉我了解的还不够多,无法提出其他建议。