Vyhledávání na webu

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.

  1. Jak používat ACL (Access Control List) k nastavení diskových kvót pro uživatele/skupiny
  2. 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.