Jak mogę wykonać plik, nie dając mu uprawnień (z chmod u+x
) do niego?
Jeśli spróbuję zaznaczyć pole wyboru „Zezwalaj na uruchamianie pliku jako programu”, znacznik ten zostanie natychmiast usunięty.
permissions
executable
kiri
źródło
źródło
Odpowiedzi:
Sprawdź własność pliku
Zrób to, zanim cokolwiek dalej (chyba że masz pewność, że jesteś właścicielem pliku).
Sprawdź i upewnij się, że jesteś właścicielem pliku, który próbujesz wykonać za pomocą jednej z następujących metod.
Graficzny
Wiersz poleceń
Wykonaj to polecenie w terminalu
You don't own the file
”, zobacz „Zmień własność pliku” poniżej.Zmień własność pliku
Wykonaj to polecenie w terminalu
Pliki wykonywalne
Odpowiedź znalazłem z komentarzem przez Lekensteyn na odpowiedź na pytanie o
chmod
na partycjach NTFS, który moim zdaniem zasługuje na swoje własne pytanie i odpowiedź, pełny kredyt Lekensteyn.Użyj tego polecenia dla plików wykonywalnych (podstawiając
/path/to/executable
poprawną ścieżkę):64-bitowe pliki wykonywalne:
32-bitowe pliki wykonywalne:
Jeśli powyższe nie działa (lub podnosi błędy nie znaleziono pliku), spróbuj użyć tego przed powyższym poleceniem
Wszystkie powyższe polecenia nie będą działać dla skryptów tekstowych (Bash, Python, Perl itp.), Patrz poniżej.
Sprawdź, czy program ma 64 lub 32 bity
Użyj tego polecenia, aby dowiedzieć się, czy plik wykonywalny ma bit 32 (
x86
) czy 64 (x86-64
)Jeśli to mówi
i386:x86-64
, to jest 64-bitowy. Jeśli mówii386
tylko, to jest 32-bitowy.Skrypty
W przypadku skryptów tekstowych (Bash, Python, Perl itp.) Należy użyć polecenia określonego w pierwszym
#!
wierszu pliku.Na przykład, jeśli pierwszy wiersz pliku to
następnie uruchom te polecenia w terminalu (zastępując
/path/to/file
poprawną ścieżką).jar
Pliki JavaW przypadku jar wykonywalnego Java, możesz po prostu użyć tych poleceń (zastępując
/path/to/jar
poprawną ścieżkę):Kiedy nie potrzebujesz
cd "$(dirname /path/to/file)"
Są to możliwe okoliczności, w których nie będziesz musiał używać
cd "$(dirname /path/to/file)"
przed uruchomieniem programu dowolną metodą: Jeśli przynajmniej jedna z nich jest prawdziwa, nie będziesz potrzebowaćcd
pierwsza.apt-get
)cd
(lub równoważny), aby przejść do ścieżki bezwzględnej przed wykonaniem jakichkolwiek operacji na plikach (przykładcd "$(dirname "$0")"
:)./
lub rozpoczynające się bez ukośnika)Jeśli nie masz pewności, dodaj
cd "$(dirname "$0")"
(lub odpowiednik) na początku skryptu (jeśli dotyczy) lub użyjcd "$(dirname /path/to/file)"
mimo to.źródło
Jeśli jest to skrypt powłoki, możesz go „pobrać” z innego skryptu powłoki, tj .:
W razie potrzeby „$ @” dołącza parametry wiersza poleceń.
To powiedziawszy, prawdopodobnie nie jest to najlepsze rozwiązanie podstawowego problemu, ale nie wiemy wystarczająco dużo o tym problemie, aby zaoferować alternatywy.
źródło
bash script $@