Co oznacza „chmod 666”?

47

Używam Linuksa. Co to znaczy chmod 666?

Seno
źródło
28
alias, polecenie szatana.
Moab
6
Jeśli ci to przeszkadza (lub jeśli nie możesz zapominać o tych liczbach), możesz również zapisać to jako chmod a=rw.
starblue
bezużyteczne polecenie, ponieważ nie podano trzeciego argumentu ^^
kokbira
może także powodować błędy w zabezpieczeniach (wszyscy użytkownicy mogą zapisywać plik / folder) lub bezużyteczne uprawnienia do plików / folderów
kokbira

Odpowiedzi:

112

chmod polecenie zmień atrybuty z pliku / folderu:

  • chmod 666 file/folder oznacza, że ​​wszyscy użytkownicy mogą czytać i zapisywać, ale nie mogą wykonać pliku / folderu;
  • chmod 777 file/folder zezwala na wszystkie działania dla wszystkich użytkowników;
  • chmod 744 file/folderpozwala tylko użytkownikowi (właścicielowi) wykonywać wszystkie czynności; grupa i inni użytkownicy mogą tylko czytać.

    permission to:  user(u)   group(g)   other(o)     
                    /¯¯¯\      /¯¯¯\      /¯¯¯\
    octal:            6          6          6
    binary:         1 1 0      1 1 0      1 1 0
    what to permit: r w x      r w x      r w x
    
    binary         - 1: enabled, 0: disabled
    
    what to permit - r: read, w: write, x: execute
    
    permission to  - user: the owner that create the file/folder
                     group: the users from group that owner is member
                     other: all other users
    

Alternatywnie możesz wykonać polecenie z bardziej intuicyjną składnią, bez potrzeby myślenia w systemie binarnym lub ósemkowym (ale znajomość składni numerycznej jest bardzo ważna): chmod u=rw, g=rw, o=rw file/folder

Pamiętaj, że zmiany uprawnień za pomocą chmodpolecenia wymagają co najmniej 3 argumentów, więc chmod 666nic nie robi bez jawnego pliku / folderu do zmiany uprawnień.

Należy również krytykować, czy nie powoduje niepewnych problemów lub po prostu, jeśli jest to bezużyteczna zmiana uprawnień, ponieważ chmod 666pozwoli na zapis pliku / folderu do wszystkich, a wykonanie do żadnego.

kokbira
źródło
5
Tylko to jest „ósemkowe”, a nie „dziesiętne”. W każdym razie +1.
Ben Voigt,
1
Trzeci punkt wymieniony w pierwszym poście jest niepoprawny - chmod 711 zezwala tylko właścicielowi na wykonywanie wszystkich działań, grupy i inne mogą tylko czytać! [Wprowadź opis obrazu tutaj] [1] To jest tabela dla rwx dla ósemkowego rwx 000 001 010 011 100 101 110 111 Liczba ósemkowa 001, lub 1 oznacza uprawnienie do wykonywania Ośmiołowa liczba 7, 111 oznacza odczytanie zapisu i wykonanie uprawnienia, stąd 711 oznacza, rwx dla właściciela i x dla grup i innych.
3
I tak wynosi tylko 7, więc w tym przypadku nie ma różnicy między liczbami ósemkowymi i dziesiętnymi. : /
Rob
tak, @Yash, a po 1 roku, 2 miesiącach i 18 dniach po oryginalnym poście ktoś zobaczył ten błąd :) Na przykład poprawię go na 744.
kokbira
1
@KyleVassella, ownerjest właścicielem pliku lub folderu, zwykle tym, który go utworzył. groupto grupa użytkowników powiązanych z tym plikiem lub folderem, zazwyczaj grupa, w której znajduje się właściciel. Wyobraźcie sobie, że jestem rootbira, a mój groop to rootusers, a ty też jesteś w tej grupie, a wszyscy inni członkowie forum SU są w innej grupie. Jeśli utworzę plik i zrobię z chmod 750, czytam, piszę i wykonuję, ty tylko czytasz i wykonujesz, a użytkownicy SU nic nie zrobią - to nasza tajemnica ¬¬
kokbira
7

Mówiąc wprost: sprawia, że ​​właściciel pliku, grupa właściciela pliku i wszyscy inni użytkownicy mogą używać pliku do odczytu i zapisu (wszystkie). Stosowany w stosunku do katalogu pozwala każdemu czytać (pobierać listy zawartości plików) katalogu i pisać (tworzyć, edytować pliki w katalogu), ale nie uruchamiać plików z katalogu.

Aby uzyskać bardziej szczegółowe informacje o tym, jak chmoddziała, zapoznaj się z tym przydatnym samouczkiem .

Ian C.
źródło
2
... Czy nie masz na myśli, że wszyscy mogą czytać / zapisywać pliki, ale nie wykonywać ich, i czy wszyscy mogą czytać / zapisywać pliki w katalogu, ale nie mogą wyświetlać wszystkich plików?
Earlz
2
to, co mówi @earlz, a także zapis w katalogu nie oznacza, że ​​możesz tam edytować pliki (zapis perms na pliku), ale oznacza jedynie, że możesz tworzyć nowe wpisy (katalogi, pliki, dowiązania symboliczne itp.). Miło z twojej strony, że wspominasz o reżimach kompletności, ale 666 nie ma sensu w reż. nigdy nie wyeliminowałbyś x dla właściciela.
Rich Homolka
1
@Ellz: dzięki za to. Zawsze zapominam, co 666 robi dla reż., Ponieważ cóż, nigdy nie ustawiłem rw- dla użytkownika w reż. :)
Ian C.
7

Jak wspomniano w innych odpowiedziach, chmod oznacza tryb zmiany. Wpływa na uprawnienia do odczytu, zapisu i wykonywania dla właściciela, grupy i innych kategorii użytkowników. Liczby występujące po poleceniu (w tym przypadku 666) wskazują, w jaki sposób modyfikowane są te uprawnienia do pliku, na którym uruchomiono polecenie (w przypadku 666 oznacza to, że właściciel, grupa i inni mają uprawnienia do odczytu i zapisu, ale nie mają uprawnień do wykonywania) .

Zmieniając liczby na różne wartości, skutecznie zmieniasz uprawnienia do pliku. Link, o którym wspomniałem powyżej, zawiera małe narzędzie do określania, jakie wartości należy wprowadzić, aby uzyskać plan uprawnień, którego szukasz. Omówiono także opcje przełączania dostępne dla polecenia i kilka przykładów, które pomogą ci lepiej zrozumieć, jak to działa.

MaQleod
źródło
1
To świetna strona. To idzie w moich zakładkach. Dzięki!
Kirk,
5

Komenda chmod (w skrócie od trybu zmiany) to komenda uniksowa, która pozwala operatorowi powiedzieć systemowi, jaki (lub mały) dostęp powinien mieć do pliku. Polecenie chmod 666oznacza, że ​​wszyscy użytkownicy będą mieli uprawnienia do odczytu i zapisu.

Seno
źródło
2

Jeśli twoje pytania dotyczą raczej części 666 niż części chmod, odsyłam cię do The Linux Documentation Project, gdzie jest dobre wyjaśnienie, jak działają uprawnienia do plików w systemie Linux.

Kościół
źródło