Strona 1 z 1

Brak uprawnień do wykonywania programów i otwierania plików.

: 28 wrz 2007, 22:23
autor: G+
Witam.

Mam następujący problem:

Po zainstalowaniu ubuntu 7.04 pl kilka dni temu, na formatowany dysk miałem problem z kompilacją prostych programów w C. Przy kompilacji gcc nie znajdował mi stdio.h, zaradziłem na to po użyciu Google'a instalacją build-essential. Kompilacja następuje, ale nie mogę wykonać tego co już mam.

grzesiek@grzesiek-desktop:~$ gcc -c '/home/grzesiek/Desktop/dane/programowanie/c/choinka.c' -o '/home/grzesiek/Desktop/dane/programowanie/c/choinka.out'
grzesiek@grzesiek-desktop:~$ '/home/grzesiek/Desktop/dane/programowanie/c/choinka.out'
bash: /home/grzesiek/Desktop/dane/programowanie/c/choinka.out: nie można wykonać pliku wykonywalnego
Takie programy nie mają nawet ikony z "zębatkami" w Nautiliusie.

Co ciekawsze nie mogę otworzyć też z terminala zwykłych plików, widzę tylko
Permission denied
lub
grzesiek@grzesiek-desktop:~$ /home/grzesiek/dane/dokumenty/help.txt
/home/grzesiek/dane/dokumenty/help.txt: line 1: błąd składni w pobliżu nieoczekiwanego tokenu '('
/home/grzesiek/dane/dokumenty/help.txt: line 1: `GNU bash, version 3.2.13(1)-release (i486-pc-linux-gnu)'
grzesiek@grzesiek-desktop:~$
Co gorsza przez te parę dni postarałem się i zainstalowałem kilka nowości
- MonoDevelop,
- Tilda,
- beryl i dezinstalacja,
- kde - tak że mam wybór sesji,

Tak naprawdę mam 4 partycje:
- hdc1 - ntfs Windows XP,
- hdc5 - ntfs wspólna na dane dla Windowsa i Ubuntu, jest dowiązanie tak że /home/grzesiek/dane == /media/hdc5/dane
- hdc8 - ext3 , pusta - czeka na Gentoo chyba, ale jak sobie z Ubuntu nie radzę to jeszcze poczeka,
- / - ext3 - cały ubuntu
// SWAP nie liczę.

Po kilku zmianach nie mogę nadal nic zrobić. Mam wyraźnie napisane że właścicielem wszystkiego w /media/hdc5/dane jest root. Robiłem już :
usermode -G admin -a grzesiek
i
adduser grzesiek admin
a później
sudo chown grzesiek:admin /
Ale po drodze było sporo kłopotów i dodatkowych zmian, że sma sie gubię.
Dwie ważne rzeczy - mam włączone zapisywanie na NTFS.
Poprzednio - przed formatem partycji z tym samym Ubuntu 7.04 miałem problemy (po jakimś czasie - może update) z tym co juz napisałem - gcc nie znajdował stdio.h
Zrobiłem naprawę jak w Windowsie (przez format + reinstall) i nie pomogło.

Zatem czekam na porady jak to można zrobić według standardów Linux'a i z góry dziekuje :-) uprzedzam lojalnie że nie jestem za bardzo zorientowany w Ubuntu i Linux'ach ogólnie i proszę o proste porady.

: 28 wrz 2007, 23:29
autor: px33
Dodaj atrybut wykonywalności do pliku, najprościej

Kod: Zaznacz cały

chmod 777 plik

: 29 wrz 2007, 00:11
autor: G+
Dzięki za szybki odzew :-)

Sprawdziłem prawa plików i wychodzi że wszystkie są 777. Skompilowałem prosty program i zmieniłem jego uprawnienia, ale nadal nic, nawet z sudo. Efekty widać niżej:

Kod: Zaznacz cały

grzesiek@grzesiek-desktop:~/dane/programowanie/c$ gcc -c pamiętam.c -o pamiętam.out
grzesiek@grzesiek-desktop:~/dane/programowanie/c$ /home/grzesiek/dane/programowanie/c/pamiętam.out
bash: /home/grzesiek/dane/programowanie/c/pamiętam.out: nie można wykonać pliku wykonywalnego
grzesiek@grzesiek-desktop:~/dane/programowanie/c$ chmod 777 /home/grzesiek/dane/programowanie/c/pamiętam.out
grzesiek@grzesiek-desktop:~/dane/programowanie/c$ /home/grzesiek/dane/programowanie/c/pamiętam.out
bash: /home/grzesiek/dane/programowanie/c/pamiętam.out: nie można wykonać pliku wykonywalnego
grzesiek@grzesiek-desktop:~/dane/programowanie/c$ sudo /home/grzesiek/dane/programowanie/c/pamiętam.out
Password:
/home/grzesiek/dane/programowanie/c/pamiętam.out: 1: Syntax error: word unexpected (expecting ")")
grzesiek@grzesiek-desktop:~/dane/programowanie/c$ 

: 29 wrz 2007, 00:38
autor: kwalo
G+, jeśli kompilujesz i podajesz opcję -c do kompilatora, to w efekcie nie otrzymujesz pliku wykonywalnego, ale tzw. object file, czyli plik zawierający kod maszynowy, ale nie będący plikiem wykonywalnym. Musisz to jeszcze zlinkować do pliku wykonywalnego. Zrobisz to poleceniem:

Kod: Zaznacz cały

gcc -o pamietam pamietam.o
W wyniku otrzymasz plik wykonywalny, który będziesz mógł odpalić. Nie ma potrzeby dodawania jakichkolwiek uprawnień. Kompilator zrobi to za Ciebie.

: 29 wrz 2007, 19:31
autor: G+
Wielkie dzięki kwalo ! Programy mi już działają :-) a już było blisko poddania się. Co prawda mi linkowanie wychodzi po napisaniu osobno obu komend w tej postaci:

Kod: Zaznacz cały

grzesiek@grzesiek-desktop:~$ gcc -c hello.c 
grzesiek@grzesiek-desktop:~$ gcc hello.o -o hello.out  
Jeszcze raz dzięki.

: 03 paź 2007, 13:45
autor: kwalo
Jeśli kompilujesz program, który składa się z jednego pliku, to możesz to zrobić jednym poleceniem:

Kod: Zaznacz cały

gcc -o program program.c
Wtedy kompilator wykona wszystkie te operacje za jednym zamachem. Jeśli piszesz większe programy, to warto się zainteresować programami, które automatycznie kompilują i linkują wszystkie programy. Najpopularniejszym takim programem jest oczywiście make, ale scons uważam za wygodniejszy. Wystarczy, że w katalogu z źródłami stworzysz plik o nazwie SConstruct, a w treści wpiszesz coś takiego:

Kod: Zaznacz cały

env = Environment()
env.Program('program', ['plik1.c', 'plik2.c', 'plik3.c'])
Potem kompilujesz, poleceniem scons. Oczywiście to tylko podstawy, sam program zapewnia znacznie więcej, ale o tym w dokumentacji.

Odp: Brak uprawnień do wykonywania programów i otwierania plików.

: 02 gru 2008, 20:48
autor: Mariusz_sky
Witam,
mam bardzo podobny problem, dlatego proszę o pomoc w następującej sprawie. Mianowicie od niedawna zacząłem ambitnie uczyć się programować w C#. Przerabiam lekcja po lekcji i na koniec wykonuje ćwiczenia (na platformie monodevelop). Do wczoraj .... wszystkie programy (te napisane przeze mnie ) przestały mi działać. Bezlitosny system wypisuje tylko:
"...
bash: ./obliczsilnie.exe: nie można wykonać pliku wykonywalnego
..."

Dodam tylko że oczywiście uprawnienia pliku zmieniałem- jednak bez skutku.
Z góry dziękuje za każdą pomoc.

Odp: Brak uprawnień do wykonywania programów i otwierania plików.

: 03 gru 2008, 01:48
autor: deallas

Kod: Zaznacz cały

mono obliczsilnie.exe
??

Odp: Brak uprawnień do wykonywania programów i otwierania plików.

: 03 gru 2008, 22:10
autor: Mariusz_sky
deallas pisze:

Kod: Zaznacz cały

mono obliczsilnie.exe
??
Dzięki deallas,
tez znalazłem odpowiedz na necie. Nie mniej jednak dzięki za pomoc.