无法执行我的旧文件,同一用户,只有 rw

无法执行我的旧文件,同一用户,只有 rw

(使用这个技巧,并没有起作用)

将我的 ubuntu 从 16.04 重新安装到 14.04 后。我的 C 程序无法执行。我的用户名相同。

我用过了:

chmod +x ./hello 
chmod -R 775 hello

我仍然得到:

bash: ./hello: Permission denied

我使用 GUI,勾选执行或更改权限组或类型,几秒钟后它突然恢复。但我可以读取和写入其中的每个文件,当我再次编译它然后执行时,它总是不起作用。

图形用户界面

我该如何解决?

(阅读了许多其他问题,但对我来说仍然不起作用..)

$ ls -l
total 160
-rw------- 1 reigin reigin  1323 Agu 31 07:14 bentuk.class
-rw------- 1 reigin reigin  2438 Agu 31 07:14 bentuk.java
-rw------- 1 reigin reigin  1290 Sep  1 04:16 bentukq.class
-rw------- 1 reigin reigin  2183 Sep  1 04:16 bentukq.java
-rw------- 1 reigin reigin   644 Agu 29 05:09 deret.class
-rw------- 1 reigin reigin   841 Agu 29 05:09 deret.java
-rw------- 1 reigin reigin  1471 Agu 27 04:30 Fkonversi.class
-rw------- 1 reigin reigin  8519 Sep 20 14:44 hello
-rw------- 1 reigin reigin   264 Sep 20 09:06 hello.c
-rw------- 1 reigin reigin   262 Agu 25 23:52 hello.c~
-rw------- 1 reigin reigin   417 Agu 26 00:00 hello.class
-rw------- 1 reigin reigin   281 Agu 26 00:00 hello.java
-rw------- 1 reigin reigin   182 Sep  1 18:13 HelloWorld.java
-rw------- 1 reigin reigin  8612 Agu 26 01:20 jumlah
-rw------- 1 reigin reigin   484 Agu 26 01:20 jumlah.c
-rw------- 1 reigin reigin   557 Agu 27 05:43 jumlah.class
-rw------- 1 reigin reigin   645 Agu 26 00:22 jumlah.java
drwx------ 1 reigin reigin  4096 Sep 17 12:46 lat2
drwx------ 1 reigin reigin  4096 Sep 17 12:46 lat3
-rw------- 1 reigin reigin  8517 Sep 20 09:23 new
-rw------- 1 reigin reigin   250 Sep 20 09:23 new.c
-rw------- 1 reigin reigin 25424 Agu 31 07:18 noted.txt
drwx------ 1 reigin reigin  4096 Sep 20 11:42 ong
-rw------- 1 reigin reigin  1006 Agu 31 06:16 suhu.class
-rw------- 1 reigin reigin  1354 Agu 31 06:15 suhu.java
drwx------ 1 reigin reigin     0 Sep 17 12:46 suhuu
-rw------- 1 reigin reigin   645 Agu 26 10:17 terbesar.class
-rw------- 1 reigin reigin   865 Agu 26 01:29 terbesar.java
-rw------- 1 reigin reigin  8664 Sep  1 11:24 test
-rw------- 1 reigin reigin   266 Sep  1 11:24 test.c
-rw------- 1 reigin reigin  8758 Agu 29 03:36 tigainteger
-rw------- 1 reigin reigin  2343 Agu 29 03:30 tigainteger_.c
-rw------- 1 reigin reigin  2345 Agu 29 03:34 tigainteger.c
-rw------- 1 reigin reigin  1184 Agu 27 13:46 tigainteger.class
-rw------- 1 reigin reigin  2776 Agu 27 13:09 tigainteger.java

grep结果 :

# mount | grep 'on /media
/dev/sda7 on /media/reigin/data type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)

答案1

这里的问题是文件系统是 NTFS,不支持 Unix 权限。您需要使用 选项fmaskmount该选项在挂载驱动器时设置挂载驱动器上所有文件的权限。

请注意,您需要具有 root 权限才能使这些命令运行。

首先,如果需要,卸载驱动器:

umount /dev/sda7

如果它给出如下错误:

umount: /dev/sda7: not mounted

忽略它。

接下来,创建一个目录作为挂载点:

mkdir -p /media/reigin/data

最后,挂载驱动器:

 mount -o fmask=0022 /dev/sda7 /media/reigin/data

这将为755驱动器上的每个文件分配权限(但目录仍将具有默认权限)。请注意,这不是永久性的;每次安装驱动器时都必须执行此操作。

相关内容