Настройка и работа в Linux

         

Метод правки напильником


Создайте файл autologinfred.c в своем любимом текстовом редакторе и наберите эту короткую C-программу:

int main() { execlp( "login", "login", "-f", "fred", 0); }

Системный вызов execlp выполнит команду "login -f fred" и заменит текущий контекст обработки на контекст этого вызова. Страница man для login описывает действие ключа -f. Откомпилируйте эту крошечную программу с помощью компилятора GNU C:

$ gcc -o autologinfred autologinfred.c

Получите права root'а (командой su) и скопируйте исполнимый файл в общедоступную директорию:

# cp autologinfred /usr/local/sbin/

Теперь взглянем на /etc/inittab. Этот конфигурационный файл используется init, самым первым процессом, который запускается при инициализации Linux. Вам должны попасться строки наподобие следующих:

1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3

Конкретное содержимое /etc/inittab варьирует от дистрибутива к дистрибутиву. В Debian-системах можно увидеть:

1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3

Измените строку, начинающуюся с "1:2345" так, чтобы она выглядела следующим образом:

1:2345:respawn:/sbin/getty -n -l /usr/local/sbin/autologinfred 38400 tty1

В результате пользователь fred будет зарегистрирован в системе на первой виртуальной консоли. В некоторых дистрибутивах GNU/Linux (например, в RedHat) должен использоваться /sbin/agetty. Ключ -l <альтернативная программа регистрации в системе> заменяет используемую по умолчанию программу /sbin/login той, которую мы скомпилировали ранее. Ключ -n говорит getty не запрашивать регистрационное имя пользователя.



Содержание раздела