Wyszukiwanie w witrynie

Przypisz dostęp do odczytu/zapisu użytkownikowi w określonym katalogu w systemie Linux


W poprzednim artykule pokazaliśmy, jak utworzyć katalog współdzielony w systemie Linux. Tutaj opiszemy, jak przyznać użytkownikowi dostęp do odczytu/zapisu w określonym katalogu w systemie Linux.

Można to zrobić na dwa sposoby: pierwsza polega na użyciu list ACL (list kontroli dostępu), a druga polega na utworzeniu grup użytkowników w celu zarządzania uprawnieniami do plików, jak wyjaśniono poniżej.

Na potrzeby tego samouczka użyjemy następującej konfiguracji.

Operating system: CentOS 7
Test directory: /shares/project1/reports 
Test user: tecmint
Filesystem type: Ext4

Upewnij się, że wszystkie polecenia są wykonywane jako użytkownik root lub użyj polecenia sudo z równoważnymi uprawnieniami.

Zacznijmy od utworzenia katalogu o nazwie reports za pomocą polecenia mkdir:

mkdir -p /shares/project1/reports   				

Używanie listy ACL do przyznania użytkownikowi dostępu do odczytu/zapisu w katalogu

Ważne: aby skorzystać z tej metody, upewnij się, że Twój system plików Linux (taki jak Ext3 i Ext4, NTFS, BTRFS) obsługuje listy ACL.

1. Najpierw sprawdź bieżący typ systemu plików w swoim systemie, a także, czy jądro obsługuje ACL, w następujący sposób:

df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
grep -i acl /boot/config*

Z poniższego zrzutu ekranu widać, że typ systemu plików to Ext4, a jądro obsługuje listy ACL POSIX, jak wskazuje opcja CONFIG_EXT4_FS_POSIX_ACL=y.

2. Następnie sprawdź, czy system plików (partycja) jest zamontowany z opcją ACL, czy nie:

tune2fs -l /dev/sda1 | grep acl

Z powyższych danych wynika, że domyślna opcja montowania obsługuje już ACL. Jeśli nie jest włączona, możesz ją włączyć dla konkretnej partycji (w tym przypadku /dev/sda3):

mount -o remount,acl /
tune2fs -o acl /dev/sda3

3. Teraz nadszedł czas, aby przypisać użytkownikowi tecmint dostęp do odczytu/zapisu do określonego katalogu o nazwie reports, uruchamiając następujące polecenia.

getfacl /shares/project1/reports       		  # Check the default ACL settings for the directory 
setfacl -m user:tecmint:rw /shares/project1/reports     # Give rw access to user tecmint 
getfacl /shares/project1/reports    			  # Check new ACL settings for the directory

Na powyższym zrzucie ekranu użytkownik tecmint ma teraz uprawnienia do odczytu/zapisu (rw) w katalogu /shares/project1/reports, jak wynika z danych wyjściowych drugiego getfacl polecenie.

Aby uzyskać więcej informacji na temat list ACL, zapoznaj się z naszymi poniższymi przewodnikami.

  1. Jak używać list ACL (list kontroli dostępu) do konfigurowania przydziałów dysku dla użytkowników/grup
  2. Jak używać list ACL (list kontroli dostępu) do montowania udziałów sieciowych

Zobaczmy teraz drugą metodę przypisywania dostępu do odczytu/zapisu do katalogu.

Korzystanie z grup w celu przyznania użytkownikowi dostępu do odczytu/zapisu w katalogu

1. Jeśli użytkownik ma już domyślną grupę użytkowników (zwykle o tej samej nazwie co nazwa użytkownika), po prostu zmień właściciela grupy w katalogu.

chgrp tecmint /shares/project1/reports

Alternatywnie utwórz nową grupę dla wielu użytkowników (którzy otrzymają uprawnienia do odczytu/zapisu w określonym katalogu), w następujący sposób. Spowoduje to jednak utworzenie katalogu współdzielonego:

groupadd projects

2. Następnie dodaj użytkownika tecmint do grupy projects w następujący sposób:

usermod -aG projects tecmint	    # add user to projects
groups tecmint	            # check users groups

3. Zmień właściciela grupy katalogu na projekty:

chgrp	projects /shares/project1/reports

4. Teraz ustaw dostęp do odczytu/zapisu dla członków grupy:

chmod -R 0760 /shares/projects/reports
ls  -l /shares/projects/	    #check new permissions

Otóż to! W tym samouczku pokazaliśmy, jak przyznać użytkownikowi dostęp do odczytu/zapisu w określonym katalogu w systemie Linux. W przypadku jakichkolwiek problemów zapytaj w sekcji komentarzy poniżej.