Jak ustawić plik tak, aby był wykonywalny tylko dla innych użytkowników, ale nie do odczytu / zapisu, dlatego wykonuję coś z moją nazwą użytkownika, ale nie chcę podawać hasła. Próbowałem :
chmod 777 testfile
chmod a=x
chmod ugo+x
Nadal dostaję odmowę dostępu podczas wykonywania jako inny użytkownik.
linux
security
permissions
executable
c0mrade
źródło
źródło
Odpowiedzi:
Musisz mieć uprawnienia do odczytu i wykonywania skryptu, aby móc go wykonać. Jeśli nie możesz odczytać zawartości skryptu, nie możesz go również uruchomić.
źródło
W poprzednich stwierdzeniach jest połowa prawdy. Możesz skonfigurować skrypt, aby nie był czytelny dla użytkownika, ale nadal był wykonywalny. Proces ten jest nieco przeciągnięty, ale można go zrobić, robiąc wyjątek w / etc / sudoer, aby użytkownik mógł tymczasowo uruchomić skrypt jak sam, bez pytania o hasło. Przykład poniżej:
Niektóre skrypty, które chcę udostępnić użytkownikowi:
Utwórz skrypt powłoki, który wywołuje „somescript.pl” i zapisz go w / bin /:
OPCJONALNY KROK Utwórz dowiązanie symboliczne do somescript.sh w / bin /:
Upewnij się, że skrypt powłoki jest czytelny / wykonywalny dla użytkownika (brak dostępu do zapisu):
Zrób wyjątek w / etc / sudoer, dodając następujące linie:
DOWÓD W PUDDINGU:
Ta metoda powinna być lepsza niż próba zaciemnienia za pomocą
Filter::Crypto
lubPAR::Filter::Crypto
lubAcme::Bleach
która może zostać odwrócona przez określonego użytkownika. To samo dotyczy kompilowania skryptu do pliku binarnego. Daj mi znać, jeśli znajdziesz coś złego w tej metodzie. Bardziej zaawansowani użytkownicy mogą chcieć całkowicie usunąć sekcję User_Alias i zastąpić SCRIPTUSER '% groupname'. W ten sposób możesz zarządzać użytkownikami skryptu za pomocąusermod
polecenia.źródło
Jeśli zezwolisz innym użytkownikom na uruchomienie programu, będą mogli wiedzieć wszystko, co robi program, niezależnie od tego, czy plik programu jest czytelny, czy nie. Wszystko, co muszą zrobić, to wskazać debugger (lub program podobny do debuggera, taki jak
strace
). Binarny plik wykonywalny może działać, jeśli jest wykonywalny i nieczytelny (skrypt nie może, ponieważ interpreter musi być w stanie odczytać skrypt), ale nie zapewnia to żadnego bezpieczeństwa.Jeśli chcesz, aby inni mogli wykonywać Twój program jako czarną skrzynkę, nie pozwalając im zobaczyć dokładnie, co robi program, musisz dać swojemu skryptowi podwyższone uprawnienia: ustaw go jako bezpieczny dla użytkownika. Tylko root może używać narzędzi do debugowania w programach setuid. Zauważ, że pisanie bezpiecznych programów setuid nie jest łatwe i większość języków nie jest odpowiednia; zobacz Zezwalaj na setuid w skryptach powłoki, aby uzyskać więcej wyjaśnień. Jeśli masz zamiar napisać program setuid, zdecydowanie polecam Perla, który ma tryb (tryb skażenia), który wyraźnie ma na celu umożliwienie bezpiecznych skryptów setuid.
źródło
Możesz ustawić uprawnienia do plików za pomocą komendy chmod. Zarówno użytkownik root, jak i właściciel pliku mogą ustawiać uprawnienia do pliku. chmod ma dwa tryby, symboliczny i numeryczny.
Najpierw decydujesz, czy ustawisz uprawnienia dla użytkownika (u), grupy (g), innych (o), czy wszystkich trzech (a). Następnie albo dodajesz uprawnienie (+), usuwasz je (-), albo wymazujesz poprzednie uprawnienia i dodajesz nowe (=). Następnie decydujesz, czy ustawisz uprawnienia do odczytu (r), uprawnienia do zapisu (w) czy uprawnienia do wykonania (x). Na koniec powiedz chmod, które uprawnienia do pliku chcesz zmienić.
Oto kilka przykładów.
Wymaż wszystkie uprawnienia, ale dodaj uprawnienia odczytu dla wszystkich:
Po poleceniu uprawnienia do pliku będą następujące: -r - r - r--
Dodaj uprawnienia do wykonywania dla grupy:
Teraz uprawnienia do pliku to -r - r-xr--
Dodaj uprawnienia do zapisu i wykonywania dla właściciela pliku. Zwróć uwagę, jak możesz ustawić więcej niż jedno uprawnienie jednocześnie:
Następnie uprawnienia do plików będą następujące: -rwxr-xr--
Usuń uprawnienie do wykonywania zarówno od właściciela pliku, jak i grupy. Zwróć też uwagę, jak możesz ustawić je jednocześnie:
Teraz uprawnienia są następujące: -rw-r - r--
To jest szybkie odniesienie do ustawiania uprawnień do plików w trybie symbolicznym:
źródło
chmod
. To nie odpowiada na pytanie.