Автологин в Linux

Сегодня спросили как в ArchLinux сделать автологин без запуска иксов, я задумался — но быстро вспомнил что у меня у самого уже 4 дня как автологин правда с запуском иксов. Странно что я об этом так быстро забыл.

В общем решил написать известные мне способы автологина.

Способ с ArchWiki
Vеняем в файле /etc/inittab в строке id:3:initdefault: тройку на пятерку и добавляем в конце файла строку (сие меняет ранлевел с третьего на пятый, хотя можно просто в загрузчике параметром в ядру указать цифру 5)
x:5:once:/bin/su LOGIN -l -c "/bin/bash --login -c startx >/dev/null 2>/dev/null"
Вместо startx у вас может быть любая программа или скрипт, который вы желаете запускать.

Способ с заменой agetty (я использую именно это)
А менять будем на mingetty, для начала установив его yaourt -S mingetty
И меняем в /etc/inittab строку
c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux
на
c1:2345:respawn:/sbin/mingetty --autologin LOGIN tty1 linux

Что на первой консоли будет запускать автологин, так же можно сделать автологин в любой консоли.
up: с выходом util-linux 2.20 agetty получил возможность автологина из mingetty, так что последний ныне не нужен...

Ещё один способ c заменой
Программа на C
#include <unistd.h>
int main() {
   execlp( "login", "login", "-f", "LOGIN", 0);
}
Компилируем
gcc -o имя_будушего_бинарника имя_файла_с_исходником
и заменяем agetty на agetty -n -l путь_к_скомпилированной_программе. Получается что-то вроде
c1:2345:respawn:/sbin/agetty -n -l /usr/bin/autologin 38400 tty1 linux
или поместить эту программу как запускаемую в пятом ранлевеле

Ну а если есть желание в последних двух способах автоматом запускать иксы то в случае с zsh прописываем в файл $ZDOTDIR/.zlogin
if [[ -z "$DISPLAY"  &&  $(tty) = /dev/tty1 ]]; then
  startx
  logout
fi
Или если вы используете bash то прописываем тоже самое но в файле ~/.bash_login

Так же в жуйке когда я менял один dm на другой посоветовали nodm — дисплей менеджер который ничего не умеет кроме как автоматом запустить иксы от определенного пользователя.

Если кто ещё знает какие способы автологина, то просьба поделиться

UP
У дисплей манагера slim тоже имеется возможность автологина (опция auto_login yes и секция default_user)Спасибо sg

UP2 обновил информацию о mingetty (теперь «стандартный» agetty умеет автологин)
Minoru 09-11-2009
Никогда не понимал, зачем нужен автологин. Это ж насколько наивным надо быть, чтобы разрешать любому включившему машину работать под вашим именем в системе? :)

Кстати, >/dev/null 2>/dev/null может быть заменено на &>/dev/null
sg 09-11-2009
А почему анонс на жуйке не вывесил? И вообще, краткую версию можно было бы и на жуйк запостить.
SIO 09-11-2009
Minoru, в автологине есть немалая доля здравого смысла: если у кого-то есть доступ к вашему компьютеру, он при желаниии и /etc/passwd поправит, загрузившись с ливцд ;-)
Minoru 09-11-2009
Тот, кто имеет доступ к моему компу, может и винду мне поставить :D
netf0x 09-11-2009
Любопытно. Хотя смысла в автологине нет, это как автооткрывание дверей в дом - мол понадеятся на честность пришедшего)) Хотя иногда, в исключительно редих ситуациях, это пригождается. Была у меня тестовая машина, на которой крутились средства виртуализации - VMWare Workstation (оно, поому что внятное дерево снапншотов умеет) а вот запускаться оно само не очень хотело. Помню сделал автологин пользователя и старт виртуальных машинок автоматом (писал скрипт с использованием vmware-start или что-то созвучное). Работал старт машинок только если пользователь залогинился вот и приходилось делать автологин.
А нормальным людям автологин не нужен я считаю.
muhas 09-11-2009
@sg с жабером нелады у мну, писал в тот же жуйк об этом

@netf0x, @Minoru если вам не нужен автологин то не значит что он не нужен вообще
1) ембедед девайсы со вводом пароля это садим (к примеру, телефон), так же и с ARM (тут если и нужен пароль то явно не для входа в linux)
2) если пользователь 1 за машиной то ему может быть влом вводить каждый раз пароль
3) не забываем о существовании паролей в bios и прочем
Этого уже достаточно что бы считаться с автологином
Minoru 09-11-2009
2 muhas
Ладно, не будем разводить холивар ;)
muhas 09-11-2009
@Minoru а и попробывал бы не получилось бы =) используют значит кому-то надо (мне допустим удобно - минусов для себя не вижу), кому не надо не используют (например ты) - вот и весь холивар
kapsh 09-11-2009
А чем таки не устроил nodm? =)
muhas 09-11-2009
kapsh, тем что надо его поддерживать самому а не из реп или из аура =)
su6s 10-08-2010
в первом случае будешь поп
>Или если вы используете bash то прописываем тоже самое но в файле ~/.bash_login
так у меня не работает.
с ~/.bash_profile works
su6s 10-08-2010
в первом случае будешь попадать в / вместо хомяка
yasya 10-08-2010
автологин например на сервере всеголищ раздаюшем инет.. при перебое электричества после ребута бежать в серверную и вводить пароль както неособо охото
Gordio 11-08-2011
Ммммм а я все мечтаю о чудной опции --default-login. Хочу что бы поле Username: уже ыо заполненно, а пароль я вводил. При esc например оно отменялось (сесия не респавнилась) для ввода другого пользователя.
StaLex 12-08-2012
Задрали коментарии типа: "Ты что, каждый малыш сделает все что угодно с моей машиной при наличии автологина", "Нормальному человеку автологин не нужен" и т.д.
Нужен! Ситуация - контроллер на базе Linux работает во внутренней сети, отделенной межсетевым экраном от внешней, установлен в серверной с металической дверью закрытой на ключ. Нужно, нажав одну кнопку на контроллере, загрузить консоль Linux и управляющую программу контроллера. И все!
Gordio 12-08-2012
StaLex, в таком случае bzImage init=/usr/local/bin/program