Uprawnienia chmod, umask i profile

Światła []

Ince S GNU / Linux jest dostępny z bogatym interfejsem graficznym, takie jak Gnome lub KDE, jeśli musimy zmienić uprawnienia dostępu do plików lub katalogów zazwyczaj zrobić za pomocą arkusza właściwości dla menedżera plików. , Ale czasami okazuje się, że podajemy kilka stylu oświadczenie, zmienić uprawnienia na 755 "lub" Załóż maskę 022 "Ale co to jest o 755 022? Lub byliśmy nieco zaskoczony, gdy w Ubuntu, widzimy, że możemy przeczytać domowe użytkowników innych katalogów Jak to możliwe?

Przyjmuje się następujący katalog:

  -l jdoe @ ubuntu: ~ $ ls-l
 -07-05 1 :05 midirectorio drwxr-xr-x 2 jdoe MyGroup 2008 -07 do 05 stycznia 4096: 05 mydirectory
 jdoe migrupo 12 2008 -07-05 1 : 10 test -Rw-r - r - 1 jdoe MyGroup -07 do 05 grudnia 2008 1: 10 test 

Mamy jeden plik o nazwie "test", tworzone przez nas, które zostały podane, domyślnie uprawnienia rw-r--r-- i mydirectory katalogu "również z uprawnień domyślnych rwxr-xr-x .

Należy pamiętać, że zapominamy o pierwszą literę lub skryptu serii. W przypadku pliku, myślnik "-" i katalogu "d". Pierwszy znak ma znaczenie poza uprawnieniami, i wskazuje rodzaj wejścia.

Pierwsze trzy znaki (-rw) stanowią uprawnień użytkownika, który jest właścicielem pliku (jdoe), trzy (r -) w grupie, do której należy plik (MyGroup), a ostatnie trzy (r -) do reszty użytkowników.

Z kolei uprawnienia przypisane są trzy: odczyt / odczyt (r), zapisu i zapisu (w) i wykonywania / wykonanie (x). Jak zmysły, jeśli skrypt w danym miejscu oznacza, że użytkownik lub grupy zainteresowanych użytkowników, nie ma takich uprawnień. Więc członkowie grupy "MyGroup" (r - -) tylko prawa do odczytu, ale nie pisz lub uruchomić jako łącznik znajduje się w miejscu "w" i "x".

Trochę arytmetyki binarnej

Take zezwoleń i zastąpić "0" i skrypty dla "1" każdy list, który pojawia się w miejscu i do konwersji na binarne dziesiętny ósemkowa (tylko trzy bity może stanowić od 0 do 7). Uprawnienia do plików i katalogów, będziemy w następujący sposób:

Wpływa na Zezwolenie Podwójny Ósemkowy
użytkownik rw- 110 2 2 +2 1 +0 = 6 644
grupa r - 100 2 2 +0 +0 = 4
reszta r - 100 2 2 +0 +0 = 4
Wpływa na Zezwolenie Podwójny Ósemkowy
użytkownik rwx 111 2 2 +2 1 +2 0 = 7 755
grupa rx 101 2 2 +0 +2 0 = 5
reszta rx 101 2 2 +0 +2 0 = 5

Uproszczenia

Ósemkowy Uprawnienia
0 - - -
1 - - X
2 - W -
3 - Wx
4 r - -
5 r - x
6 rw -
7 rwx

Tak naprawdę nie potrzeba do tego obliczenia za każdym razem chcesz wiedzieć numerycznej reprezentacji pozwala; jest łatwy do zapamiętania przez mało używamy notacji.

Innym prostym sposobem sprawdzić, czy patrzymy na załączonej tabeli, jest jeden na uwadze, że 4, to odczytu, 2 na 1 na piśmie i wykonania. Więc jeśli mamy do udzielenia zgody na czytanie i pisanie to będzie: 4 +2 = 6. Jeżeli natomiast być przyznana odczytu i wykonania 4 +1 = 5.

Najczęściej uprawnienia są 755, 750, 644 i 640. Licencji 777 jest "niebezpieczne" i dajemy wszystkie uprawnienia dla wszystkich.

Modyfikacja uprawnień

Komenda do zmiany uprawnień jest chmod . Jak prawie wszystkie polecenia * NIX jest mój elastyczne. Nie chcąc zrobić kompleksowy tutorial, zobaczyć niektóre z ich zastosowań:

Załóżmy, że plik utworzony test na początku, to był skrypt i chcesz przyznać uprawnienia do wykonywania do użytkownika i grupy, i usunąć odczytu dla innych użytkowników.

Jednym ze sposobów całkowicie na nowo zdefiniować uprawnienia do pliku: To jest "długa", ale bardziej intuicyjny

  =rwx, g =rx, o = test chmod u = rwx, g = rx, o = test 

Wariant tej formy jest tylko odpowiednie zmiany do pierwotnego stanu:

  chmod ug + x, lub test 

Czyli "dodaj" (+) prawo wykonania dla użytkownika (u) i grupy (g), i "odjąć" (-) prawa do odczytu dla innych użytkowników (o)

Ale jest to najszybszy sposób:

  test chmod 750 test 

We wszystkich trzech przypadkach wynik jest ten sam:

  jdoe migrupo 12 2008 -07-05 02: 15 test -Rwxr-x --- 1 jdoe MyGroup -07 do 05 15 grudnia 2008 02: test 

Jako drugi przykład przypuśćmy, że chcemy cofnąć zezwolenie na odczyt i wykonanie katalogu mydirectory oraz wszystkie pliki i katalogi, które w niej innych użytkowników.

  o-rx midirectorio chmod-R o-rx mydirectory 

Chmod-R mówi do operacji rekurencyjnie na jego temat.

Maska praw

Na początku tworzymy plik w katalogu test i mydirectory, ale je tworzyć, nie muszą przydziela uprawnienia. System utrzymuje wartość o nazwie umask określa uprawnienia, domyślnie, za każdym razem tworzymy pliku lub katalogu. I mogą być zmienione w dowolnym momencie z polecenia umask .

Kiedy stworzyliśmy plik test z edytora tekstu, który chciał przypisać, spalić, o 666 pozwoleń. Czyli odczytu / zapisu dla wszystkich. Jednak wartość umask było 022. Wynikające z około 644 zezwoleń na plik.

Podobnie, gdy stworzyliśmy katalog z mkdir midirectorio System próbował przypisać pewne uprawnienia 777, czyli odczytu / zapisu / wykonania dla każdego. Ale spotkał się wcześniej maski (022) i zakończyła się około 755 pozwoleń na mydirectory.

Trochę logiki binarnej

Tej wartości umask nie binarnego maski, na próbach zapewnienia maksymalnego uprawnienia systemu:

 umask 022 000 010 010 000 010 010

 1's uzupełnienie umask na 111 101 101 111 101 101
 I (& &) 110 110 110 (666) 111 111 111 (777)
                              ------------ ------------
                              110 100 100 (644) 111 101 101 (755)

Lub, o wiele łatwiej, jak proste "odjęcie" uprawnień:

    666 777
    022 (-) 022 (-)
    ---- ----
    644 755

Ubuntu: umask w praktyce

Maska 022 jest to, że Ubuntu jest wstępnie skonfigurowane dla gdy użytkownik dodaje. Ta maska, jeśli wspólny system jest zbyt liberalny, ponieważ pozwala każdemu odczytu i wykonania plików z katalogów domowych innych użytkowników.

Możemy zmienić tą wartość w każdym czasie. Aby zapobiec odczytu / zapisu / wykonania dla innych użytkowników, uruchom po prostu:

  umask 027 

Wartość ta będzie nadal działać, aż do sesji użytkownika, i jest ważne dla plików i katalogów w start-upy, ale zostanie przywrócony do 022 następnym razem łączymy i nie modyfikuje plików i katalogów na profilu użytkownika już utworzony.

Do "poprawnego" istniejące profile mogą być stosowane, na przykład, jeśli użytkownik "jdoe"

  o-rwx / home / jdoe chmod-R o-rwx / home / jdoe 

I edycji pliku /home/jdoe/.profile odkomentować i zmienić umask 027 , aby stały się scenerią przyszłości. Mimo, że ta zmiana wpłynie tylko użytkownik "jdoe.

Więc, że odtąd wszyscy nowi użytkownicy są tworzone bez odczytu / zapisu / wykonania dla wszystkich:

  • Wspólne Edytuj profil /etc/profile i wprowadzić te same zmiany: umask 027
  • Edycja /etc/adduser.conf i modficamos: DIR_MODE=0750 . Dostosowanie to nie jest absolutnie konieczne i będzie to zrobić, to nie możemy nawet wejść do katalogu domowego użytkownika z cd

Należy pamiętać, że cuaquier użytkownik może zastąpić tę wartość umask, zarówno z linii poleceń lub modyfikacji w swoim $HOME/.profile , bez zgody administratora.

Możemy znaleźć chmod lub wartości umask z czterech cyfr. Np. umask 0022. Pierwsza cyfra reprezentuje trzy bity specjalnych zezwoleń, które nie traktują o, które są wykorzystywane w niewielkim stopniu w normalnej pracy.

Jeśli chcesz wypowiedzieć się na temat tej strony to zrobić w prezentacji wejścia .