2013-03-13 17 views
6

Pochi giorni fa, mi è capitato di impostare le autorizzazioni a torto quando si utilizza la php funzione mkdir come questo:permessi errati imposta po 'appiccicoso

mkdir("foldername", 777, true); 

Il modo corretto è, asuming si desidera questo tipo di permesso:

mkdir("foldername", 0777, true); 

so che non dovrei usare 777 sul mio file o cartelle, ma questo è un sistema molto chiuso, quindi per favore non rimanere bloccati su quello. Perché qui arriva la parte divertente (strana), almeno, per me. Perché abbiamo notato che qualcosa era molto strano quando questo script creava cartelle. Le persecuzioni che vengono impostate sono davvero strane, specialmente per un utente non esperto di Linux come me. Perché ciò che vediamo è che le autorizzazioni delle cartelle create viene impostata a questo:

dr - - - - x - - t

che per me è strano, non avevo sentito parlare il bit appiccicoso prima (il t) ma apparentemente impostato quando si vuole rendere quel file rimovibile solo da root. Qualcuno sa perché PHP si comporta in questo modo, o anche se è un problema di PHP (non è un problema, dato che sono io che uso la funzione erroneamente), o è qualcosa che il nostro sistema * nix fa di default quando è in dubbio o qualcosa?

+0

solito 'mkdir ("nomecartella", 01777, vero); 'imposta il bit adesivo. Non sono sicuro del motivo per cui solo 777 l'avrebbe impostato. –

+2

Le autorizzazioni per i file sono in notazione ottale (base 8). 777 è decimale lì e significa 01411 ottale che ne appende anche uno appiccicoso ... – Ihsan

risposta

4

Le autorizzazioni file sono in notazione ottale (base 8).

777 è decimale lì e significa 01411 ottale che imposta il appiccicoso uno troppo ...

1

Qualcuno risposto a questa domanda e poi cancellato, il che è triste, perché credo fortemente che fosse corretto. Quindi se leggi questo, per favore pubblica di nuovo la risposta, e io accetterò.

In ogni modo sembra che php traduce il decimal 777-octal 1411 e che impostare le autorizzazioni per quello che ho ottenuto, e cioè:

dr - - - - x - - t