|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Alexander Abutov 2:5020/1057.225 11 Dec 2002 15:56:00 To : All Subject : passwd,Linux-PAM & chroot -------------------------------------------------------------------------------- Hикто passwd и Linux-PAM в chroot не запихивал? Имеем RH8(2.4.18-14smp) В целом, я пытаюсь положить в chroot польностью Qmail и все пользовательские каталоги (не бейте ногами). Соответственно в этом chroot'e желательно создавать своих ползователей и устанавливать им пароль. man passwd и man pam прочитаны (уж в части FILES точно). Что делаю: (Здесь приведен кусок, имеющий отношение к проблеме, из более полного скрипта по установке Qmail в chroot) === Cut === rootdir="/mailchroot" mkdir -p $rootdir && cd $rootdir mkdir -p bin dev etc home lib/i686 lib usr/sbin usr/bin usr/lib usr/kerberos/lib mknod -m 666 $rootdir/dev/null c 1 3 mknod -m 644 $rootdir/dev/random c 1 8 cp /usr/bin/passwd $rootdir/usr/bin/passwd cp /usr/sbin/useradd $rootdir/usr/sbin/useradd cp /usr/sbin/userdel $rootdir/usr/sbin/userdel cp /etc/localtime $rootdir/etc/localtime cp /lib/i686/libc.so.6 $rootdir/lib/i686/libc.so.6 cp /lib/ld-linux.so.2 $rootdir/lib/ld-linux.so.2 cp /lib/libcrypt.so.1 $rootdir/lib/libcrypt.so.1 cp /lib/libresolv.so.2 $rootdir/lib/libresolv.so.2 cp /lib/libdl.so.2 $rootdir/lib/libdl.so.2 cp /lib/libtermcap.so.2 $rootdir/lib/libtermcap.so.2 cp /usr/lib/libglib-2.0.so.0 $rootdir/usr/lib/libglib-2.0.so.0 cp /usr/lib/libgmodule-2.0.so.0 $rootdir/usr/lib/libgmodule-2.0.so.0 cp /usr/lib/libgobject-2.0.so.0 $rootdir/usr/lib/libgobject-2.0.so.0 cp /usr/lib/libpopt.so.0 $rootdir/usr/lib/libpopt.so.0 cp /usr/lib/libuser.so.1 $rootdir/usr/lib/libuser.so.1 #Copying Linux-PAM cp -R /etc/pam.d $rootdir/etc/ (чтоб не мелочиться) cp /lib/libpam.so.0 $rootdir/lib/libpam.so.0 cp /lib/libpam_misc.so.0 $rootdir/lib/libpam_misc.so.0 cp /lib/libpamc.so.0 $rootdir/lib/libpamc.so.0 cp -R /lib/security $rootdir/lib/ (аналогично) #Additional libraries cp /lib/libnsl.so.1 $rootdir/lib/libnsl.so.1 cp /lib/libcrypto.so.2 $rootdir/lib/libcrypto.so.2 cp /lib/libdb-4.0.so $rootdir/lib/libdb-4.0.so cp /lib/libssl.so.2 $rootdir/lib/libssl.so.2 cp /lib/libutil.so.1 $rootdir/lib/libutil.so.1 cp /usr/kerberos/lib/libcom_err.so.3 $rootdir/usr/kerberos/lib/libcom_err.so.3 cp /usr/kerberos/lib/libdes425.so.3 $rootdir/usr/kerberos/lib/libdes425.so.3 cp /usr/kerberos/lib/libk5crypto.so.3 $rootdir/usr/kerberos/lib/libk5crypto.so.3 cp /usr/kerberos/lib/libkrb4.so.2 $rootdir/usr/kerberos/lib/libkrb4.so.2 cp /usr/kerberos/lib/libkrb5.so.3 $rootdir/usr/kerberos/lib/libkrb5.so.3 cp /usr/kerberos/lib/libkrbafs.so.0 $rootdir/usr/kerberos/lib/libkrbafs.so.0 cp /usr/lib/libglib-1.2.so.0 $rootdir/usr/lib/libglib-1.2.so.0 cp /usr/lib/libcrack.so.2 $rootdir/usr/lib/libcrack.so.2 cp /usr/lib/libgdbm.so.2 $rootdir/usr/lib/libgdbm.so.2 cp /usr/lib/liblber.so.2 $rootdir/usr/lib/liblber.so.2 cp /usr/lib/libldap.so.2 $rootdir/usr/lib/libldap.so.2 cp /usr/lib/libsasl.so.7 $rootdir/usr/lib/libsasl.so.7 #Copying Naming Service (man nsswitch.conf) cp /lib/libnss_files.so.2 $rootdir/lib/libnss_files.so.2 cp /lib/libnss_dns.so.2 $rootdir/lib/libnss_dns.so.2 echo -e 'passwd: files\nshadow: files\ngroup: files\nhosts: files dns\n' > $rootdir/etc/nsswitch.conf #Security subsystem (Здесь создаются /etc/passwd,shadow,group. Их содержание в данный момент не важно) echo -e '' > $rootdir/etc/passwd echo -e '' > $rootdir/etc/group echo -e '' > $rootdir/etc/shadow (Устанавиливаем права на файлы. 866 - группа всех демонов qmail) chown -R 0:886 $rootdir chmod 640 $rootdir/etc/* chmod -R 650 $rootdir/etc/skel chmod 640 $rootdir/etc/pam.d/* chmod 650 $rootdir/etc/pam.d chmod 400 $rootdir/etc/shadow chmod 650 $rootdir/etc === Cut === Далее все действия под root Заходим в chroot: # chroot /fsnp/mail /bin/sh Добавляем пользователя (успешно) # useradd -s /bin/false -d /home/admin -m admin Пытаемся поменять ему пароль (на что получаем:) # passwd admin Changing password for user admin. passwd: Critical error - immediate abort И больше ничего... Все бинарники по ldd проверены, необходимые so.X в выше приведенном скрипте копируются в chroot. Подозреваю, что passwd(PAM'y) нехватает еще чего-то... Если кто что-то похожее с passwd делал или может посоветовать что-нибудь по поводу создания пользователей внутри chroot'a - Помогите! PS. Есть конечно вариант с запуском passwd в основном дереве, и потом ручного перенесения соответствующих строчек в $rootdir/etc/passwd,group,shadow Hо это что-то уж больно криво. Good Luck, All! Alexander A. Abutov --- * Origin: -=ABU STATION=- (2:5020/1057.225) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/52823df72853.html, оценка из 5, голосов 10
|