Když jsem přihlášen jako root
Chtěl bych su
ke konkrétnímu běžnému uživateli. Běžím su username
a okamžitě obdrží výzvu zpět, stále jako root. Není zadána žádná chyba. Jsem si vědom starého problému „uživatel, který se snažíte získat, nemá oprávnění ke složce, ve které se právě nacházíte“, a v tomto případě tomu tak není. Kromě toho není zobrazena žádná chyba, což je vždy případ (pokud vím), když dojde k určitému problému s oprávněními.
Zkusil jsem su - username
se stejným účinkem. Příkaz je zpracován, nejsou vidět žádné chyby, a výzva se okamžitě vrátí.
Co by mohlo toto chování způsobovat? Jak to mohu vyřešit?
Zkontrolujte, co Shell má uživatel v /etc/passwd
. Pokud je Shell /bin/false
(obyčejné prostředí, které zakazuje přihlášení), pak uvidíte chování, které popisujete. Alternativně to může být nějaký další program s okamžitým ukončením, který dává stejný efektivní výsledek.
Navrhl bych použít stopu na procesu su, abyste viděli, kde proces selhává.
strace su donaldduck
Měl by vám dát spousty výstupů, které byste měli třídit, ale něco tam by mělo naznačovat, kde se problém vyskytuje.
Měli byste zkontrolovat Shell v /etc/passwd
a, aniž byste si přáli sponzorovat, zkontrolujte výstup whoami
po spuštění su
.
Zkontrolujte systémové protokoly: pomocí Sudo by se měly zaznamenávat všechny akce. Pokud tedy existuje problém, měl by být napsán.
Pro přihlášení jako uživatel root
$ ssh [email protected]
Zadejte heslo správce
$ vi /etc/passwd
Vyměňte řádek v souboru
username: x: 100: 100: User:/home/user:/sbin/nologin
na
username: x: 100: 100: User:/home/user:/bin/bash
Odhlaste se a přihlaste se. Zobrazí se uživateli znovu