Bezpieczne pliki/katalogi za pomocą ACLS (listy kontroli dostępu) w Linux

Bezpieczne pliki/katalogi za pomocą ACLS (listy kontroli dostępu) w Linux

Jak Administrator systemu, Naszym pierwszym priorytetem będzie ochrona i zabezpieczenie danych przed nieautoryzowanym dostępem. Wszyscy jesteśmy świadomi uprawnień, które ustawiamy przy użyciu niektórych pomocnych poleceń Linux chmod, Chown, CHGRP… Itd. Jednak te domyślne zestawy uprawnień mają pewne ograniczenia i czasami mogą nie działać zgodnie z naszymi potrzebami. Na przykład nie możemy skonfigurować różnych zestawów uprawnień dla różnych użytkowników w tym samym katalogu lub pliku. Zatem, Listy kontroli dostępu (ACLS) zostały wdrożone.

Listy kontroli dostępu Linux

Powiedzmy, że masz trzech użytkowników ”Tecmint1','Tecmint2' I 'Tecmint3'. Każda z wspólnej grupy mówi 'acl '. Użytkownik 'Tecmint1`` Tylko tego chcę ''Tecmint2„Użytkownik może Czytać I dostęp pliki należące do 'Tecmint1„I nikt inny nie powinien mieć dostępu do tego.

ACLS (Listy kontroli dostępu) pozwala nam zrobić tę samą sztuczkę. Te ACL pozwalają nam udzielić uprawnień dla użytkownik, Grupa i każdej grupy użytkowników, których nie ma na liście grup użytkownika.

Notatka: Zgodnie z dokumentacją produktu Redhat zapewnia obsługę ACL dla systemu plików Ext3 i NFS eksportowanych systemów plików.

Jak sprawdzić obsługę ACL w systemach Linux

Przed przejściem do przodu powinieneś mieć obsługę ACL w obecnych jądrach i zamontowanych systemach plików.

1. Sprawdź jądro pod kątem wsparcia ACL

Uruchom następujące polecenie, aby sprawdzić obsługę ACL dla systemu plików i POSIX_ACL = y opcja (jeśli jest N zamiast Y, Wtedy oznacza to, że jądro nie obsługuje ACL i musi zostać ponownie skompilowane).

[[e -mail chroniony] ~]# grep -i acl /boot /config* config_Ext4_fs_posix_acl = y KonfiguratorReiserfs_fs_posix_acl = y CONFIG_JFS_POSIX_ACL=y CONFIG_XFS_POSIX_ACL=y CONFIG_BTRFS_FS_POSIX_ACL=y CONFIG_FS_POSIX_ACL=y CONFIG_GENERIC_ACL=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_NFS_V3_ACL=y CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3_ACL=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_CIFS_ACL=y CONFIG_9P_FS_POSIX_ACL=y

2. Sprawdź wymagane pakiety

Przed rozpoczęciem gry z ACL upewnij się, że masz zainstalowane pakiety. Poniżej znajdują się wymagane pakiety, które należy zainstalować za pomocą mniam Lub apt-get.

[[e-mail chroniony] ~]# yum instaluj nfs4-acl-tools acl libacl [on Czerwony kapelusz systemy oparte]
[[e-mail chroniony] ~] $ sudo apt-get instaluj nfs4-acl-tools ACL [on Debian systemy oparte]

3. Sprawdź zamontowany system plików pod kątem obsługi ACLS

Teraz sprawdź zamontowany system plików, że niezależnie od tego, czy jest on zamontowany z opcją ACL, czy nie. Możemy użyć 'uchwyt„polecenie sprawdzania tego samego, jak pokazano poniżej.

[[e -mail chroniony] ~]# Mount | grep -i root /dev /mapper /fedora -root on /type ext4 (RW, Relatime, Data = uporządkowane)

Ale w naszym przypadku domyślnie nie pokazuje ACL. Następnie mamy opcję ponownego ponownego ponownego ponownego złożenia zamontowanej partycji za pomocą opcji ACL. Ale przed pójściem do przodu mamy inną opcję, aby upewnić się, że partycja jest zamontowana z opcją ACL, czy nie, ponieważ w przypadku najnowszego systemu może być zintegrowana z opcją domyślnego montażu.

[[e -mail chroniony] ~]# Tune2fs -l/dev/mapper/fedora -root | GREP ACL Domyślne opcje montowania: user_xattr acl

Na powyższym wyjściu widać, że opcja domyślnej montowania ma już obsługę ACL. Inną opcją jest ponowne złożenie partycji, jak pokazano poniżej.

[[e -mail chroniony] ~]# Mount -o Remount, ACL /

Następnie dodaj poniższy wpis do pliku „/etc/fstab”, aby był stały.

/dev/mapper/fedora-root/ext4 domyślne, acl 1 1

Ponownie, ponownie zareaguj partycję.

[[e -mail chroniony] ~]# Mount -o remount /

4. Dla serwera NFS

Na serwerze NFS, jeśli system plików, który jest eksportowany przez NSF Server obsługuje ACL i ACL, może być odczytane przez klientów NFS, wówczas ACL są wykorzystywane przez system klienta.

Aby wyłączyć ACL w Share NFS, musisz dodać opcję „no_acl" W '/itp./Eksportfs„Plik na serwerze NFS. Aby wyłączyć go po stronie klienta NSF, ponownie użyj „no_acl„Opcja w czasie montażu.

Jak wdrożyć obsługę ACL w systemach Linux

Istnieją dwa rodzaje ACLS:

  1. Uzyskaj dostęp do ACL: Dostęp ACL są używane do przyznawania uprawnień w dowolnym pliku lub katalogu.
  2. Domyślne ACL: Domyślne ACL są używane do udzielania/ustawiania listy kontroli dostępu tylko w określonym katalogu.

Różnica między dostępem ACL a domyślnym ACL:

  1. Domyślnie ACL może być używany tylko na poziomie katalogu.
  2. Wszelkie podreżyse lub plik utworzony w tym katalogu odziedziczy ACL z jego katalogu nadrzędnego. Z drugiej strony plik dziedziczy domyślne ACL jako jego dostęp ACLS.
  3. Korzystamy z „-D”W celu ustawiania domyślnych ACL i domyślnych ACL są opcjonalnymi.
Przed ustawieniem domyślnych ACL

Aby określić domyślne ACL dla określonego pliku lub katalogu, użyj 'GetFacl' Komenda. W poniższym przykładzie, GetFacl służy do uzyskania domyślnych ACL dla folderu ”Muzyka'.

[[chroniony e-mail] ~] # getFacl Music/ # plik: muzyka/ # właściciel: root # grupa: root użytkownik :: RWX Group :: r-x Inne :: R-X Domyślnie: User :: RWX Domyślny: grupa :: R-x Domyślnie: Inne :: rw-
Po ustawieniu domyślnych ACL

Aby ustawić domyślne ACL dla określonego pliku lub katalogu, użyj 'setfacl' Komenda. W poniższym przykładzie, setfacl Polecenie ustawi nowe ACL (Czytać I wykonać) na folderze 'Muzyka'.

[[E -mail chroniony] ~] # setfacl -m d: o: rx muzyka/ [[chroniony e -mail] ~] # getFacl Music/ # plik: muzyka/ # właściciel: root # grupa: root użytkownik :: RWX Group :: R -x Inne :: R-X Domyślnie: User :: RWX Domyślnie: Group :: R-X Domyślnie: Inne :: R-X

Jak ustawić nowe ACL

Użyj 'setfacl ' polecenie ustawiania lub modyfikowania w dowolnym pliku lub katalogu. Na przykład, aby dać Czytać I pisać uprawnienia dla użytkownikaTecmint1'.

# setfacl -m u: TecMint1: rw /tecMint1 /przykład

Jak oglądać ACL

Użyj 'GetFacl„Polecenie do przeglądania ACL w dowolnym pliku lub katalogu. Na przykład, aby wyświetlić ACL na '/TecMint1/przykład„Użyj poniżej polecenia.

# getFacl/TecMint1/Przykład # Plik: TecMint1/Przykład/ # Właściciel: TECMINT1 # GROUP: TECMINT1 Użytkownik :: RWX Użytkownik: TECMINT1: RWX Użytkownik: TECMINT2: R-- GROUP :: RWX MASK :: RWX INNE:---

Jak usunąć ACL

Do usunięcia ACL z dowolnego pliku/katalogu używamy X I B Opcje, jak pokazano poniżej.

# setfacl -x plik/katalog ACL # Usuń tylko określony ACL z pliku/katalogu. # setfacl -b plik/katalog #REMOVING WSZYSTKIE ACL z pliku/DireCoty

Wdrożyćmy ACL na następujących scenariuszach.

Dwóch użytkowników (Tecmint1 I Tecmint2), oba mają wspólną grupę wtórną nazwaną ”ACL'. Utworzymy jeden katalog należący do 'Tecmint1'i zapewni Czytać I wykonać uprawnienie do tego katalogu na użytkownika ”Tecmint2'.

Krok 1: Utwórz dwóch użytkowników i usuń hasło z obu

[[[chroniony e -mail] ~]# dla użytkownika w TecMint1 TecMINT2> Do> UserAdd $ użytkownik> Passwd -d $ użytkownik> gotowe usunięcie hasła dla użytkownika TecMint1. PASSWD: Sukces Usuwanie hasła dla użytkownika Tecmint2. PASSWD: Sukces

Krok 2: Utwórz grupę i użytkowników do grupy dodatkowej.

[[e -mail chroniony] ~]# grupaadd acl [[e -mail chroniony] ~]# usermod -g acl tecMint1 [[e -mail chroniony] ~]# usermod -g acl tecMint2

Krok 3: Utwórz katalog /Tecmint i zmień własność na Tecmint1.

[[e -mail chroniony] ~]# mkdir /tecMint1 [[e -mail chroniony] ~]# chown tecMint1 /tecMint1 /
[[e-mail chroniony] ~]# ls -ld /tecMint1 /Drwxr-xr-x 2 TecMint1 root 4096 kwietnia 14:46 /TecMint1 /
[[e -mail chroniony] ~]# getFacl /Tecmint1 GetFacl: Usuwanie wiodącego „/” z absolutnych nazw ścieżek # Plik: TecMint1 # Właściciel: TECMINT1 # Grupa: root użytkownik :: RWX Group :: R-X Inne :: R-X

Krok 4: Zaloguj się z Tecmint1 i utwórz katalog w /Tecmint teczka.

[[e -mail chroniony] ~] $ su - Tecmint1 Ostatni login: czw 17 kwietnia 14:49:16 IST 2014 na PTS/4
[[chroniony e -mail] ~] $ cd / tecMint1 / [[chroniony e -mail] Tecmint1] $ mkdir Przykład
[[chroniony e-mail] Tecmint1] $ ll ogółem 4 drwxRwxr-x 2 TecMint1 TecMint1 4096 kwietnia 14:50 Przykład
[[chroniony e -mail] TecMint1] $ WHOAMI TECMINT1

Krok 5: Teraz ustaw ACL za pomocą 'setfacl', aby 'Tecmint1'będzie miał wszystko RWX uprawnienia ”Tecmint2'będzie miał tylko Czytać pozwolenie na 'przykład„Folder i inne nie będą miały uprawnień.

$ setfacl -m u: TecMint1: rwx przykład/ $ setfacl -m u: tecMint2: r-przykład/ $ setfacl -m Inne: --- $ getFacl :: RWX Użytkownik: TecMint1: RWX Użytkownik: TecMint2: R-- Grupa :: R-X maska ​​:: RWX Other ::---

Krok 6: Teraz zaloguj się z innym użytkownikiem i.mi. 'Tecmint2„na innym katalogu terminali i zmiany na”/Tecmint1'. Teraz spróbuj wyświetlić zawartość za pomocą 'LS„polecenie, a następnie spróbuj zmienić katalog i zobaczyć różnicę jak poniżej.

[[e -mail chroniony] ~] $ SU - TecMint2 Ostatnie logowanie: czw 17 kwietnia 15:03:31 IST 2014 na PTS/5
[[chroniony e -mail] ~] $ cd/ tecMint1/ [[chroniony e -mail] Tecmint1] $ ls -lr Przykład/ przykład/: ogółem 0
[[chroniony e -mail] Tecmint1] $ CD Przykład/ -Bash: CD: Przykład/: odmowa uprawnień 
[[[chroniony e-mail] TecMint1] $ getFacl Przykład/ # plik: Przykład # Właściciel: TECMINT1 # grupa: TECMINT1 Użytkownik :: RWX Użytkownik: TECMINT1: RWX Użytkownik: TECMINT2: R-- GROUP :: RWX MASK :: RWX ONNE :::::---

Krok 7: Teraz daj 'wykonać' pozwolenie na 'Tecmint2' NA 'przykład„Folder, a następnie użyj 'płyta CD„polecenie, aby zobaczyć efekt. Teraz 'Tecmint2„Miej uprawnienia do oglądania i zmiany katalogu, ale nie mają uprawnień do pisania czegokolwiek.

[[[chroniony e -mail] TecMint1] $ setfacl -m u: TecMint2: R -x Przykład/ [[chroniony e -mail] TecMint1] $ GetFacl Plik/ Plik: Przykład właściciel: TECMINT1 # grupa: TECMINT1 Użytkownik :: RWX Użytkownik: TECMINT1: RWX Użytkownik użytkownika : TecMint2: R-X Group :: RWX Mask :: rwx Other ::---
[[e -mail chroniony] ~] $ su - TecMint2 Ostatni login: czw 17 kwietnia 15:09:49 IST 2014 na PTS/5
[[[chroniony e -mail] ~] $ cd/ tecMint1/ [[chroniony e -mail] Tecmint1] $ CD Przykład/ [[chroniony e -mail] Przykład] $ getFacl .
[[[chroniony e -mail] przykład] $ mkdir test mkdir: nie można utworzyć katalogu „test”: odmowa uprawnień 
[[[chroniony e -mail] przykład] $ Touch Test dotyk: nie można dotykać „testu”: odmowa uprawnień 

Notatka: Po wdrożeniu ACL zobaczysz dodatkowe '+„Podpis wyjścia„ ls -l ”jak poniżej.

[[e-mail chroniony] Tecmint1]# ll ogółem 4 drwxRwx ---+ 2 TecMint1 TecMint1 4096 kwietnia 17:01 Przykład

Linki referencyjne

Dokumentacja ACL