GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu někomu bezpečně dát skořápku?

Jedním z nejjednodušších/nejefektivnějších způsobů ovládání toho, co může uživatel dělat, je lshell.

lshell je shell kódovaný v Pythonu, který vám umožňuje omezit uživatelské prostředí na omezené sady příkazů, zvolit povolení/zakázaní libovolného příkazu přes SSH (např. SCP, SFTP, rsync atd.), protokolovat uživatelské příkazy, implementovat omezení časování, a více.


Pokud někomu dáte shellový účet, může vidět všechny světově čitelné soubory. To zahrnuje mnoho souborů v /etc které jsou nezbytné pro fungování systému, včetně /etc/passwd (který obsahuje uživatelská jména, ale ne hesla).

Pokud uživateli umožníte přihlásit se pouze uvnitř chrootu, neuvidí soubory mimo chroot. To znamená, že musíte do chrootu umístit dostatek programů, knihoven atd. – vše, k čemu musí mít uživatel přístup, a také všechny jejich závislosti.

Všimněte si, že chroot chrání pouze přímý přístup k souboru. Uživatel může šmírovat různé věci, včetně jmen a argumentů běžících procesů všech uživatelů (pokud nenastavíte další ochrany, jako je SELinux). Pokud uživatel nebude muset dělat mnoho, můžete nastavit přísnější omezení (včetně zabránění uživateli ve vytváření vlastních spustitelných souborů) pomocí omezeného prostředí, ale nastavení práva s omezeným prostředím je velmi složité, takže to neudělám. nedoporučuji.

V dnešní době jsou virtuální stroje velmi levné. Na výběr máte z mnoha bezplatných implementací (User Mode Linux, VirtualBox, VMware, KVM, OpenVZ, VServer, …) a místo na disku, které zabírá dodatečná instalace systému, je minimální (a stejně ho můžete potřebovat pro chroot). Virtuální stroj izoluje téměř vše:soubory, procesy, sítě, … Pokud nemáte velmi neobvyklá omezení, je to správná cesta.


Jednou z možností je umístit je do omezené relace shellu, jako je rbash [bash -r].

V tuto chvíli je trochu nejasné, čeho přesně chcete dosáhnout, nicméně na povrchu se na nový účet budou vztahovat posix acl pro 'ostatní' stejně jako všechny skupinové acl pro skupiny, do kterých účet patří, jako např. například 'users'.


Linux
  1. Jak zrušit kořenová oprávnění ve skriptech Shell?

  2. Jak bezpečně přejmenovat uživatele?

  3. Jak vytvořit uživatele SFTP bez Shell Access na CentOS 8

  1. CentOS / RHEL :Jak změnit přihlašovací shell uživatele

  2. Jak najdu svou verzi shellu pomocí příkazu Linux?

  3. Uživatele nelze přidat do skupiny dockerů

  1. Kolika Unixových skupin může být uživatel členem?

  2. Jak mohu vytvořit nepřihlášeného uživatele?

  3. Jak mohu změnit výchozí skupinu uživatele v systému Linux?