LINUX.ORG.RU
ФорумAdmin

Не работает login на встроенной плате


0

0

Прошу не освавить меня без помощи!!! Я собрал образ linux на CF (компакт флэш), за основу я взял дистрибутив slackware 12.1. Т.е. взял из дистрибутива ядро для загрузки его воспользовался lilo написал инсталяционный скрипт на основании rc.S в inittab на первый терминал вместо логин установил запуск bash, вход на остальные терминалы через login. Файлы необходимые для запуска login и добавления нового пользователя скопировал с целевой машины /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/login.defs В каталоге etc создал необходимые директории default, skel и скопировал в них содержимое файлов целевой системы. В соотв. директории bin и тд скопировал необходимые утилиты для создания пользователя, группы

В результате при запуске системы у меня номально монтируется CF находятся сетевые устройства на первом терминале инициализируется bash, на остальных приглашение на регистрацию login. Но при попытках зарегестрироваться через login я получаю login incorrect, хотя пароль для root у меня отсутствует. Даже если ввести пароль на целевой системе и потом скопировать соотв. файлы на CF результат такой же! Когда я на первом терминале пытаюсь завести пользователя используя скрипт adduser то получаю сообщение unknown group users, хотя данная группа присутствует в файле group

Что я сделал не так?

anonymous

Ответ на: комментарий от dimon555

gshadow конечно создал

Складывается впечатление, что после запуска на первой консоли bash без login и попытке при использовании скрипта adduser создать пользователя этого не происходит потому-что, не определен пользователь. agetty на первой консоли у меня сразу запускает bash. Я думал, что по умолчанию он будет root но это не так!

anonymous
()
Ответ на: комментарий от anonymous

Понятно, почему когда сразу стартует bash, что не определен пользователь и не работает ряд утилит. Ибо когда все идет через login то происходит анализ файла passwd откуда устанавливаются uid, gid инициализируется структура passwd и порождается процесс bash с соотв. атрибутами зарегистрированного пользователя. С этим все вроде ясно, непонятно почему не происходит регистрация через login несмотря на наличие необходимых файлов утилит?

anonymous
()
Ответ на: комментарий от tux2002

Все необходимые библиотеки лежат в lib именно используя ldd я и формировал директорию lib иначе диагностика была бы ясной ! Если не необходимой библиотеки она об этом честно и пишет, что ее нет! файл /etc/nsswitch.conf у меня для порядку лежит в etc. Незнаю о чем и думать!!!

anonymous
()
Ответ на: комментарий от tux2002

#ls /lib

ld-2.7.so
ld-linux.so.2
libacl.so.1
libacl.so.1.1.0
libattr.so.1
libattr.so.1.1.0
libaudit.so.0
libaudit.so.0.0.0
libblkid.so.1
libblkid.so.1.0
libc-2.7.so
libcrypt-2.7.so
libcrypt.so.1
libc.so.6
libdevmapper.so
libdevmapper.so.1.02
libdl-2.7.so
libdl.so.2
lib.files
libm-2.7.so
libm.so.6
libncurses.so.5
libncurses.so.5.6
libnss_files-2.7.so
libnss_files.so.2
libproc-3.2.7.so
libpthread-2.7.so
libpthread.so.0
libresolv-2.7.so
libresolv.so.2
librt-2.7.so
librt.so.1
libselinux.so.1
libtermcap.so.2
libtermcap.so.2.0.8
libuuid.so.1
libuuid.so.1.2
modules



#ldd login
linux-gate.so.1 => (0x00110000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x0375c000)
libc.so.6 => /lib/libc.so.6 (0x004db000)
/lib/ld-linux.so.2 (0x004bc000)

#ldd passwd

linux-gate.so.1 => (0x00110000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x0375c000)
libc.so.6 => /lib/libc.so.6 (0x004db000)
/lib/ld-linux.so.2 (0x004bc000)

baum
()
Ответ на: комментарий от tux2002

Я положил эту библиотеку в /lib к сожалению не полегчало

#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
# nisplus or nis+ Use NIS+ (NIS version 3)
# nis or yp Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# [NOTFOUND=return] Stop searching if not found so far
#

# passwd: files nis
# shadow: files nis
# group: files nis

passwd: compat
group: compat

hosts: files dns
networks: files

services: files
protocols: files
rpc: files
ethers: files
netmasks: files
netgroup: files
bootparams: files

automount: files
aliases: files

anonymous
()
Ответ на: комментарий от tux2002

tux2002 огромное Вам СПАСИБО мне полегчало после добавления предложенной Вами библиотеки!!!

anonymous
()
Ответ на: комментарий от tux2002

Да действительно при замене двух строк на files нет необходимости в дополнительных библиотеках. По всей видимости разный способ декодеровки пароля. Сам бы я на это конечно внимание не обратил!

anonymous
()
Ответ на: комментарий от anonymous

Login сначала должен проверить есть ли пользователь в системе.
За разрешение имён отвечает подсистема NSS.
Настраивается она /etc/nsswitch.conf. 
По этим настройкам Login получает uid пользователя.
Пользователь может быть нелокальным.
Пароли уже потом. 

Декодировка здесь не при чём.
Упрощённо Login наоборот кодирует введённый пароль и сравнивает с тем что в shadow (для чего он должен работать под 0). Потом понижает свои привелегии до uid gid пользователя и запускает default_shell. В slackware без PAM примерно так и происходит.

tux2002
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.