Přidělte přístup pro čtení/zápis uživateli v konkrétním adresáři v Linuxu
V předchozím článku jsme si ukázali, jak vytvořit sdílený adresář v Linuxu. Zde popíšeme, jak udělit přístup pro čtení/zápis uživateli v konkrétním adresáři v Linuxu.
Existují dva možné způsoby, jak toho dosáhnout: první je použití ACL (Access Control Lists) a druhou je vytváření uživatelských skupin pro správu oprávnění k souborům, jak je vysvětleno níže.
Pro účely tohoto tutoriálu použijeme následující nastavení.
Operating system: CentOS 7
Test directory: /shares/project1/reports
Test user: tecmint
Filesystem type: Ext4
Ujistěte se, že všechny příkazy jsou spouštěny jako uživatel root nebo použijte příkaz sudo s ekvivalentními oprávněními.
Začněme vytvořením adresáře s názvem reports
pomocí příkazu mkdir:
mkdir -p /shares/project1/reports
Použití ACL k udělení přístupu ke čtení/zápisu uživateli v adresáři
Důležité: Chcete-li použít tuto metodu, ujistěte se, že váš typ souborového systému Linux (například Ext3 a Ext4, NTFS, BTRFS) podporuje ACL.
1. Nejprve zkontrolujte aktuální typ souborového systému ve vašem systému a také, zda jádro podporuje ACL:
df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
grep -i acl /boot/config*
Z níže uvedeného snímku obrazovky je typ souborového systému Ext4 a jádro podporuje POSIX ACL, jak naznačuje možnost CONFIG_EXT4_FS_POSIX_ACL=y.
2. Dále zkontrolujte, zda je souborový systém (oddíl) připojen pomocí možnosti ACL nebo ne:
tune2fs -l /dev/sda1 | grep acl
Z výše uvedeného výstupu vidíme, že výchozí možnost připojení již podporuje ACL. Pokud není povoleno, můžete jej povolit pro konkrétní oddíl (pro tento případ /dev/sda3):
mount -o remount,acl /
tune2fs -o acl /dev/sda3
3. Nyní je čas přidělit přístup pro čtení/zápis uživateli tecmint
do konkrétního adresáře nazvaného reports
spuštěním následujících příkazů.
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 výše uvedeném snímku obrazovky má nyní uživatel tecmint
oprávnění ke čtení/zápisu (rw) v adresáři /shares/project1/reports, jak je vidět z výstupu druhého getfaclpříkaz.
Další informace o seznamech ACL najdete v našich následujících průvodcích.
- Jak používat ACL (Access Control List) k nastavení diskových kvót pro uživatele/skupiny
- Jak používat ACL (Access Control Lists) k připojení síťových sdílených složek
Nyní se podívejme na druhý způsob přiřazení přístupu pro čtení/zápis do adresáře.
Použití skupin k poskytnutí přístupu ke čtení/zápisu uživateli v adresáři
1. Pokud již uživatel má výchozí skupinu uživatelů (obvykle se stejným jménem jako uživatelské jméno), jednoduše změňte vlastníka skupiny v adresáři.
chgrp tecmint /shares/project1/reports
Případně vytvořte novou skupinu pro více uživatelů (kteří získají oprávnění ke čtení/zápisu v konkrétním adresáři), a to následovně. Tím však vytvoříte sdílený adresář:
groupadd projects
2. Poté přidejte uživatele tecmint
do skupiny projekty
následovně:
usermod -aG projects tecmint # add user to projects
groups tecmint # check users groups
3. Změňte vlastníka skupiny adresáře na projekty:
chgrp projects /shares/project1/reports
4. Nyní nastavte přístup pro čtení/zápis pro členy skupiny:
chmod -R 0760 /shares/projects/reports
ls -l /shares/projects/ #check new permissions
A je to! V tomto tutoriálu jsme vám ukázali, jak udělit přístup pro čtení/zápis uživateli v konkrétním adresáři v Linuxu. Pokud máte nějaké problémy, zeptejte se prostřednictvím sekce komentářů níže.