Добавлен новый раздел в систему, «доступ запрещен» при запуске программ [дубликат]

Возможный дубликат:
Ubuntu отобрал разрешения у моего раздела данных

Я переформатировал раздел NTFS в моей системе с помощью ext4 потому что я хочу использовать его в моей текущей установке Ubuntu, а не в Windows. Я добавил запись в / etc / fstab , чтобы смонтировать его при запуске. Точка монтирования - / home / username / bin . Я сменил владельца / home / username / bin и всех его подкаталогов на свою обычную учетную запись и ее группу пользователей. Наконец, я установил все разрешения на 755.

Мой / etc / fstab выглядит следующим образом:

proc        /proc               proc    nodev,noexec,nosuid               0       0
UUID=[uuid] /                   ext4    errors=remount-ro                 0       1       
UUID=[uuid] /data               vfat    utf8,umask=007,gid=46             0       1
UUID=[uuid] /home               ext4    defaults                          0       2
UUID=[uuid] /home/username/bin  ext4    rw,suid,dev,exec,auto,user,async  0       2
UUID=[uuid] none                swap    sw                                0       0

Моя проблема теперь в том, что, хотя я могу читать и записывать файлы в этом новом разделе, Я не могу запускать расположенные там приложения / программы. Как обычный пользователь, я всегда получаю сообщение об ошибке «Отказано в разрешении».Как root (с sudo ) ничего не происходит, а это означает, что я немедленно возвращаюсь в командную строку оболочки. Приложения должны выдавать текстовый вывод или открывать окна. Некоторые из этих приложений представляют собой двоичные файлы, некоторые - сценарии. Пробую запускать их с помощью ./ program . Если я скопирую их обратно в свою домашнюю папку, я смогу запустить их без проблем.

На самом деле, я месяцами хранил эти приложения в другом подкаталоге / home / username / apps моей домашней папки и запускал их оттуда без каких-либо проблем.

Как я могу это исправить? Что я делаю неправильно? :)

5
задан 13 April 2017 в 15:23

6 ответов

Я решил это. Проблема заключалась в опциях монтирования в /etc/fstab. Изменение их на defaults (что эквивалентно изменению с user на nouser) решает проблему, теперь все работает как положено.

0
ответ дан 13 April 2017 в 15:23

Игнорировать этот - оригинальный пост подразумевал NTFS, но это не так.

Когда вы монтируете раздел NTFS, в отличие от ext3 или ext4, он монтируется с разрешениями, установленными только для пользователя, где группа и другие вообще не имеют разрешения (rwx ------). Установка разрешений с помощью chmod или установка владельца с помощью chown только изменит разрешения для каталога, но не для чего-либо в этом каталоге.

Решение состоит в том, чтобы указать правильные параметры в /etc/fstab/. Вот те, которые я успешно использую, чтобы сделать себя владельцем (замените 0000000000000000 на правильный UUID и измените LOGIN_NAME на свое имя для входа):

UUID=0000000000000000 /home/LOGIN_NAME/bin ntfs-3g auto,users,uid=LOGIN_NAME,gid=LOGIN_NAME,utf8,dmask=002,fmask=113 0 0

Все это должно быть включено одна строка в fstab.

Причиной этого является то, что разрешения NTFS выполняются не так, как собственные разрешения Linux, поэтому для использования Linux необходимо указать определенные переводы.

Конец Игнорировать это -------------

РЕДАКТИРОВАТЬ:

Извините за неверное направление . [+1112]

Полагаю, вы можете это исправить, изменив владельца каталога ~ / bin после первого монтирования . В командной оболочке bash введите команду sudo chown LOGIN_NAME:LOGIN_NAME /home/LOGIN_NAME/bin, конечно же, сменив LOGIN_NAME на свое имя.

Я проверил это с помощью USB-накопителя, и он отлично вмонтировался в мой каталог bin. Единственное отличие заключалось в том, что я использовал только опцию «auto» в fstab.

0
ответ дан 13 April 2017 в 15:23

Вы пытались смонтировать этот раздел ext4 где-нибудь за пределами вашего домашнего каталога? Например, настройте его запись в / etc / fstab примерно так:

UUID=[uuid] /ext4bins  ext4    rw,suid,dev,exec,auto,user,async  0       2

Если вы можете смонтировать его в другом месте и выполнить файлы и приложения, тогда вы можете сделать второй шаг, чтобы получить поведение Вы хотели, который может выполнять приложения из ~ / bin, создав символическую ссылку, например, так:

ln -s /ext4bins /home/[username]/bin

Замените [username] на ваше собственное имя пользователя, очевидно. Это сделает смонтированный раздел в / ext4bins монтируемым в / home / [имя пользователя] / bin, и, пока файлы доступны для / ext4bins, вы также сможете выполнять их через ~ / bin. Например,

/ext4bins/myscript.sh

будет работать так же, как

~/bin/myscript.sh
0
ответ дан 13 April 2017 в 15:23

Вам необходимо установить разрешение на выполнение. В Nautilus (файловом браузере) щелкните правой кнопкой мыши файл программы и выберите вкладку «Разрешения». Установите флажок «Разрешить выполнение файла как программы». Из терминала вы также можете сделать:

sudo chmod +x /path/to/myfile

Также убедитесь, что вы не указываете noexec для раздела в fstab, так как это отключит выполнение для всего раздела.

0
ответ дан 13 April 2017 в 15:23

У меня были похожие проблемы: я не смог выполнить сценарии оболочки, хранящиеся в NTFS, даже с sudo, даже после редактирования fstab, как описано выше.

Оказывается, я никогда не создавал каталог точек монтирования. Я размонтировал раздел, сделал каталог точки монтирования для раздела:

mkdir /media/Windoze7

, а затем снова смонтировал.

sudo mount -a
0
ответ дан 13 April 2017 в 15:23

Вы можете получить доступ к файлам во вновь созданном разделе ext4, но не можете запускать программы. При этом вы получаете сообщение об ошибке «Отказано в доступе». Это предполагает две возможности, как reverendj1 предложил :

  • Файлы могут не иметь разрешения на выполнение . Чтобы дать файлу разрешения на выполнение из командной строки, выполните:

    chmod +x filename

    Если вы просто хотите дать разрешения на выполнение владельцу файла:

    chmod u+x filename

    Чтобы дать файл выполнить разрешения в Nautilus (браузер файлов), щелкните правой кнопкой мыши файл и выберите Свойства . Откройте вкладку Разрешения . Установите флажок Разрешить выполнение файла как программы и нажмите Закрыть .

    enter image description here

  • Перегородка может быть смонтирована с помощью noexec. Чтобы проверить это, запустите mount и посмотрите, есть ли noexec рядом с соответствующей записью. Поскольку вы монтируете из /etc/fstab, вы можете удалить noexec там.

Кроме того, обратите внимание, что:

  • Обычно, хотя и не всегда, исполняемые файлы должны храниться в обычных местах: /bin, /sbin, /usr/bin, /usr/sbin /usr/local/bin, /usr/local/sbin, /opt/bin, ~/bin. Вы уверены, что действительно хотите исполняемые файлы на этом диске. Вы можете отредактировать свой вопрос , чтобы предоставить больше информации о том, чего вы хотите достичь.

  • Чтобы запустить программу из командной строки, которая находится в текущем каталоге, указав ее относительный путь, вы должны поставить перед ней ./:

    ./program
  • Если вы запускаете файл .desktop, а не приложение, то:

    1. Ему не нужно устанавливать исполняемый бит.
    2. Вы не должны пытаться запустить его так, как если бы он сам являлся сценарием или программой, но вместо этого , например, :

      xdg-open application.desktop
  • Если это исполняемые файлы Windows, которые вы запускаете с Wine, им фактически не нужно устанавливать исполняемый бит. Если они этого не делают, вы можете щелкнуть их правой кнопкой мыши и открыть их с помощью Wine Windows Program Loader или запустить их из командной строки следующим образом:

    wine program.exe

(я вижу, что это дает очень похожий совет к предыдущему ответу, поэтому я решил сделать это community-wiki .)

0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: