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.
- Jak używać list ACL (list kontroli dostępu) do konfigurowania przydziałów dysku dla użytkowników/grup
- 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.