LShell nebo Limited Shell je napsán v pythonu pro omezení uživatele pro konkrétní sadu příkazů a adresářů. Můžete vytvořit uživatelské prostředí s omezeným přístupem, můžete také povolit zakázání příkazů přes SSH přístup.
Instalovat Limited Shell
Pomocí následujícího příkazu nainstalujte balíček LShell na váš systém založený na Debianu. V případě jiného operačního systému si musíte na Googlu vyhledat balíček lshell pro vaši distribuci.
$ sudo apt-get install lshell
Přepnout uživatele na LShell
Nyní nastavte LShell jako výchozí prostředí pro uživatele, pro které jste vyžadováni. Například pro změnu shellu uživatele sarah.
$sudo chsh sarah Changing the login shell for sarah Enter the new value, or press ENTER for the default Login Shell [/bin/lshell]:/usr/bin/lshell
Můžete také nastavit lshell jako výchozí shell pro uživatele během vytváření uživatelského účtu, jak je uvedeno níže.
$ sudo adduser --shell /usr/bin/lshell raj
Nakonfigurujte LShell
Nyní začněte s konfigurací lshell. Upravte konfigurační soubor lshell /etc/lshell.conf . V konfiguračním souboru jsou 4 základní sekce.
[globální] : V této sekci definujeme nastavení, která platí globálně. Například protokoly. [výchozí] : V této sekci nastavíme výchozí hodnoty, které aplikují všechny uživatele a skupiny. Nastavení této sekce lze přepsat nastavením specifickým pro uživatele a skupinu. [USERNAME] : V této sekci specifikujeme uživatelská specifická nastavení. Nastavení této sekce platí pouze pro uživatele [grp:GROUPNAME] : V této části specifikujeme nastavení specifická pro skupinu. Nastavení této sekce platí pro všechny uživatele skupiny
A [výchozí] profil je použit pro všechny uživatele používající lshell. Můžete vytvořit [uživatelské jméno] sekce nebo skupina [grp:groupname] k přizpůsobení specifických preferencí uživatelů a skupin.
Pořadí priority je Uživatel>> Skupina>> Výchozí . Uživatelská sekce má nejvyšší prioritu a Výchozí má nejnižší prioritu.
[global] logpath : /var/log/lshell/ loglevel : 2[default] allowed : ['ls','pwd','cd','cat','cp'] forbidden : [';', '&', '|','`','>','<', '$(', '${'] sudo_commands : ['ls', 'more'] warning_counter : 2 aliases : {'ll':'ls -l', 'vim':'rvim'} prompt : "%[email protected]%h" timer : 0 path : ['/home', '/usr'] env_path : ':/usr/bin/usr/local/bin' env_vars : {'foo':1, 'bar':'helloworld'} scp : 1 # or 0 sftp : 1 # or 0 overssh : ['rsync','ls'] strict : 0 history_file : "/home/%u/.lshell_history"[grp:wheel] warning_counter : 5 overssh : - ['ls'][raj] allowed : 'all' - ['su','rm','mv'] path : ['/etc', '/usr'] - ['/usr/local'] home_path : '/home/raj'[sarah] allowed : + ['ping'] - ['ls'] path : - ['/usr/local'] strict : 1 scpforce : '/home/sarah/uploads/'
Například uživatel „rja“ a uživatel „sarah“ oba patří do skupiny UNIX „wheel“:
Skupinové kolo:
- Uživatelé skupiny kol mají varovné počítadlo nastaveno na 5
- Uživatelé skupiny kol nemají povolen příkaz „ls“.
Uživatelský raj:
- Má přístup k /etc a /var, ale ne k /usr/local
- Má přístup ke všem příkazům ve své PATH kromě příkazů – su, rm, vm
- má počítadlo varování nastaveno na 5 [výchozí]
- má svou domovskou cestu nastavenou na „/home/raj“
Uživatelka sarah:
- Má přístup k /home a /usr, ale ne k /usr/local
- je povolen výchozí příkaz ‚ping‘, ale ne ‚ls‘
- přísnost je nastavena na 1 (nesmí zadat neznámý příkaz)
Název možnosti | Vysvětlení |
---|---|
adresář protokolu (výchozí /var/log/lshell/ ) | |
nastavit úroveň protokolu na 0, 1, 2, 3 nebo 4 (0:žádné protokoly, 1:nejméně podrobné, 4:protokolovat všechny příkazy) | |
nakonfigurujte název souboru protokolu (výchozí je %u, tj. uživatelské jméno.log) | |
seznam povolených příkazů nebo „all“ pro povolení všech příkazů v uživatelské PATH | |
seznam zakázaných znaků nebo příkazů – zakázat vim, protože umožňuje uniknout lshell | |
seznam povolených příkazů k použití se sudo(8) | |
počet varování, když uživatel zadá zakázanou hodnotu před opuštěním prostředí lshell, deaktivuje se nastavením na -1. | |
seznam aliasů příkazů (podobně jako bashova direktiva aliasů) | |
úvodní text k tisku (při zadávání lshell) | |
nakonfigurujte svůj promt pomocí %u nebo %h (výchozí:uživatelské jméno) | |
nastavit výzvu k řazení aktuální aktualizaci adresáře (výchozí:0) | |
hodnota v sekundách pro časovač relace | |
seznam cest k omezení uživatele „geograficky“ | |
nastavte domovskou složku vašeho uživatele | |
nastavte proměnnou prostředí $PATH uživatele | |
seznam cest; všechny spustitelné soubory v této cestě budou povoleny | |
přidat proměnné prostředí | |
povolit nebo zakázat použití scp (nastaveno na 1 nebo 0) | |
zakázat nahrávání scp | |
zakázat stahování scp | |
povolit nebo zakázat použití sftp (nastaveno na 1 nebo 0) | |
seznam příkazů, které je možné provést přes ssh | |
přísnost protokolování. 1 pro jakýkoli neznámý příkaz je považován za zakázaný a 0 za neznámý | |
vynutit soubory zasílané přes scp do konkrétního adresáře | |
maximální velikost souboru historie | |
nastavit název souboru historie (výchozí je /home/%u/.lhistory) | |
definujte skript pro spuštění při přihlášení uživatele |