środa, 5 kwietnia 2017

Uprawnienia do plików i folderów




Uprawnienia do plików i folderów

Tworzymy sobie folder „folderek” a w środku kolejny folder „folder1” oraz plik o nazwie „plik.txt”
Po wykonaniu komendy ‘ls – la’ (w skrócie ‘ll’) otrzymujemy coś takiego:
Najbardziej interesują nas 2 linijki:
A najbardziej to co jest z lewej strony czyli:
drwxrwxr-x
- rw-rw-r--

Uprawnienia folderów

Pierwsza literka „d” oznacza że mamy do czynienia z katalogiem (ang. directory)

drwxrwxr-x
kolejne trzy znaki czyli rwx odnoszą się do właściciela katalogu

drwxrwxr-x
kolejne trzy odnoszą się do grupy do której należy właściciel

drwxrwxr-x
trzy ostatnie to pozostali użytkownicy

uprawnienie ‘r’ to oczywiście odczyt czyli read
uprawnienie ‘w’ to oczywiście zapis czyli write
uprawnienie ‘x’ to oczywiście dostęp

jeżeli przypisujemy komuś prawo ‘rw’ to tak naprawdę trzeba mu przypisać prawo ‘x’. wtedy użytkownik posiada uprawnienia dostępu do katalogu oraz może wyświetlić jego zawartość i stworzyć w środku jakiś plik.

Możemy też nadać uprawnienia ‘r-x’ wtedy dana osoba morze wyświetlić zawartość katalogu.

Jednak możemy przypisać tylko uprawnienie ‘x’ czyli ‘--x' wtedy użytkownik nie widzi co znajduje się w katalogu a polecenie ‘ls –la’ nie wyświetli jego zawartości. Jeżeli użytkownik chce edytować jakiś plik (zakładamy że ma do tego uprawnienia) musi znać jego nazwę.


Uprawnienia plików
Przejdźmy teraz do kolejnej linijki czyli do:

- rw-rw-r--
Pierwszy minus oznacza że mamy do czynienia ze zwykłym plikiem.

Analogicznie jak w przepadku folderów:
- rw-rw-r--
kolejne trzy znaki czyli ‘rw-‘ odnoszą się do właściciela pliku

- rw-rw-r--
kolejne trzy odnoszą się do grupy do której należy właściciel

- rw-rw-r--
trzy ostatnie to pozostali użytkownicy

i oczywiście bardzo podobnie:
uprawnienie ‘r’ to odczyt czyli read
uprawnienie ‘w’ to zapis czyli write
uprawnienie ‘x’ to wykonywanie czyli execute

Polecenie chmod

Sprawę zmiany uprawnień możemy załatwić tak:
‘chmod o+w plik.txt’

Wtedy:
u – user
g – group
o – others
a – all

jeżeli jakieś uprawnienie dodajemy to korzystamy z ‘+’ a jeżeli odbieramy do z ‘-‘
w powyższym przekładzie dodaliśmy uprawnienie do zapisu dla pozostałych użytkowników.

Ale nie czarujmy się. To jest sposób dla lamerów. I jak chcecie być postrzegani jako informatycy to powinniście znać to:

‘chmod 776 plik.txt’

prawda że szybciej???? I że ładniej??? A za to jak tajemniczo ;)

ok to zanim odpowiem co to polecenie zrobiło to może o tych cyferkach.

Mając takie uprawnienia:
- rw-rw-r--
Możemy je rozpisać binarnie przyjmując zasadę, że jeżeli uprawnienie jest to będzie jedynka logiczna ‘1’ , a jeżeli uprawnienia nie ma to będzie zero logiczne ‘0’

Czyli tak:
(pierwszy minus pomijamy to tylko info że to plik a nie uprawnienie)
 r w –       r w –        r – –    
 1 1 0       1 1 0        1 0 0

I po zamianie z liczb binarnych na dziesiętne otrzymujemy coś takiego:
6                             6                             4

Tak więc przypomnijmy nasze poprzednie polecenie:
‘chmod 776 plik.txt’

776  da nam nowe uprawnienia:
- rwxrwxrw-

Właściciel i grupa mają wszystkie uprawnienia do odczytu, modyfikacji i wykonywania. Pozostali mają uprawnienia do odczytu i modyfikacji (w praktyce to nie najlepszy pomysł)

Zmiana właściciela

 chown [użytkownik][:grupa]    plik.txt    

gdzie:

    użytkownik to nowy właściciela pliku,
    grupa (koniecznie poprzedzony dwukropkiem) określa grupę do której plik ma zostać przypisany,
    plik.txt określają jeden lub więcej plików, których dotyczy zmiana.

Polecenie:
‘chown ttt:ttt folder1’  zmieni właściciela na ttt i grupę na ttt

Jednak gdybyśmy chcieli zmienić dodatkowo wszystkie elementy w folderze „folder1”
To trzeba użyć opcji –R

‘chown -R ttt:ttt folder1’