Kiedy administrujesz komputerem z Linuksem, który mieści wielu użytkowników, mogą być chwile, kiedy będziesz musiał przejąć nad nimi większą kontrolę niż oferują podstawowe narzędzia użytkownika. Ten pomysł pojawia się na pierwszy plan, zwłaszcza gdy trzeba zarządzać uprawnieniami dla niektórych użytkowników. Na przykład, masz katalog, do którego musi mieć dostęp z uprawnieniami do odczytu/zapisu dla jednej grupy użytkowników i tylko uprawnienia do odczytu dla innej grupy. Z Linuksem jest to całkowicie możliwe., Aby tak się stało, musisz najpierw zrozumieć, jak pracować z użytkownikami, za pomocą grup i list kontroli dostępu (ACL).
zaczniemy od początku od użytkowników i przejdziemy do bardziej złożonych ACL. Wszystko, czego potrzebujesz, aby tak się stało, będzie zawarte w wybranej przez Ciebie dystrybucji Linuksa. Nie będziemy dotykać podstaw użytkowników, ponieważ w tym artykule skupiamy się na grupach.,
na potrzeby tego artykułu zakładam, że:
musisz utworzyć dwóch użytkowników o nazwach użytkowników:
-
olivia
-
nathan
musisz utworzyć dwie grupy:
-
readers
-
editors
Olivia musi być członkiem grupy redaktorów, a Nathan musi być członkiem grupy czytelników. Czytniki grup muszą mieć tylko uprawnienia do odczytu do katalogu / DATA, podczas gdy edytorzy grup muszą mieć zarówno uprawnienia do odczytu jak i zapisu do katalogu / DATA., Jest to oczywiście bardzo minimalne, ale da Ci podstawowe informacje potrzebne do rozszerzenia zadań, aby dopasować je do znacznie większych potrzeb.
będę demonstrował na platformie serwerowej Ubuntu 16.04. Polecenia będą uniwersalne—jedyną różnicą będzie to, że wybrana dystrybucja nie korzysta z sudo. Jeśli tak jest, będziesz musiał najpierw su do użytkownika root wydać polecenia, które wymagają sudo w demonstracjach.
Tworzenie użytkowników
pierwszą rzeczą, którą musimy zrobić, to stworzyć dwóch użytkowników do naszego eksperymentu., Tworzenie użytkownika odbywa się za pomocą polecenia useradd. Zamiast po prostu tworzyć użytkowników musimy utworzyć je zarówno z własnych katalogów domowych, a następnie dać im hasła.
pierwszą rzeczą, którą robimy, jest tworzenie użytkowników. Aby to zrobić, wydaj polecenia:
sudo useradd -m oliviasudo useradd -m nathan
stworzyliśmy teraz naszych użytkowników. Jeśli zajrzysz do katalogu / home, znajdziesz ich domy (ponieważ użyliśmy opcji-m, która tworzy katalog domowy).
Dalej każdy użytkownik musi mieć hasło., Aby dodać hasła do mieszanki, należy wydać następujące polecenia:
sudo passwd oliviasudo passwd nathan
Po uruchomieniu każdego polecenia zostanie wyświetlony monit o wprowadzenie (i zweryfikowanie) nowego hasła dla każdego użytkownika.
To jest to, Twoi użytkownicy są tworzone.
Tworzenie grup i dodawanie użytkowników
teraz będziemy tworzyć grupy czytelników i edytorów, a następnie dodawać do nich użytkowników. Polecenia do tworzenia naszych grup to:
addgroup readersaddgroup editors
To wszystko. Jeśli wydasz polecenie less / etc / group, zobaczysz nasze nowo utworzone grupy na liście (Rysunek 1).,
Po utworzeniu naszych grup musimy dodać naszych użytkowników. Dodamy użytkownika nathan do grupy czytelników poleceniem:
sudo usermod -a -G readers nathan
dodamy użytkownika olivia do grupy edytorów poleceniem:
sudo usermod -a -G editors olivia
teraz możemy zacząć zarządzać użytkownikami z grupami.,
nadanie grupom uprawnień do katalogów
Załóżmy, że masz katalog / READERS i musisz zezwolić wszystkim członkom grupy readers na dostęp do tego katalogu., Najpierw Zmień grupę folderu poleceniem:
sudo chown -R :readers /READERS
następnie usuń uprawnienia zapisu z grupy poleceniem:
sudo chmod -R g-w /READERS
teraz usuwamy inny bit x z katalogu /READERS (aby uniemożliwić użytkownikowi spoza grupy readers dostęp do dowolnego pliku wewnątrz) poleceniem:
sudo chmod -R o-x /READERS
w tym momencie TYLKO właściciel katalogu (root) i członkowie grupy readers mogą uzyskać dostęp do dowolnego pliku w /readers.,
Załóżmy, że masz katalog / EDITORS i musisz dać członkom grupy editors uprawnienia do odczytu i zapisu jego zawartości. Aby to zrobić, konieczne byłoby następujące polecenie:
sudo chown -R :editors /EDITORSsudo chmod -R g+w /EDITORSsudo chmod -R o-x /EDITORS
w tym momencie każdy członek grupy edytorów może uzyskać dostęp do plików i modyfikować je. Wszystkie inne (minus root) nie mają dostępu do plików i folderów w /EDITORS.
problem z użyciem tej metody polega na tym, że można dodać tylko jedną grupę do katalogu na raz. Tutaj przydają się listy kontroli dostępu.,
Korzystanie z list kontroli dostępu
Załóżmy, że masz pojedynczy folder – / DATA – i chcesz dać członkom grupy readers uprawnienia do odczytu i członkom grupy editors uprawnienia do odczytu/zapisu. Aby to zrobić, należy skorzystać z polecenia setfacl. Polecenie setfacl ustawia listy kontroli dostępu do plików i folderów.,
struktura tego polecenia wygląda następująco:
setfacl OPTION X:NAME:Y /DIRECTORY
gdzie opcja jest dostępną opcją, X to u (dla użytkownika) lub g (dla grupy), NAME to nazwa użytkownika lub grupy, a DIRECTORY to katalog, który ma być użyty. Będziemy używać opcji-m do modify. Tak więc nasze polecenie dodania czytnika grup dla dostępu do odczytu do katalogu/DATA wyglądałoby tak:
sudo setfacl -m g:readers:rx -R /DATA
teraz każdy członek grupy readers może odczytać pliki zawarte w / DATA, ale nie może ich modyfikować.,
aby dać członkom grupy editors uprawnienia do odczytu/zapisu (zachowując uprawnienia do odczytu dla grupy readers), wydamy polecenie;
sudo setfacl -m g:editors:rwx -R /DATA
powyższe polecenie da każdemu członkowi grupy editors uprawnienia do odczytu i zapisu, zachowując jednocześnie uprawnienia tylko do odczytu dla grupy readers.
cała kontrola, której potrzebujesz
i tam ją masz. Możesz teraz dodawać członków do grup i kontrolować dostęp tych grup do różnych katalogów z całą mocą i elastycznością, której potrzebujesz., Aby dowiedzieć się więcej o powyższych narzędziach, wydaj polecenia:
-
man usradd
-
Man addgroup
-
man usermod
-
man sefacl
-
man chown
-
man chmod
Dowiedz się więcej o Linuksie dzięki darmowemu kursowi „wprowadzenie do Linuksa” z Linux Foundation i EDX.