驱动器中创建的文件与 umask 不匹配

驱动器中创建的文件与 umask 不匹配

希望这是一个简单的问题,但我很难找到任何类似的问题。

在我的 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 文件夹内。

感谢所有帮助过的人,尽管我们似乎找错了地方,而且很抱歉我了解的还不够多,无法提出其他建议。

相关内容