Diferențe
Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
| Ambele părți revizuirea anterioarăVersiuni anterioareUrmatoarea versiune | Versiuni anterioare | ||
| autologin_tty [2026/05/23 21:57] – thinkroot | autologin_tty [2026/05/23 22:16] (curent) – thinkroot | ||
|---|---|---|---|
| Linia 1: | Linia 1: | ||
| - | ====== Autologin în TTY pe Linux ====== | + | ====== Autologin în TTY ====== |
| - | + | ||
| - | ~~TAGS: debian, arch, fedora, ubuntu, opensuse, tty, autologin, getty, kmscon, systemd, terminal~~ | + | |
| Autologinul în TTY permite autentificarea automată a unui utilizator la pornirea sistemului, fără a introduce parola. Este util pe sisteme cu un singur utilizator, dispozitive dedicate unui singur scop (servere fără monitor, kioscuri, dispozitive de scris), sau orice situație în care autentificarea manuală este inutilă. | Autologinul în TTY permite autentificarea automată a unui utilizator la pornirea sistemului, fără a introduce parola. Este util pe sisteme cu un singur utilizator, dispozitive dedicate unui singur scop (servere fără monitor, kioscuri, dispozitive de scris), sau orice situație în care autentificarea manuală este inutilă. | ||
| Linia 9: | Linia 7: | ||
| ===== Concepte de bază ===== | ===== Concepte de bază ===== | ||
| - | La pornire, systemd pornește un serviciu | + | La pornire, systemd pornește un serviciu getty pe fiecare TTY activ. Getty afișează promptul de autentificare și gestionează sesiunea. Există |
| * **agetty** - implementarea standard, parte din pachetul '' | * **agetty** - implementarea standard, parte din pachetul '' | ||
| - | * **kmscon** - o alternativă | + | * **kmscon** - un emulator de terminal |
| + | * **pam_autologin** - un modul PAM care salvează parola | ||
| - | Un detaliu important | + | Un detaliu important: tipul terminalului creat diferă în funcție de ce gestionează TTY-ul. agetty creează terminale de tip ''/ |
| Poți verifica oricând ce tip de terminal folosești cu: | Poți verifica oricând ce tip de terminal folosești cu: | ||
| Linia 24: | Linia 23: | ||
| ===== Metoda 1: Autologin prin agetty și systemd ===== | ===== Metoda 1: Autologin prin agetty și systemd ===== | ||
| - | Aceasta este metoda standard, care funcționează pe orice distribuție ce folosește systemd: Debian, Ubuntu, Fedora, Arch Linux, openSUSE | + | Aceasta este metoda standard, care funcționează pe orice distribuție ce folosește systemd. Configurarea se bazează pe fișiere drop-in systemd care suprascriu parametrii impliciți ai agetty. |
| - | ==== Configurare | + | ==== Consolă virtuală |
| Creează un fișier drop-in pentru serviciul getty de pe TTY1: | Creează un fișier drop-in pentru serviciul getty de pe TTY1: | ||
| Linia 40: | Linia 39: | ||
| [Service] | [Service] | ||
| ExecStart= | ExecStart= | ||
| - | ExecStart=-/ | + | ExecStart=-/ |
| </ | </ | ||
| Linia 52: | Linia 51: | ||
| </ | </ | ||
| - | ==== Note pentru | + | > **Notă:** Opțiunea '' |
| - | Pe **Debian și Ubuntu**, calea către agetty poate fi ''/ | + | ==== Consolă serială ==== |
| - | <code bash> | + | Pentru terminale seriale (de exemplu '' |
| - | which agetty | + | |
| - | </ | + | |
| - | Pe **Fedora și derivate (RHEL, CentOS Stream)**, metoda funcționează identic. Dacă autologinul nu funcționează, | + | < |
| - | + | [Service] | |
| - | < | + | ExecStart= |
| - | journalctl | + | ExecStart=-/ |
| </ | </ | ||
| - | Pe **Arch Linux**, serviciul '' | + | ==== Consolă nspawn ==== |
| - | Pe **openSUSE**, metoda systemd standard funcționează fără modificări suplimentare. | + | Pentru containere systemd-nspawn, suprascrie |
| - | + | ||
| - | ==== Autologin pe consolă serială ==== | + | |
| - | + | ||
| - | Pentru terminale seriale (de exemplu | + | |
| <code bash> | <code bash> | ||
| - | sudo mkdir -p / | + | sudo mkdir -p / |
| - | sudo nano / | + | |
| </ | </ | ||
| Linia 82: | Linia 74: | ||
| [Service] | [Service] | ||
| ExecStart= | ExecStart= | ||
| - | ExecStart=-/ | + | ExecStart=-/ |
| </ | </ | ||
| - | ==== Autologin | + | ==== Doar parola, |
| - | Dacă vrei să sari peste introducerea username-ului dar să ceri în continuare parola, folosești opțiunea '' | + | Dacă vrei să sari peste introducerea username-ului dar să ceri în continuare parola: |
| < | < | ||
| [Service] | [Service] | ||
| ExecStart= | ExecStart= | ||
| - | ExecStart=-/ | + | ExecStart=-/ |
| </ | </ | ||
| + | |||
| + | ==== Note pentru distribuții ==== | ||
| + | |||
| + | < | ||
| + | <tab title=" | ||
| + | |||
| + | Calea către agetty poate varia în funcție de versiune. Verifică cu '' | ||
| + | |||
| + | </ | ||
| + | <tab title=" | ||
| + | |||
| + | Pe Arch Linux, serviciul '' | ||
| + | |||
| + | <code bash> | ||
| + | sudo systemctl edit getty@tty1.service | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | <tab title=" | ||
| + | |||
| + | Metoda funcționează identic. Dacă autologinul nu funcționează, | ||
| + | |||
| + | <code bash> | ||
| + | journalctl -u getty@tty1 -b | ||
| + | ausearch -m avc -ts recent | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | <tab title=" | ||
| + | |||
| + | Metoda systemd standard funcționează fără modificări suplimentare. | ||
| + | |||
| + | </ | ||
| + | </ | ||
| ===== Metoda 2: Autologin prin kmscon ===== | ===== Metoda 2: Autologin prin kmscon ===== | ||
| - | [[https:// | + | [[https:// |
| + | |||
| + | **Atenție: | ||
| ==== Instalare ==== | ==== Instalare ==== | ||
| - | Pe **Arch Linux**: | + | < |
| + | <tab title=" | ||
| <code bash> | <code bash> | ||
| sudo pacman -S kmscon | sudo pacman -S kmscon | ||
| </ | </ | ||
| - | Pe **Debian Trixie** (13), kmscon este disponibil din backports: | + | </ |
| + | <tab title=" | ||
| + | |||
| + | Pe Debian Trixie (13), kmscon este disponibil din backports: | ||
| <code bash> | <code bash> | ||
| echo "deb http:// | echo "deb http:// | ||
| Linia 113: | Linia 147: | ||
| </ | </ | ||
| - | Pe **Ubuntu | + | </ |
| + | <tab title=" | ||
| - | ==== Configurare | + | kmscon |
| - | Pentru a rula kmscon doar pe TTY1, dezactivezi getty pe acel TTY și activezi kmsconvt: | + | </ |
| + | </ | ||
| + | |||
| + | ==== Activare ==== | ||
| + | |||
| + | Pe TTY1 există o configurație specială implicită pentru getty. | ||
| + | |||
| + | Pentru a activa kmscon pe un singur TTY, dezactivezi getty pe acel TTY și activezi kmsconvt: | ||
| <code bash> | <code bash> | ||
| Linia 123: | Linia 165: | ||
| sudo systemctl enable kmsconvt@tty1.service | sudo systemctl enable kmsconvt@tty1.service | ||
| </ | </ | ||
| - | |||
| - | ==== Configurare kmscon pe toate TTY-urile ==== | ||
| Pentru a înlocui agetty pe toate terminalele virtuale: | Pentru a înlocui agetty pe toate terminalele virtuale: | ||
| Linia 133: | Linia 173: | ||
| </ | </ | ||
| - | Dacă kmscon nu poate porni din orice motiv, | + | > **Sfat:** Poți reactiva |
| - | ==== Autologin | + | ==== Autologin |
| + | |||
| + | Metoda cea mai simplă este direct prin ''/ | ||
| + | |||
| + | < | ||
| + | # Autologin ca utilizatorul " | ||
| + | login=/ | ||
| + | </ | ||
| + | |||
| + | ==== Autologin prin override de serviciu ==== | ||
| + | |||
| + | Alternativ, prin fișier drop-in systemd: | ||
| <code bash> | <code bash> | ||
| Linia 153: | Linia 204: | ||
| </ | </ | ||
| - | **Atenție:** kmscon | + | ==== Schimbarea TTY-ului ==== |
| + | |||
| + | Combinația obișnuită '' | ||
| ===== Metoda 3: pam_autologin ===== | ===== Metoda 3: pam_autologin ===== | ||
| - | [[https:// | + | [[https:// |
| + | |||
| + | Autologinul | ||
| + | |||
| + | ==== Instalare ==== | ||
| - | Instalare pe Arch Linux: | + | < |
| + | <tab title=" | ||
| <code bash> | <code bash> | ||
| Linia 165: | Linia 223: | ||
| </ | </ | ||
| - | Configurare | + | </ |
| + | <tab title=" | ||
| + | |||
| + | pam_autologin nu este disponibil | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== Configurare ==== | ||
| + | |||
| + | Editează | ||
| < | < | ||
| #%PAM-1.0 | #%PAM-1.0 | ||
| - | auth required pam_autologin.so | + | auth required pam_autologin.so |
| - | auth include system-local-login | + | auth include |
| - | account include system-local-login | + | account include |
| - | session include system-local-login | + | session include |
| </ | </ | ||
| - | Linia '' | + | Linia '' |
| - | <code bash> | + | Deoarece agetty nu este o aplicație PAM, nu poate trimite username-ul direct către '' |
| - | sudo touch / | + | |
| - | </ | + | |
| - | + | ||
| - | Deoarece agetty nu este o aplicație PAM, trebuie | + | |
| < | < | ||
| Linia 189: | Linia 253: | ||
| </ | </ | ||
| - | Pentru autologin la fiecare pornire | + | Salvează primul login creând fișierul de configurare: |
| + | |||
| + | <code bash> | ||
| + | sudo touch / | ||
| + | </ | ||
| + | |||
| + | La primul reboot vei vedea un mesaj că următorul login va fi salvat. Autentifică-te normal. La al doilea reboot autologinul va funcționa. | ||
| + | |||
| + | Pentru autologin la fiecare pornire, nu doar prima dată: | ||
| < | < | ||
| Linia 195: | Linia 267: | ||
| </ | </ | ||
| - | **Notă de securitate: | + | Pentru a opri autologinul, șterge fișierul de configurare cu '' |
| - | ===== Pornirea automată a unui program după autologin | + | <code bash> |
| + | sudo shred -u / | ||
| + | </ | ||
| - | Autologinul singur nu este suficient pe un sistem dedicat - de obicei vrei și ca un program să pornească automat. Cea mai simplă metodă este prin '' | + | ==== Notă de securitate ==== |
| - | Verifică mai întâi ce tip de terminal | + | pam_autologin stochează credențialele obfuscat cu o cheie aleatoare, dar cheia este stocată în același fișier - deci protecția este minimă. Datele pot ajunge în zona nealocată a discului dacă fișierul este șters fără '' |
| + | |||
| + | ===== Pornirea automată a unui program după autologin ===== | ||
| + | |||
| + | Verifică mai întâi ce tip de terminal | ||
| <code bash> | <code bash> | ||
| Linia 207: | Linia 285: | ||
| </ | </ | ||
| - | Exemplu pentru tmux cu neovim, pe sistem cu agetty (terminal | + | Adaugă în '' |
| + | |||
| + | < | ||
| + | <tab title=" | ||
| <code bash> | <code bash> | ||
| Linia 215: | Linia 296: | ||
| </ | </ | ||
| - | Dacă folosești | + | </ |
| + | <tab title=" | ||
| <code bash> | <code bash> | ||
| Linia 222: | Linia 304: | ||
| fi | fi | ||
| </ | </ | ||
| + | |||
| + | </ | ||
| + | </ | ||
| Condiția '' | Condiția '' | ||
| Linia 236: | Linia 321: | ||
| **Programul din .bashrc nu pornește: | **Programul din .bashrc nu pornește: | ||
| - | Verifică ce TTY folosești | + | Verifică ce terminal ai efectiv după autologin cu '' |
| **kmscon și agetty active simultan pe același TTY:** | **kmscon și agetty active simultan pe același TTY:** | ||
| Linia 248: | Linia 333: | ||
| **Autologinul pornește în buclă după delogare:** | **Autologinul pornește în buclă după delogare:** | ||
| - | Comportamentul implicit al agetty cu '' | + | Comportamentul implicit al agetty cu '' |
| + | |||
| + | **Root nu se poate autentifica cu kmscon:** | ||
| + | |||
| + | Verifică dacă '' | ||
| ===== Referințe ===== | ===== Referințe ===== | ||
| Linia 256: | Linia 345: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | |||
| + | {{tag> | ||