我的硬盘没有执行权限

我的硬盘没有执行权限

我是 Ubuntu 新手。为了挂载硬盘,我添加了以下行/etc/fstab并保存。

/dev/sda1 /home/mine/hd1 ext4 auto,exec,users,rw  0 0

输出sudo fdisk -l

Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 1BE4FADE-5038-4B8E-BA1A-11E38749A593

Device     Start        End    Sectors  Size Type
/dev/sda1   2048 7814035455 7814033408  3.7T Linux filesystem




Disk /dev/sdb: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 46108040-B863-4181-94EF-8DEEF7ACD4D5

Device         Start       End   Sectors  Size Type
/dev/sdb1       2048   1050623   1048576  512M EFI System
/dev/sdb2    1050624 201078783 200028160 95.4G Linux filesystem
/dev/sdb3  201078784 234440703  33361920 15.9G Linux swap

在 /etc/fstab 中:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdb2 during installation
UUID=e4488cf9-7c51-4456-8626-bfe96ba919a8 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sdb1 during installation
UUID=3144-2FF0  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/sdb3 during installation
UUID=4189137f-17b2-484c-83a9-8ca406d68cad none            swap    sw   0       0
/dev/sda1 /home/cpl/hd1 ext4 auto,exec,users,rw  0 0

但是我发现重启后它不起作用。例如,我想运行它/home/cpl/hd1/a.out,它显示

bash: /home/cpl/hd1/a.out: Permission denied

我尝试了该命令chmod,但失败了。

我怎样才能获得所有权限?(我发现,如果我删除我添加的行/etc/fstab并运行sudo mount /dev/sda1 ~/hd1,我将获得执行权限。问题是你每次启动时都需要再次运行它。)这是sudo ls -alh ~/hd1我执行之前和之后的输出sudo mount /dev/sda1 ~/hd1

前:

total 8.0K
drwxrwxr-x  2 cpl cpl 4.0K Sep  4 17:39 .
drwxr-xr-x 21 cpl cpl 4.0K Sep  5 10:22 ..

后:

total 44K
drwsr-xr-x  8 cpl cpl 4.0K Sep  5 00:46 .
drwxr-xr-x 21 cpl cpl 4.0K Sep  5 10:22 ..
drwsr-xr-x  2 cpl cpl 4.0K Sep  4 18:53 beifen
drwsr-xr-x  3 cpl cpl 4.0K Sep  4 20:37 fanqiang
drwsr-xr-x  2 cpl cpl  16K Sep  1 14:02 lost+found
drwsr-xr-x  2 cpl cpl 4.0K Sep  4 16:01 test
drwsr-xr-x  5 cpl cpl 4.0K Sep  3 20:25 .Trash-1000
drwsr-xr-x  2 cpl cpl 4.0K Sep  4 21:00 utorrent

答案1

在这些选项中添加 ,uid=1001 (假设 /etc/passwd 中的用户 ID 是 1001)

/dev/sda1 /home/mine/hd1 ext4 auto,exec,users,rw,uid=1001 0 0

对我有用。

答案2

您的问题是将使用值 (用户 ID) 作为文件系统的所有者auto自动挂载。由于您有但没有,它将使用默认值,即 root。uidautouid0

为什么它在重启之前可以工作?因为你设置了users,允许普通用户挂载该设备。当普通用户挂载它时,uid 的默认值是当前用户的。因此,当你挂载它时,你拥有文件系统,当你使用自动挂载启动时,root 拥有文件系统。

只需添加uid=1000。输入id即可查看您的用户 uid。


另一个选择是修复文件的权限,使其不依赖于文件系统根继承。

以 root 身份挂载后(这对于 ext* 文件系统是正确的),键入sudo chmod a+x /mnt/my/fileso everyone canexecute that file。或者学习 unix 权限并添加组执行以匹配您的用户组。

答案3

最后我解决了这个问题,但忘了在这里记录下来。实际上,我只是对我添加的行做了一点改动/etc/fstab

/dev/sda1 /home/cpl/hd1 ext4 auto,users,exec,rw  0 0

东西 users应该在 前面exec。对我有用。

相关内容