На этот вопрос уже есть ответ здесь:
(использовал этот трюк, и не сработало)
После переустановки 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
result :
# mount | grep 'on /media
/dev/sda7 on /media/reigin/data type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
Проблема здесь состоит в том, что файловой системой является NTFS, который не поддерживает полномочия Unix. Необходимо использовать fmask
опция mount
, который устанавливает полномочия всех файлов на подсоединенном внешнем диске, в то время как это смонтировано.
Примечание, что у Вас должны быть корневые полномочия для этих команд для работы.
Первый, размонтируйте диск в случае необходимости:
umount /dev/sda7
, Если это дает ошибку как:
umount: /dev/sda7: not mounted
просто игнорируют его.
Затем, создают каталог, чтобы быть Вашей точкой монтирования:
mkdir -p /media/reigin/data
Наконец, смонтируйте диск:
mount -o fmask=0022 /dev/sda7 /media/reigin/data
Это присвоит 755
полномочия каждому файлу на диске (но каталоги будут все еще иметь полномочия по умолчанию). Обратите внимание, что это не является постоянным; необходимо будет сделать этот каждый раз, когда Вы монтируете диск.