Cysiaczek
28.11.2006, 17:00:43
Witam
W jaki sposób mogę zmienić użytkownika podczas wykonywania skryptu?
Chcę wykonać chmod na katalogu, który należy do innego użytkownika.
Od razu zaznaczę, że wiem jak to zrobić z poziomu php przez funkcje chmod() lub przez połączenie ftp, ale nie wchodzi to w grę.
Kombinowałem coś z popen() i proc_open(), ale bez skutku, bo pojawiał się problem przekazania hasła do 'su' lub 'login' i na tym kończyła się moja zabawa :|
Czy ktoś z Was spotkał się z podobnym problemem?
Pozdrawiam.
UDAT
28.11.2006, 17:35:09
Spróbuj użyć sudo
dr_bonzo
28.11.2006, 17:44:25
echo "haslo" | su
? przejdzie?
Cysiaczek
29.11.2006, 11:42:23
Niestety ani sudo, ani propozycja dr_bonzo nie działają. Za słaby jestem z potoków w linuksie, żeby to rozgryźć ;(
Może inny pomysł? Ciągle googluje i nic :/
Pozdrawiam.
Bastion
29.11.2006, 12:05:31
Generalnie popularne są trzy pozycje ustawienia praw na plik za pomocą chmod
chmod XYZ plik (X - właściciel, Y - grupa, Z - inni)
np. chmod 777 plik (odczyt, zapis, exec dla wszystkich)
jest jeszcze jedna pozycja przed XYZ - dajmy na to A
chmod AXYZ skrypt.sh
gdzie w A
- 1 bit sticky (przyklejony - dotyczy katalogów)--- waga 1
- 2 bit ustawia GID (Group ID) przy wykonaniu --- waga 2
- 3 bit ustawia UID (User ID) przy wykonaniu --- waga 4
Przypuśćmy ze mamy skrypt.sh z prawami 755 (pełne prawa dla właściciela i odczyt+exec dla reszty)
Chcąc aby skrypt wykonał się na prawach właściciela pliku ustawiamy 3 bit A . czyli :
chmod 4755 skrypt.sh
Chcąc aby skrypt wykonał się na prawach zarówno właściciela pliku jak i grupy do której należy ustawiamy bit 2 i 3
chmod 6755 skrypt.sh
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.