PDA

Visualizza la versione completa : Cambio utente da codice.


Squall22
23-11-2004, 09:36
Ciao a tutti...

in questi giorni sto pasticciando da paura con i permessi di linux, e siccome sembra non esserci modo di dire ad apache sotto quale utente girare, ho pensato, che forse, con la funzione system() di php(stesso di perl) fosse possibile cambiare utente, come si fa normalmente da shell con il comando $su root e poi miapassword. (ovviamente il problema che dando comandi da php con la funzione system(), non ho nessun permesso di scrittura perch apache gira con l'utente nobody, e non posso di certo dare a tutto / un chmod 777)


Da codice ho provato a fare

system("su root");
system("mia password");


ma sembra non funzionare, visto che ho gli stessi permessi di prima.



:fagiano: :stordita:

gianiaz
23-11-2004, 10:03
Squall approccio sbagliato, continua sulla via precedente.

ciao

Squall22
23-11-2004, 10:12
gi provato...


conclusione:

chown -R nobody:vmail /home/vmail
chmod -R 770 /home/vmail


e cos funziona perfettamente, si con l'utente nobody, che con gli utente del gruppo vmail scrivo dappertutto...


cmq il problema di nuovo lo stesso:se creo un file o una dir con l'utente vmail... se faccio ls -l vedo che la cartella creata ha vmail:vmail e rxw - rx - x.

se creo con l'utente nobody --> nobody:nogroup e rxw - rx -r.

e siamo punto e a capo perch con l'altro gruppo non scrivo dentro, e non posso neanche fare un chmod o chown.


Ora scrivo tutto in c e fanculo :nonlodire :dh: :dh:

gianiaz
23-11-2004, 10:33
Forse ti ho trovato la soluzione, prova a dare un occhio a quello che ho fatto nella mia home directory.

Ciao



gianiaz:/home/gianiaz# whoami
root
gianiaz:/home/gianiaz# mkdir Squall22
gianiaz:/home/gianiaz# ls -la Squall22/
totale 8
drwxr-xr-x 2 root root 48 2004-11-23 10:29 .
drwxr-xr-x 110 gianiaz gianiaz 7560 2004-11-23 10:29 ..
gianiaz:/home/gianiaz# chown gianiaz:www-data Squall22/
gianiaz:/home/gianiaz# ls -la Squall22/
totale 8
drwxr-xr-x 2 gianiaz www-data 48 2004-11-23 10:29 .
drwxr-xr-x 110 gianiaz gianiaz 7560 2004-11-23 10:29 ..
gianiaz:/home/gianiaz# chmod g+s Squall22/
gianiaz:/home/gianiaz# ls -la Squall22/
totale 8
drwxr-sr-x 2 gianiaz www-data 48 2004-11-23 10:29 .
drwxr-xr-x 110 gianiaz gianiaz 7560 2004-11-23 10:29 ..
gianiaz:/home/gianiaz# touch filediprova.txt
gianiaz:/home/gianiaz# ls -la filediprova.txt
-rw-r--r-- 1 root root 0 2004-11-23 10:29 filediprova.txt
gianiaz:/home/gianiaz# cd Squall22/
gianiaz:/home/gianiaz/Squall22# touch filediprova.txt
gianiaz:/home/gianiaz/Squall22# ls -la filediprova.txt
-rw-r--r-- 1 root www-data 0 2004-11-23 10:30 filediprova.txt
gianiaz:/home/gianiaz/Squall22#

Squall22
23-11-2004, 12:45
ho provato ma :master:


poi alla fine, il risultato stato sempre lo stesso...

l'utente vmail mi crea sempre cartelle con vmail:vmail e con peremssi di scrittura solo all'utente principale... e a quel punto, non posso pi eseguire il chmod ne il chown con l'utente vmail




Ho scritto un cazzo di codice c e l'ho compilato. Il problema in parte migliorato... se lo eseguo come root funziona alla grande... se lo eseguo sempre con system() da php, viene eseguito sempre come nobody e non funziona :cry:


Quindi, devo trovare il modo di eseguire questo programmino da root, ma fare in modo che php gli passi dei parametri :messner:

Squall22
23-11-2004, 12:47
una soluzione sarebbe usare delle tabelle temporanee di mysql e mettere lo script in cron... ma non so usare il c cos bene da poter interagire con un db...


ma un file di testo? :fagiano: :master:

Loading