Diferențe
Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
| Urmatoarea versiune | Versiuni anterioare | ||
| autologin_tty [2026/05/23 21:53] – creat thinkroot | autologin_tty [2026/05/23 22:16] (curent) – thinkroot | ||
|---|---|---|---|
| Linia 1: | Linia 1: | ||
| - | ====== Autologin în Debian | + | ====== Autologin în TTY ====== |
| - | Configurarea autologinului | + | 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 |
| - | ===== Contextul: kmscon și getty nu se înțeleg întotdeauna ===== | + | **Atenție:** autologinul elimină protecția prin parolă la accesul fizic la mașină. Pe sisteme cu date sensibile, folosește-l doar împreună cu criptarea completă a discului. |
| - | Pe un sistem Debian minimal care rulează direct în TTY, terminalul poate fi gestionat fie de getty (implicit), fie de kmscon (dacă îl instalezi pentru fonturi mai frumoase și culori suplimentare). Problema apare când ambele sunt active simultan sau când configurezi autologinul pentru unul dar terminalul e controlat | + | ===== Concepte |
| - | Un simptom clar al acestei confuzii: dacă rulezi '' | + | La pornire, systemd pornește un serviciu getty pe fiecare TTY activ. Getty afișează promptul de autentificare |
| - | ===== Varianta 1: Autologin prin getty (fără kmscon) ===== | + | * **agetty** - implementarea standard, parte din pachetul '' |
| + | * **kmscon** - un emulator de terminal modern bazat pe KMS/DRM, cu suport pentru fonturi scalabile și Unicode complet | ||
| + | * **pam_autologin** - un modul PAM care salvează parola și o folosește în procesul normal de autentificare | ||
| - | Aceasta este metoda standard pentru un sistem Debian minimal fără kmscon | + | Un detaliu important: tipul terminalului creat diferă în funcție de ce gestionează TTY-ul. agetty creează terminale de tip ''/ |
| - | Creează | + | Poți verifica oricând ce tip de terminal folosești cu: |
| + | |||
| + | <code bash> | ||
| + | tty | ||
| + | </ | ||
| + | |||
| + | ===== Metoda 1: Autologin prin agetty și systemd ===== | ||
| + | |||
| + | 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. | ||
| + | |||
| + | ==== Consolă virtuală ==== | ||
| + | |||
| + | Creează | ||
| <code bash> | <code bash> | ||
| Linia 25: | Linia 39: | ||
| [Service] | [Service] | ||
| ExecStart= | ExecStart= | ||
| - | ExecStart=-/ | + | ExecStart=-/ |
| </ | </ | ||
| + | |||
| + | Prima linie '' | ||
| Aplică modificările: | Aplică modificările: | ||
| Linia 35: | Linia 51: | ||
| </ | </ | ||
| - | După reboot, terminalul va fi '' | + | > **Notă:** Opțiunea |
| + | |||
| + | ==== Consolă serială ==== | ||
| + | |||
| + | Pentru terminale seriale (de exemplu '' | ||
| + | |||
| + | < | ||
| + | [Service] | ||
| + | ExecStart= | ||
| + | ExecStart=-/ | ||
| + | </ | ||
| + | |||
| + | ==== Consolă nspawn ==== | ||
| + | |||
| + | Pentru containere systemd-nspawn, | ||
| <code bash> | <code bash> | ||
| - | if [ -z " | + | sudo mkdir -p /etc/systemd/ |
| - | exec tmux new-session | + | |
| - | fi | + | |
| </ | </ | ||
| - | ===== Varianta 2: Autologin prin kmscon ===== | + | < |
| + | [Service] | ||
| + | ExecStart= | ||
| + | ExecStart=-/ | ||
| + | </ | ||
| - | Dacă ai instalat kmscon și vrei să folosești autologinul prin el, trebuie să configurezi serviciul '' | + | ==== Doar parola, fără username ==== |
| - | Creează fișierul de override: | + | Dacă vrei să sari peste introducerea username-ului dar să ceri în continuare parola: |
| + | |||
| + | < | ||
| + | [Service] | ||
| + | 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 ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | **Atenție: | ||
| + | |||
| + | ==== Instalare ==== | ||
| + | |||
| + | < | ||
| + | <tab title=" | ||
| + | |||
| + | <code bash> | ||
| + | sudo pacman -S kmscon | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | <tab title=" | ||
| + | |||
| + | Pe Debian Trixie (13), kmscon este disponibil din backports: | ||
| + | |||
| + | <code bash> | ||
| + | echo "deb http:// | ||
| + | sudo apt update | ||
| + | sudo apt install -t trixie-backports kmscon | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | <tab title=" | ||
| + | |||
| + | kmscon nu este disponibil în depozitele oficiale. Trebuie compilat din sursă de pe [[https:// | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== Activare ==== | ||
| + | |||
| + | Pe TTY1 există o configurație specială implicită pentru getty. Pentru a fi conservator, | ||
| + | |||
| + | Pentru a activa kmscon pe un singur TTY, dezactivezi getty pe acel TTY și activezi kmsconvt: | ||
| + | |||
| + | <code bash> | ||
| + | sudo systemctl disable getty@tty1.service | ||
| + | sudo systemctl enable kmsconvt@tty1.service | ||
| + | </ | ||
| + | |||
| + | Pentru a înlocui agetty pe toate terminalele virtuale: | ||
| + | |||
| + | <code bash> | ||
| + | sudo systemctl disable getty@.service | ||
| + | sudo systemctl enable kmsconvt@.service | ||
| + | </ | ||
| + | |||
| + | > **Sfat:** Poți reactiva '' | ||
| + | |||
| + | ==== Autologin prin fișierul de configurare kmscon ==== | ||
| + | |||
| + | 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 53: | Linia 192: | ||
| sudo nano / | sudo nano / | ||
| </ | </ | ||
| - | |||
| - | Conținutul: | ||
| < | < | ||
| Linia 67: | Linia 204: | ||
| </ | </ | ||
| - | Dacă autologinul prin kmscon | + | ==== Schimbarea TTY-ului ==== |
| + | |||
| + | Combinația obișnuită '' | ||
| + | |||
| + | ===== Metoda 3: pam_autologin ===== | ||
| + | |||
| + | [[https://wiki.archlinux.org/title/ | ||
| + | |||
| + | Autologinul prin PAM se produce o singură dată per TTY per sesiune de boot - la delogare apare promptul normal, permițând autentificarea cu un alt utilizator. | ||
| + | |||
| + | ==== Instalare ==== | ||
| + | |||
| + | < | ||
| + | <tab title=" | ||
| <code bash> | <code bash> | ||
| - | if [ -z " | + | yay -S pam-autologin |
| + | </ | ||
| + | |||
| + | </ | ||
| + | <tab title=" | ||
| + | |||
| + | pam_autologin nu este disponibil în depozitele oficiale. Trebuie compilat din sursă. | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== Configurare ==== | ||
| + | |||
| + | Editează ''/ | ||
| + | |||
| + | < | ||
| + | #%PAM-1.0 | ||
| + | auth required pam_autologin.so | ||
| + | auth include | ||
| + | account include | ||
| + | session include | ||
| + | </ | ||
| + | |||
| + | Linia '' | ||
| + | |||
| + | Deoarece agetty nu este o aplicație PAM, nu poate trimite username-ul direct către '' | ||
| + | |||
| + | < | ||
| + | [Service] | ||
| + | ExecStart= | ||
| + | ExecStart=-/ | ||
| + | </ | ||
| + | |||
| + | 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ă: | ||
| + | |||
| + | < | ||
| + | auth required pam_autologin.so always | ||
| + | </ | ||
| + | |||
| + | Pentru a opri autologinul, | ||
| + | |||
| + | <code bash> | ||
| + | sudo shred -u / | ||
| + | </ | ||
| + | |||
| + | ==== Notă de securitate ==== | ||
| + | |||
| + | 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 ai după autologin: | ||
| + | |||
| + | <code bash> | ||
| + | tty | ||
| + | </ | ||
| + | |||
| + | Adaugă în '' | ||
| + | |||
| + | < | ||
| + | <tab title=" | ||
| + | |||
| + | <code bash> | ||
| + | if [ -z " | ||
| exec tmux new-session -d ' | exec tmux new-session -d ' | ||
| fi | fi | ||
| </ | </ | ||
| - | ===== Ce se poate întâmpla greșit | + | </ |
| + | <tab title=" | ||
| + | |||
| + | <code bash> | ||
| + | if [ -z " | ||
| + | exec tmux new-session -d ' | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Condiția '' | ||
| + | |||
| + | ===== Depanare | ||
| + | |||
| + | **Autologinul nu funcționează după configurare: | ||
| + | |||
| + | <code bash> | ||
| + | sudo systemctl status getty@tty1.service | ||
| + | journalctl -u getty@tty1.service -b | ||
| + | </ | ||
| + | |||
| + | **Programul din .bashrc nu pornește: | ||
| + | |||
| + | Verifică ce terminal ai efectiv după autologin cu '' | ||
| + | |||
| + | **kmscon și agetty active simultan pe același TTY:** | ||
| + | |||
| + | <code bash> | ||
| + | sudo systemctl list-units | grep -E ' | ||
| + | </ | ||
| + | |||
| + | Dacă ambele apar active pe același TTY, dezactivează unul dintre ele. | ||
| + | |||
| + | **Autologinul pornește în buclă după delogare: | ||
| + | |||
| + | Comportamentul implicit al agetty cu '' | ||
| + | |||
| + | **Root nu se poate autentifica cu kmscon:** | ||
| - | **kmscon instalat dar autologin configurat prin getty:** getty nu va controla terminalul pentru că kmscon îl preia primul. Autologinul prin getty nu va funcționa. Soluția este fie să configurezi autologinul prin kmscon, fie să dezinstalezi kmscon și să rămâi cu getty. | + | Verifică dacă '' |
| - | **Condiția din .bashrc cu tty greșit:** dacă configurezi '' | + | ===== Referințe ===== |
| - | ===== Concluzie ===== | + | * [[https:// |
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| - | Metoda care funcționează depinde de ce rulează pe TTY. Dacă folosești | + | {{tag> |