GNU/Linux >> Znalost Linux >  >> Linux

Proč uživatel 'bin' potřebuje přihlašovací shell?

Uživatel, který má platný shell a nemá heslo, se může stále přihlašovat metodami, které nejsou založeny na hesle, nejběžnější je ssh klíč. Ke spuštění úloh cronu je nutný platný shell. Platný shell je také nezbytný pro su bin -c 'wibble' fungovat (nejméně na Linuxu su bin -s /bin/sh -c 'wibble' bude také fungovat).

V případě bin , většina systémů nikdy nespustí příkaz jako bin v normálním provozu, takže nastavení shellu na /bin/false bylo by to v pořádku.

Neexistuje žádné riziko přímého útoku umožňujícího bin přihlásit se přes SSH, protože to by vyžadovalo vytvoření /bin/.ssh/authorized_keys jako uživatel bin nebo jako root. Jinými slovy, jediný způsob, jak se dostat dovnitř, je být dovnitř. Nicméně, mít platný shell zvyšuje riziko chybné konfigurace. Může také povolit některé vzdálené útoky s jinými službami než SSH; například uživatel hlásí, že útočník mohl nastavit heslo pro daemon vzdáleně přes Sambu, pak použijte toto heslo k přihlášení přes SSH.

Díru SSH můžete zacpat uvedením jmen uživatelů systému v DenyUsers direktiva v /etc/ssh/sshd_config (bohužel nelze použít číselný rozsah). Nebo naopak můžete zadat AllowGroups a povolit pouze skupiny, které obsahují fyzické uživatele (např. users pokud všem svým fyzickým uživatelům udělíte toto členství ve skupině).

V Debianu jsou k tomuto problému zaznamenány chyby (#274229, #330882, #581899), aktuálně otevřené a klasifikované jako „seznam přání“. Mám sklon souhlasit s tím, že se jedná o chyby a uživatelé systému by měli mít /bin/false jako jejich shell, pokud se nezdá nutné udělat jinak.


O ty se jako uživatelé nemusíte starat. Jsou to „uživatelé“ ve smyslu bezpečnostních skupin, nikoli uživatelé ve smyslu „přihlásit se a používat“ osoby. Když se podíváte do "/etc/shadow", uvidíte, že všichni tito "uživatelé" nemají hesla (buď "x" nebo "!" místo dlouhého soleného hashe). To znamená, že tito uživatelé se nemohou přihlásit, bez ohledu na to.

To znamená, že nevím, jestli je dobrý nápad změnit "/bin/sh" na "/bin/false" pro všechny tyto uživatele. Protože programy běží pod těmito skupinami, nemusí jim umožnit provádět příkazy, které potřebují. Nechal bych je jako "/bin/sh".

O tyto uživatele se nemusíte bát. Starejte se pouze o uživatele, které vytvoříte (a uživatele s hash v "/etc/shadow")


Linux
  1. Proč potřebuje uživatel root oprávnění sudo?

  2. Pokud procesy zdědí prostředí rodiče, proč potřebujeme export?

  3. Linux – Proč si Archlinux po odinstalaci balíčku ponechá některé uživatele/skupiny?

  1. Proč nikdo nepoužívá The True Bourne Shell jako /bin/sh?

  2. Potřebuje změna swappiness restart?

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

  1. Proč potřebujete umístit #!/bin/bash na začátek souboru skriptu?

  2. Co je příkaz *nix pro zobrazení výchozího přihlašovacího prostředí uživatele

  3. Proč musí být zařízení raid 10 inicializováno?