Написанные программы под Linux "парализованы" :(

Вопросы программирования и использования среды Lazarus.

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

Написанные программы под Linux "парализованы" :(

Сообщение mastertron » 18.02.2011 18:15:19

Здравствуйте. Свой уровень в программировании под линукс - 0.
Даже не знаю, тот-ли и туда-ли вопрос задаю ...
OpenSuSe10.3, Mandriva2010 - под гномом/кеды - результат один... Только от рута б/м работает.
Программа должна читать и писать файлы в своей же директории (для начала). При запуске из под пользователя (UID-1000) - запускается, но с файлами работать не может, доступа нет.
Вопрос - написал прогу ... , а как заставить это приложение нормально, полноценно работать в среде? Ну в частности в пределах хома пользователя?
Думаю с этим сталкиваются все и как то же решается? Подскажите пожалуста, или ткните кудата ...
Спасибо.
mastertron
незнакомец
 
Сообщения: 8
Зарегистрирован: 30.05.2010 16:38:18

Re: Написанные программы под Linux "парализованы" :(

Сообщение Иван Шихалев » 18.02.2011 18:30:04

Минимальный пример такой программы в студию. У всех все работает.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: Написанные программы под Linux "парализованы" :(

Сообщение mastertron » 18.02.2011 19:15:51

Озадачили ... :(
исходники подойдут?
Виндовой вариант работает.
mastertron
незнакомец
 
Сообщения: 8
Зарегистрирован: 30.05.2010 16:38:18

Re: Написанные программы под Linux "парализованы" :(

Сообщение Vadim » 18.02.2011 19:43:59

mastertron
Нда... Строк сильно много, а в какой строке ошибка - ведает лишь Аллах всемилостливый и всемогущий. :)
Ваши исходники невозможно запустить, а, следовательно, и проверить на корректность\некорректность. Как Вы считаете, удасться ли Вам помочь? :)
mastertron писал(а):но с файлами работать не может, доступа нет.

Судя по этому сообщению, Вы, сударь, не изволили наделить каталог правами для работы с ним пользователя. Ответ напрашивается сам собой - дайте необходимые права каталогу, дайте доступ. ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Написанные программы под Linux "парализованы" :(

Сообщение mastertron » 18.02.2011 20:16:09

Да, согласен, проблема скорее с правами, но как ее решать? Файлы проэкта, и те, с каторыми программа работает, лежат в папке пользователя ( пробовал по разным пихать), в самой программе ошибок нет, под рутом же работает. Выслать Вам все? Метров 15 ...
Может программу нужно както регистрировать для выполнения? Может использовать для работы с файлами другие функции?
Может в самом проэкте Лазаря дерективы какие счелкнуть?
Проэкт был написан под винду, просто перетащил в линукс, убрал то, что ругалось, и скомпилил.
Видимо я незнаю какойто мелочи ... :(

Добавлено спустя 11 минут 26 секунд:
Подскажите, какие файлы нужно вложить? ( все не вмещаются в 256 KiB ).
mastertron
незнакомец
 
Сообщения: 8
Зарегистрирован: 30.05.2010 16:38:18

Re: Написанные программы под Linux "парализованы" :(

Сообщение Иван Шихалев » 18.02.2011 20:44:44

Попробуйте сделать минимальный пример — одна форма, одна кнопка с одним действием — тем, на котором выдает ошибку.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: Написанные программы под Linux "парализованы" :(

Сообщение Ism » 18.02.2011 20:54:42

Судя по всему часть файлов в вашей папке принадлежит root , сделайте их принадлежащими группе users и вашей учетной записи, например через mc. А так же проверьте права на папку с программой

И подучите русский язык
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Написанные программы под Linux "парализованы" :(

Сообщение coyot.rush » 18.02.2011 21:10:10

под рутом же работает

Код: Выделить всё
// Создание каталога ресурсов теста и файла.

// Проверка существования файла

      if FileExists(F_name)=false then

         begin // Если файла нет - создаем файл и каталог ресурсов

         AssignFile(F,F_name);

         Rewrite(F);

         // WriteLn(F,test_name);

         CloseFile(F);

         // Создание каталога ресурсов теста

         if DirectoryExists(Dir_name)=false then

                 MkDir(Dir_name); //если каталога нет - создадим

         end;

Если вы запустили программу из под рута и переписали каталоги/файлы то доступ к файлам будет иметь только рут. Обычному пользователю будет отказано в доступе. :!:
Совет: компилируйте и запускайте из под непривилегированного пользователя :idea:
Также посмотрите не включен ли SE Linux :idea:
Аватара пользователя
coyot.rush
постоялец
 
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Re: Написанные программы под Linux "парализованы" :(

Сообщение mastertron » 18.02.2011 22:20:47

Иван Шихалев - Спасибо. От простого .... мысль такая посетила, значит правильная :)
coyot.rush - Вы меня "умыли" :)... так оно и было, но не во всех случаях.
SE Linux - как в анекдоте -" А чего это?" :) ( щас погуглю).
mastertron
незнакомец
 
Сообщения: 8
Зарегистрирован: 30.05.2010 16:38:18

Re: Написанные программы под Linux "парализованы" :(

Сообщение vada » 19.02.2011 01:29:52

На каталог с файлами с которыми работает прграмма, попробуйте сделать
chmod -R 777 имякаталога
chown -R имягруппы.имяпользователя
Если и так не заработает, ну тогда даже и не знаю. Быть такого не может. Да! Группа и пользователь должны БЫТЬ
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Написанные программы под Linux "парализованы" :(

Сообщение trius-strannik » 19.02.2011 12:16:36

У меня похожая ситуация была: в папке пользователя был примонтирован раздел с правами рута, и поменять эти права не представляло возможности, пришлось указывать правава жёстко при монтировании.
Аватара пользователя
trius-strannik
новенький
 
Сообщения: 23
Зарегистрирован: 11.06.2009 07:19:24
Откуда: Томск

Re: Написанные программы под Linux "парализованы" :(

Сообщение NXP » 19.02.2011 13:40:57

Советую почитать "Linux для новичков" или "чайников".
Такие проблемы, от неграмотности. Причем элементарной...
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: Написанные программы под Linux "парализованы" :(

Сообщение mastertron » 20.02.2011 03:27:36

Все же это видимо у линуха чего то новое придумали ..., сильно безопасная политика ( SELinux отсутствует, Armor отключен). И пока относится только к тем проектам, что скопированы с флешки и писались под виндой. И права на каталоги и файлы тут нипричем. Запускаю в среде лазаруса - нет проблем, запускаю с терминала - нет проблем, как только запуск с дельфина или по симлинку ( что в гноме, что в кде) - все... , нет доступа :( Будет время - поиграюсь, а пока прийдется создавать писанину заново и копипастить по кускам ( заодно и спрофилирую :) ).
Всем спасибо.

Добавлено спустя 1 час 28 секунд:
Блин, все оказалось проще:

Код: Выделить всё
OpenDialog1.InitialDir:=Application.EXEName;
OpenDialog1.Filter:='Файл теста|*.tst';
if openDialog1.Execute then
   begin
   mem_tic:=TStringList.Create;
   mem_tic.Clear;
   s:=openDialog1.FileName;
   i:=Length(s);
   while s[i]<>'/' do i:=i-1;
   Delete(s,1,i);
   i:=Length(s);
   F_name:=s;
   Delete(s,(i-3),i);
   Dir_name:=s+'_res';
   ShowMessage(Dir_name);
   ShowMessage(GetCurrentDir);
   mem_tic.LoadFromFile(F_name);


Какую директорию не открываешь - текущей получаешь "/home/user/Документы" ...
Естестно доступа нет :D
mastertron
незнакомец
 
Сообщения: 8
Зарегистрирован: 30.05.2010 16:38:18

Re: Написанные программы под Linux "парализованы" :(

Сообщение vada » 20.02.2011 15:36:35

Не надо изобретать велосипед. Есть куча процедур и функций для работы с именами файлов директориями, именами, расширениями.
А симлинки в линуксе, это отдельная тема. Надо обязательно почитать книжки для начинающих линуксоидов. А вот SELinux это специализированный защищенный дистрибутив. Там шаг вправо, шаг влево... и колючая проволока.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Написанные программы под Linux "парализованы" :(

Сообщение Ism » 20.02.2011 16:18:19

А что мешает написать скрипт, делающий нужную директорию текущей и запускающий программу ?
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

Рейтинг@Mail.ru
cron