No niestety, zostawienie takiego pliku w katalogu
użytkownika jest katastrofalne.
Podałem takie rozwiązanie, bo tylko tak można (przynajmniej tak mi się zdaje) zrobić usuwanie i dodawanie modułu psmouse bez hasła.
Niestety jak zauważyłeś, jest to niebezpieczne jeśli ktoś zmieni zawartość takiego skryptu.
Takie coś zaleca się tylko wtedy jeśli wiesz, że nikt nieupoważniony nie ma dostępu do tego pliku.
Np. zastosowanie: pozwolić jakiemuś użytkownikowi zrobić aktualizacje systemu bez dawania mu uprawnień admina.
Panel www administracyjny wymaga dostępu do plików/poleceń systemowych (bez programów z setuid - wymagają uprawnień admina - sudoers) nie zrobisz tego.
Dlatego takie pliki powinny mieć stosowne uprawnienia. Ale właśnie. Jak ktoś się włamie na konto użytkownika i domyśli się, że istnieje taki plik z takim uprawnieniem to szybko zrobi sobie konto z uprawnieniami admina i koniec z nami. Dlatego robiąc wpisy w sudoers miejmy pewność, że nikt nie może wejść na nasze konto. Bo inny użytkownik z tego samego systemu nie będzie miał uprawnień uruchomienia pliku gdyż nie jest jego właścicielem.
Wracając do pytania. Niestety przetestowałem.
Bez bitu grupy spokojnie uruchomisz przez:
Tylko musisz być właścicielem, lub należeć do grupy z uprawnieniami (mieć uprawnienie do wyświetlenie poleceniem cat /ścieżka_do_pliku).
Tak więc zabranie samego x nic nie da, jak skorzysta z bash/sh przed nazwą skryptu.
Kod: Zaznacz cały
silver@silver-laptop:~$ ls -al aaa
-rw-r--r-- 1 silver silver 24 05-14 17:44 aaa
silver@silver-laptop:~$ cat aaa
#!/bin/bash
echo "asd"
silver@silver-laptop:~$ bash ./aaa
asd
silver@silver-laptop:~$ sh ./aaa
asd
tester@silver-laptop:~$ cd ../silver
tester@silver-laptop:~$ sh aaa
asd
Tak więc zabranie bitu x nie ratuje. Ale zabranie dostępu do katalogu ze skryptem już tak (musiałem pozwolić mu wejść do /home/silver aby mógł uruchomić, bez dostępu do /home/silver nie uruchomi.
Kod: Zaznacz cały
sh ../silver/aaa
sh: Can't open ../silver/aaa
Można też zabrać odczyt ,,x'' razem z ,,r'' to już załatwi sprawę (nie odbierając dostępu do katalogu).
Kod: Zaznacz cały
silver@silver-laptop:~$ ls -al aaa
-rw-r----- 1 silver silver 24 05-14 17:44 aaa
tester@silver-laptop:~$ bash ../silver/aaa
bash: ../silver/aaa: Brak dostępu
Ogólnie nie może mieć, żadnych uprawnień do uruchomienia i odczytania, a tym bardziej do zapisu.