[+] rbash - możliwo
[+] rbash - możliwość wykonywania skryptów
Ustawiłem powłokę rbash dla testowego użytkownika.
Dałem mu dostęp do ls, more i nano.
Chciałbym dać też temu użytkownikowi możliwość wykonania jednego skryptu.
Skrypt jest w innej powłoce (bash) i ma prawa 7771.
Oczywiście w skrypcie jest cała masa poleceń z powłoki bash innych niż te z rbash.
Jak można umożliwić wykonanie takiego skryptu?
Dałem mu dostęp do ls, more i nano.
Chciałbym dać też temu użytkownikowi możliwość wykonania jednego skryptu.
Skrypt jest w innej powłoce (bash) i ma prawa 7771.
Oczywiście w skrypcie jest cała masa poleceń z powłoki bash innych niż te z rbash.
Jak można umożliwić wykonanie takiego skryptu?
Z pierwszego i trzeciego linka korzystałem przy ustawianiu rbash-a. Natomiast w środkowym jest faktycznie coś co wygląda na to czego szukam:
A polecenia w skrypcie są takie do których nie chcę by użytkownik miał po prostu dostęp.
Jak je dodam do rbasha to tak jakbym dał użytkownikowi prawa roota co właśnie chcę uniknąć.
Tylko pomysłu nie mam jak to zastosować. Do każdej komendy w skrypcie dodać +r (?), szkoda że przykładu tam nie ma.turning off restricted mode with set +r or set +o restricted.
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed, rbash
turns off any restrictions in the shell spawned to execute the script.
A polecenia w skrypcie są takie do których nie chcę by użytkownik miał po prostu dostęp.
Jak je dodam do rbasha to tak jakbym dał użytkownikowi prawa roota co właśnie chcę uniknąć.
Nie bardzo kumam o co Ci chodzi.
Dodasz +r to tego skryptu to uzytkownik bedzie mógł go wykonywać o ile ma prawa do wykonywania tego pliku jak w zwykłym bashu. Jeśli w skrypcie masz polecenia, których nie chcesz aby ten uzytkownik mógł wykonywać to nie możesz mu pozwolić wykonać skryptu w ogóle, albo przerobić skrypt na taki, który będzie bezpieczny do wykonania. Jeśli chcesz aby będąc w rbash uzytkownik mógł wykonać skrypt z bez opcji +r to musisz w rbash udowstępnić mu te polecenia.Chciałbym dać też temu użytkownikowi możliwość wykonania jednego skryptu.
To jeszcze sobie sprawdź:" pisze:Natomiast w środkowym jest faktycznie coś co wygląda na to czego szukam:
Kod: Zaznacz cały
man rbash
man bash
Przeczytałem to, ale mimo wszystko nie rozumiem. Moje czytanie ze zrozumieniem tego tekstu jest jak widać ograniczone.
oto liczne próby wykorzystania "+r":edycja passwd (użytkownik testowy2a nie może się zalogować):
edycja skryptu:
Dodam, że użytkownik ma ten skrypt dodany poprzez:
oto liczne próby wykorzystania "+r":
Kod: Zaznacz cały
-rbash-3.2$ ./usr/bin/skrypt.bash +r
-rbash: ./usr/bin/skrypt.bash: restricted: cannot specify `/' in command names
-rbash-3.2$ +r ./usr/bin/skrypt.bash
-rbash: +r: command not found
Kod: Zaznacz cały
[root@linux root]# ln -s /root/skrypt.bash +r /home/testowy2a/usr/bin/test.bash
ln: cel `/home/testowy2a/usr/bin/test.bash' nie jest katalogiem
[root@linux root]# ln -s /root/skrypt.bash /home/testowy2a/usr/bin/test.bash +r
ln: cel `+r' nie jest katalogiem
Kod: Zaznacz cały
testowy2a:x:1212:100::/home/testowy2a:/bin/rbash +r
Kod: Zaznacz cały
#!/bin/bash +r
Kod: Zaznacz cały
-rbash-3.2$ ./usr/bin/skrypt.bash
-rbash: ./usr/bin/skrypt.bash: restricted: cannot specify `/' in command names
Kod: Zaznacz cały
[root@linux root]# ln -s /root/skrypt.bash /home/testowy2a/usr/bin/skrypt.bash
Coś się wydarzyło, ale jak się okazuje jednak w rbash pewnie się nie uda tego zrobić.
Jak napisałem, w skrypcie tym są polecenia, które nie mogą być normalnie przydzielone użytkownikowi jak choćby ,,passwd'', czy ,,useradd'' z różnymi parametrami.
Tak więc kolejny problem to
I tak będzie dla wszystkich programów użytych w skrypcie, które mogą być użyte tylko w tym skrypcie, a nie normalnie przez użytkownika, czyli użytkownik powinien całkiem słusznie dostać odpowiedź jak sam używa poleceń:
A jak używa skryptu, do którego ma dostęp to powinno się to udać wykonać.
Jak napisałem, w skrypcie tym są polecenia, które nie mogą być normalnie przydzielone użytkownikowi jak choćby ,,passwd'', czy ,,useradd'' z różnymi parametrami.
Tak więc kolejny problem to
Kod: Zaznacz cały
rbash-3.2$ skrypt.bash
/home/testowy2a/usr/bin/skrypt.bash: line 24: cat: command not found
Kod: Zaznacz cały
rbash-3.2$ cat
rbash: cat: command not found
rbash-3.2$ cd
rbash: cd: restricted
A to nie jest tak, że:
Po głębokich przemyśleniach:
Hura. Działa
.
Dziękuję.
Dopisanie linijki w /etc/sudoers:
dodanie dowiązania do sudo:
zaś plik skrypt.bash może mieć standardowy początek
bez parametru -e.
- -na skrypcie ustawiony bit UID oraz GUID,
- -właściciel i grupa pliku skryptu to root,
- -użytkownik testowy2a ma prawa uruchomienia tego pliku (czyli 7776).
Po głębokich przemyśleniach:
Zgadza się, zgadza się, zgadza się!" pisze:Tak, ale jeśli Cię dobrze rozumiem, to chyba normalne, bo w zwykłym bashu ten użytkownik też nie miałby dostępu do niektórych poleceń systemowych. Musisz skonfigurować sudo dla tego użytkownika.
Hura. Działa

Dziękuję.
Dopisanie linijki w /etc/sudoers:
Kod: Zaznacz cały
testowy2a ALL=/root/skrypt.bash
Kod: Zaznacz cały
ln -s /usr/bin/sudo /home/testowy2a/usr/bin/sudo
Kod: Zaznacz cały
#!/bin/bash