I když cloudové úložiště nabízí mnoho výhod, není nic jiného než mít svá data na fyzickém pevném disku. Když ukládáte data na disk, přesně víte, kde se vaše data nacházejí, a jsou vždy k dispozici, když je potřebujete. Když data uložíte na externí přenosný disk, jako je USB flash disk, je to ještě lepší – nejenže víte, kde vaše data jsou, ale můžete si je vzít všude s sebou. Pokud jste v Linuxu nováčkem nebo se pokoušíte používat linuxový souborový systém na externím disku, mohou se vám zdát externí disky matoucí, náchylné k chybám nebo konfliktům oprávnění nebo dokonce ke ztrátě metadat.
Na to existují dvě „správné“ odpovědi:
ExFAT
Dříve byl ExFAT souborový systém plný právních hrozeb od společnosti Microsoft, protože vlastní kód. Již dříve žalovali společnosti a organizace, aby bránili své vlastnictví FAT, takže se běžně obávali, že by mohli udělat totéž s ExFAT. Nicméně nedávno. Microsoft vytvořil specifikace pro ExFAT open source. Ovladač bohužel neposkytli, ale existuje již existující jednotka, která umožňuje její fungování na Linuxu, a nyní, když mají vývojáři přístup k úplným specifikacím, jsou vylepšení nevyhnutelná.
Výhodou ExFAT je, že je multiplatformní (používají jej Windows, Mac a mnoho přenosných zařízení) a je navržen bez režijních oprávnění k souborům. Disk naformátovaný jako ExFAT můžete připojit k jakémukoli počítači a všechny soubory jsou dostupné komukoli. Zda je to dobré nebo špatné, závisí na vašem případu použití, ale u přenosných médií je to často přesně ten záměr.
Seznamy řízení přístupu (ACL)
Pokud dáváte přednost použití souborového systému Linux na přenosném disku, můžete to udělat, ale aby sdílení souborů bylo bezproblémové, měli byste používat seznamy řízení přístupu (ACL).
Když vytvoříte soubor nebo adresář na jednotce, existují výchozí hodnoty ve vašem systému určující, jaká oprávnění k souboru získá. Ve většině případů tyto výchozí hodnoty dávají smysl – když vytvoříte soubor ve svém domovském adresáři, pravděpodobně nebudete chtít, aby k tomuto souboru měli přístup ostatní uživatelé. Když však vytváříte soubor na externím disku, je vysoká pravděpodobnost, že je to proto, že tento soubor potřebujete sdílet s někým jiným (i když jste tím někým na jiném počítači).
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Výchozí oprávnění pro prohlížení souborů můžete přepsat pomocí ACL a můžete ovládat výchozí režim vytváření souborů nastavením lepivého bitu. ACL je vrstva bezpečnostních zásad v rozšířených atributech adresářů a souborů. Umožňuje vám určit výjimky z toho, co označují oprávnění systému souborů. Především vám to umožňuje překonat model jednoho vlastníka a jedné skupiny tradičních oprávnění UNIX.
Například, zatímco seth (ID 1000) účet může vlastnit adresář vytvořený na mé ploše, seth (ID 500) na mém notebooku ne, protože uživatelská ID se liší.
Totéž může platit pro skupinu. Pokud je adresář s ID skupiny 1000 přiřazen k adresáři na jednom počítači, pak k němu skupina s ID 500 nebo 10922 nemá na jiném počítači přístup. Ale ACL může přidat sekundární vlastníky a skupiny do adresářů a souborů.
Zobrazit aktuální seznam ACL
Každý adresář a soubor na libovolném běžném souborovém systému Linux má ve výchozím nastavení pravidla ACL. Jsou uloženy v rozšířených atributech, druhu metadat, která běžně nevidíte.
Můžete je zobrazit v terminálu:
$ getfacl ./example
# file: /run/media/drive/example
# owner: seth
# group: users
user::rwx
group::rwx
other::r--
Komentované řádky jsou pouze pro vaši informaci; řeknou vám cestu a vlastníka a skupinu souboru nebo adresáře, o kterém si prohlížíte informace. Další řádky zobrazují pravidla aplikovaná na soubor nebo adresář. V tomto příkladu jsou uživatelská oprávnění nastavena na rwx , skupina na r-x a další na r-x . Tato oprávnění se odrážejí v normálním seznamu souborového systému:
$ ls -lA /run/media/drive
drwxrwxr-- 26 seth users 4096 Jan 16 21:04 example
$ id
uid=1000(seth) gid=100(users) groups=100(users)...
Pokud uživatel nastaví (UID 1000) nebo členem skupiny (GID 100) interaguje s příkladem adresář, je udělen plný přístup. Jakýkoli jiný účet však pouze četl (r ) povolení.
Nastavení ACL
Chcete-li upravit seznam ACL, použijte setfacl nebo použijte správce souborů s podporou ACL. Při nastavování ACL můžete být velmi konkrétní nebo velmi obecný.
Chcete-li pouze upravit nastavení oprávnění souborového systému, můžete použít buď chmod nebo setfacl . Toto je velmi obecné nastavení ACL, protože nepřidáváte nic k oprávněním, která jsou pro UNIX již dostupná ze specifikace souborového systému.
$ setfacl --modify g::r example
$ getfacl ./example | grep "group::"
group::r--
$ ls -l . | grep example
drwxr--r-- 26 seth users 4096 Jan 16 21:04 example
Stejný efekt je k dispozici prostřednictvím chmod :
$ chmod g+x example
$ getfacl ./example | grep "group::"
group::r-x
$ ls -l . | grep example
drwxr-xr-- 26 seth users 4096 Jan 16 21:04 example
Přidávání uživatelů a skupin
Chcete-li skutečně těžit z ACL, je použít jej pro oprávnění mimo rozsah nativních oprávnění UNIX. Pokud jsem na ploše přihlášen jako seth s ID uživatele 1000 a vím, že adresář na mém přenosném disku musí používat seth s ID 500 na mém notebooku, pak jen deklaruji setha jako vlastník nestačí, protože ID uživatelů nejsou stejná.
Uživatele nebo ID uživatele můžete přidat do seznamu řízení přístupu:
$ setfacl --modify u:500:rwx example
$ getfacl example
# file: /run/media/drive/example
# owner: seth
# group: users
user::rwx
user:500:rwx
[...]
Do seznamu byla přidána nová položka, specifická pro ID uživatele 500. Připojení disku k jinému počítači se systémem Linux nebo UNIX nyní umožňuje uživateli s ID 500 přístup k příkladu složka.
Můžete také přidat uživatele podle názvu účtu nebo skupiny podle názvu skupiny nebo ID skupiny. ID však skutečně počítají s oprávněními, takže pokud se nacházíte ve smíšeném prostředí (například servery RHEL a základní klienti), měli byste ověřit ID uživatelů a skupinová ID skrývající se za účty, které se navenek zdají, identické.
Nastavení výchozích pravidel ACL
Pokud budete řízení přístupu považovat za jednorázové nastavení, rychle se dostanete do problémů, jakmile vaše různé uživatelské účty začnou vytvářet soubory a adresáře. Jakýkoli nový soubor nebo adresář vytvořený každým uživatelem zdědí výchozí oprávnění systému (a ACL). To znamená, že jakmile uživatel notebooku nastaví s ID 500 vytvoří soubor v adresáři, může to být pro uživatele počítače seth zakázáno s ID 1000, protože vlastník souboru je nastaven na UID 500.
Výchozí ACL lze použít na adresáře, takže soubory a podadresáře v nich vytvořené zdědí nadřazený ACL. Výchozí ACL adresáře můžete nastavit pomocí –default možnost:
$ setfacl --default --modify u:500:rwx example
$ setfacl --default --modify u:1000:rwx example
$ getfacl --omit-header example
user::rwx
user:500:rwx
group::rw-
mask::rwx
other::r-x
default:user::rwx
default:group::rw-
default:group:500:rwx
default:group:1000:rwx
default:mask::rwx
default:other::r-x
Když uživatel vytvoří nový adresář v rámci příkladu adresář, zděděný ACL je stejný jako jeho rodič:
$ cd example
$ mkdir penguins
$ getfacl --omit-header penguins
user::rwx
group::rw-
group:500:rwx
group:1000:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::rw-
default:group:500:rwx
default:group:1000:rwx
default:mask::rwx
default:other::r-x
To znamená, že jakýkoli vytvořený adresář nebo soubor zdědí stejný ACL, takže ani uživatel 500 nebo 1000 není nikdy vyloučen z přístupu.
Pragmatic ACL pro externí disky
Při použití souborového systému Linux pro externí disky je snadným způsobem, jak zajistit, aby fungoval se všemi uživateli, kteří očekávají používání přenosného disku, nastavit ACL na jeden adresář nejvyšší úrovně.
Předpokládejme například, že jste naformátovali jednotku USB s názvem mydrive jako souborový systém ext4. Chcete, aby váš účet na vašem notebooku a vašem počítači, stejně jako vaše kolegyně Alice, měl přístup k souborům.
Nejprve vytvořte adresář na nejvyšší úrovni jednotky:
$ mkdir /mnt/mydrive/umbrella
Poté použijte ACL na adresář nejvyšší úrovně, abyste udělili přístup všem důležitým uživatelům:
$ setfacl --modify \
u:500:rwx,u:1000:rwx,u:alice:rwx \
/mnt/mydrive/umbrella
Nakonec použijte výchozí ACL tak, aby všechny adresáře a soubory vytvořené v adresáři nejvyšší úrovně zastřešovaly zdědí stejný výchozí ACL (všimněte si, že tento příkaz používá krátkou verzi –modify ):
$ setfacl --default -m u:500:rwx,u:1000:rwx,u:alice:rwx \
/mnt/mydrive/umbrella
Použití výchozích hodnot na stávající systém
Pokud potřebujete použít nastavení ACL na mnoho souborů, které již existují, můžete toho dosáhnout pomocí najít příkaz.
Nejprve najděte všechny adresáře a použijte pravidla ACL:
$ find /mnt/mydrive/umbrella -type d | \
parallel --max-args=6 setfacl \
--default -m u:500:rwx,u:1000:rwx,u:alice:rwx
Není moudré bez rozdílu nastavovat všechna oprávnění souboru na spustitelný soubor, takže dále vyhledejte všechny soubory a nastavte oprávnění na re . Soubory, které vyžadují spustitelný bit, lze nastavit ručně nebo pomocí přípony souboru:
$ find /mnt/mydrive/umbrella -type f | \
parallel --max-args=6 setfacl \
--default -m u:500:rw,u:1000:rw,u:alice:rw
Upravte logiku těchto příkazů tak, aby vyhovovala vašim individuálním potřebám (nespouštějte příkaz, který odstraní spustitelný bit na /usr , například nebo v adresáři, který neobsahuje nic jiného než spustitelné programy).
Externí disky
Nenechte zmatek kolem externích disků v Linuxu dostat to nejlepší z vás a neomezujte se na tradiční unixová oprávnění. Nechte seznamy řízení přístupu pracovat za vás a klidně používejte nativní žurnálované linuxové souborové systémy na svých přenosných discích.