Strona 1 z 2

Set UID bit

: 26 stycznia 2015, 21:07
autor: Scooty
Hej,

mam pytanie dotyczące bita uprawnień "setUID" oraz setGID


wszędzie na internecie jest wytłumaczone, że służy on do uruchamiania programu na poziomie uprawnień jego właściciela.(zmienia jego efektywnego użytkownika)


więc tworzę 2 pliki:


/tmp/setuid
#!/bin/bash
cat /tmp/test

oraz /tmp/test który zawiera
I CAN READ IT

wynik komendy ls -l /tmp
-rwsrwxrwx 1 root root 26 sty 26 20:51 setuid
-rw-r----- 1 root root 14dsdasasty 26 20:51 test

i gdy wpiszę /tmp/setuid widzę:

scooty@no-restrictions:~$ /tmp/setuid
cat: /tmp/test: Brak dostępu

mógłby mi ktoś wytłumaczyć jak w praktyce działa ten bit uprawnień oraz jak powinienem go poprawnie użyć? Czytałem o tym dużo na internecie, ale dalej nie potrafię go zastosować w praktyce.


z góry dzięki za odpowiedzi! ;)

: 26 stycznia 2015, 22:21
autor: f1.micro
Działa tak jak tego oczekujesz ... natomiast nie dotyczy to skryptów powłoki (#!...).

Napisz sobie na szybko program w C/C++ który robi sleep(100). W trakcie uruchomienia zerknij na procesy (ps -ef | grep NAZWA_PLIKU). Właścicielem będzie root.

: 27 stycznia 2015, 11:25
autor: Scooty
dzieki wielkie za pomoc ;) w takim razie jest jakas mozliwosc uruchomienia bashowego skryptu z uprawnieniami jego wlasciciela?

: 27 stycznia 2015, 11:39
autor: f1.micro
http://stackoverflow.com/questions/6462 ... -c-program
Wyjaśnienie jak to zrobić.

Właściwie prościej możesz sprawdzić, niż wczoraj napisałem:

Kod: Zaznacz cały

cp /bin/sleep ~/spij
sudo chown root. ~/spij
sudo chmod u+s ~/spij
~/spij 60 &
ps -ef | grep spij
id -un

: 29 stycznia 2015, 18:30
autor: Scooty
cześć ;) sorry że tak długo się nie odzywałem ale nie bardzo miałem czas.

dzięki wielkie za wyjaśnienie, teraz już rozumiem ;) no prawie...

na internecie znalazłem kompilator basha(http://www.datsi.fi.upm.es/~frosal/)

gdy odpalam tą binarkę niestety linux też nie zwraca uwagi na bit setuid.

czy mogę jakimś innym sposobem tego użyć na skryptach powłoki? w czym napisane są programy w /usr/bin i /bin że reagują na setuid?

: 29 stycznia 2015, 19:36
autor: Yampress
Sa plikami nie tekstowymi a binarnymi. Otwórz sobie jakiś plik edytorem i popatrz. Tylko jakiś mały plik

: 29 stycznia 2015, 19:43
autor: Scooty
Yampress, tak oczywiście zauważyłem to ;)

ale wyżej napisałem że znalazłem kompilator do basha, który tworzy ze zwykłego skryptu powłoki plik binarny, taki jakie znajdują się w /bin.

jednak setuid na niego nie działa, nie wiem dlaczego.

: 29 stycznia 2015, 19:54
autor: Yampress
a jak nadajesz setuid?

i jakie prawa chmod ma plik wcześniej przed nadaniem setuid ?

: 29 stycznia 2015, 22:19
autor: Scooty
przed:
-rwx-wx--x 1 root root 10332 sty 29 22:14 sleep.x
po wykonaniu 'sudo chmod a+s sleep.x':
-rws-ws--x 1 root root 10332 sty 29 22:14 sleep.x
i drugi sposób po wykonaniu 'sudo chmod u+s sleep.x':
-rws-wx--x 1 root root 10332 sty 29 22:14 sleep.x

: 30 stycznia 2015, 17:02
autor: Yampress
A jaki masz /etc/fstab?

Coś dodawałeś
nodev, nosuid, and noexec?