2013-03-13 13 views
6

Kilka dni temu zdarzyło mi się ustawić uprawnienia nieprawidłowo podczas korzystania z php funkcję mkdir tak:Błędne uprawnienia ustawia lepki bit

mkdir("foldername", 777, true); 

Prawidłowy sposób jest asuming chcesz te rodzaje uprawnień:

mkdir("foldername", 0777, true); 

wiem, że nie powinno się używać na moich 777 plików lub folderów, ale to jest dla systemu bardzo zamkniętym, więc proszę nie utknąć w tej sprawie. Ponieważ nadchodzi zabawna (dziwna) część, przynajmniej dla mnie. Ponieważ zauważyliśmy, że coś było bardzo dziwne, gdy ten skrypt tworzył foldery. Osadzenia, które się ustawia, jest naprawdę dziwne, szczególnie dla użytkownika, który nie jest mocarnym linuxem, jak ja. Bo to, co widzimy, jest to, że uprawnienia utworzonych folderów zostanie ustawiony w ten sposób:

dr - - - - x - - t

Która jest dla mnie dziwne, ja nie słyszałem o lepki bit przed (the t), ale najwyraźniej jest ustawiony, gdy chcesz, aby ten plik był usuwany tylko przez root. Czy ktokolwiek wie, dlaczego PHP zachowuje się w ten sposób, czy nawet jest to problem PHP (naprawdę nie jest to problem, ponieważ wtedy jestem niewłaściwie używający tej funkcji), czy jest to coś, co nasz system * nix robi domyślnie w razie wątpliwości lub coś?

+0

Zazwyczaj 'mkdir ("foldername", 01777, true); 'ustawia lepki bit. Nie wiem, dlaczego właśnie 777 to ustawi. –

+2

Uprawnienia do plików zapisywane są w notacji ósemkowej (podstawa 8). 777 jest tam dziesiętnie i oznacza 01411 ósemkowy, który ustawia również lepki ... – Ihsan

Odpowiedz

4

Uprawnienia do pliku zapisane są w notacji ósemkowej (podstawa 8).

777 jest dziesiętny tam i to oznacza, 01411 ósemkowy który ustawia lepki jeden zbyt ...

1

Ktoś odpowiedział na to pytanie, a następnie usunął go, który jest smutny, bo mocno, że to było prawidłowe. Jeśli więc to przeczytasz, opublikuj tę odpowiedź jeszcze raz, a ja ją zaakceptuję.

Anyways wydaje się, że php tłumaczy decimal 777 do octal 1411 i że będzie ustawić uprawnienia do tego, co mam, a mianowicie:

Dr - - - - x - - t