Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу скомпилировать файл cpp, bash: ./prog отказано в доступе 
:(
    Опции темы
Alexey91
Дата 30.9.2011, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 18.9.2008

Репутация: нет
Всего: нет



Здравствуйте!

Есть файл a.cpp

Выполняю   g++ -c a.cpp -o prog
./prog

Выдается   bash: ./prog отказано в доступе

В чем может быть дело?
PM   Вверх
newbee
Дата 30.9.2011, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: нет
Всего: 19



Скорее всего раздел смонтирован с опцией noexec. Быстрое решение: перемонтировать его 
Код

mount /path/ -o remout,exec
Долговременное решение - поправить /etc/fstab, там поменять noexec на exec.


--------------------
You're face to face
With man who sold the world
PM   Вверх
Alexey91
Дата 30.9.2011, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 18.9.2008

Репутация: нет
Всего: нет



newbee Раньше (т.е. сегодня) компилировалось без проблем, и сегодня возникли проблемы
Первый способ не смог сделать, что за /path/, bash не находит его
Второй способ, сделал, но не помогло
PM   Вверх
newbee
Дата 30.9.2011, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: нет
Всего: 19



Цитата(Alexey91 @  30.9.2011,  17:32 Найти цитируемый пост)
Первый способ не смог сделать, что за /path/, bash не находит его
Нужно было заменить /path на путь монтирования, я не знаю, что там у тебя, /, /home или что-то еще.

Цитата(Alexey91 @  30.9.2011,  17:32 Найти цитируемый пост)
Второй способ, сделал, но не помогло 
Перезагружался? И пусть меня побьют линупсоиды



--------------------
You're face to face
With man who sold the world
PM   Вверх
bsa
Дата 30.9.2011, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



Цитата(Alexey91 @  30.9.2011,  17:32 Найти цитируемый пост)
Первый способ не смог сделать, что за /path/, bash не находит его

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

Добавлено через 1 минуту и 2 секунды
Цитата(newbee @  30.9.2011,  17:47 Найти цитируемый пост)
я не знаю, что там у тебя, /, /home или что-то еще.

/ - просто убило.  smile 
Ты себе как представляешь корень с опцией noexec?  smile 
PM   Вверх
newbee
Дата 30.9.2011, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: нет
Всего: 19



Цитата(bsa @  30.9.2011,  17:48 Найти цитируемый пост)
Ты себе как представляешь корень с опцией noexec?
Лол я только что ради фана перемонтировала, теперь думаю, как отмонтироваться обратно)) А ваще noexec-корень может быть в чруте. Но можно ли его перемонтировать обратно... Блин, че делать то))



--------------------
You're face to face
With man who sold the world
PM   Вверх
newbee
Дата 30.9.2011, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: нет
Всего: 19



К счастью то был рабочий комп, а не пражский сервер. Надо было убегать, выключилась через sysrq. Через него же можно смонтировать корень в рид-онли, не знаю, сбросится ли при этом noexec-флаг. В следующий раз попробую)


--------------------
You're face to face
With man who sold the world
PM   Вверх
Alexey91
Дата 30.9.2011, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 18.9.2008

Репутация: нет
Всего: нет



Кому можно позвонить?

Добавлено через 5 минут и 3 секунды
newbee, Про первый способ
alex@alex-101:~/Рабочий стол/mzki/system_dh$ sudo mount ~ -o remout,exec
mount: невозможно найти /home/alex в /etc/fstab или /etc/mtab


Добавлено через 6 минут и 29 секунд
Да, перезагружался
Про второй способ: нашел в /etc/fstab
сделал в консоли chmod 666 /etc/fstab
нашел строку, где noexec, заменил на exec, перезагрузился, и ничего не поменялось(
PM   Вверх
bsa
Дата 3.10.2011, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



Alexey91, верни все обратно. В том числе и режим доступа к fstab: sudo chmod 0644 /etc/fstab

Во-первых, проверь, что у тебя за файл создался. для этого выполни в каталоге с экзешником: ls -l 
должна быть строчка такого вида:
Код
rwxr-xr-x ... prog
Если нет буковок x, то это значит, что права на запуск не заданы. Выполни chmod a+x prog. Если это не поможет, то тогда придется смотреть опции монтирования. Для этого необходимо выполнить команду: cat /proc/mounts. И искать строчку, во втором столбце которой находится /home или /home/alex. Далее проверяешь, есть ли в третьем столбце опция noexec. Если нет, то тогда проверяешь что за каталоги такие /home и /home/alex. Это это символические ссылки в другие места файловой системы, то необходимо проверять именно их.

Цитата(Alexey91 @  30.9.2011,  19:46 Найти цитируемый пост)
Кому можно позвонить?

Тому, кто устанавливал тебе систему, если это домашний комп. Или любому знакомому линуксоиду.
PM   Вверх
DRUID3
  Дата 4.10.2011, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 463
Регистрация: 20.6.2005
Где: Kyyiv

Репутация: 1
Всего: 9



 smile сделай файл исполняемым в любом файловом менеджере...


--------------------
Every time if you use Linux, you are joined to the communism...
практика - критерий истины ... отделенной от нас пропастью субъективного восприятия...
PM MAIL WWW Skype   Вверх
bsa
Дата 5.10.2011, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



Alexey91, я еще раз проверил твою строку компиляции. Ты компилируешь исходник, а не собираешь программу. Ключ -c приводит к тому, что компилятор делает объектный файл (обычно, с расширением *.o в *nix или *.obj под Windows). Но ты явно указал другое имя (ключ -o), поэтому расширение не добавилось. А так как объектный файл не является исполняемым, то и запустить его нельзя.
Быстрое решение: убери ключ -c
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0586 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.