Chinaunix首页 | 论坛 | 博客
  • 博客访问: 239643
  • 博文数量: 65
  • 博客积分: 1430
  • 博客等级: 中尉
  • 技术积分: 700
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-27 00:30
文章分类
文章存档

2011年(65)

分类: LINUX

2011-08-08 00:25:55

实现让用户具备账号密码才可以登录
     解法:1.启动至少一个终端(mingetty会调用login程序)
           2.打印登录提示给用户
           3.提供四个文件:/etc/passwd,/etc/shadow ,/etc/group,/etc/gshadow
           4,login-->/etc/nsswitch.conf(名称服务开关nsswitch的配置文件)
             -->库文件
          login调用库文件把账号转换成id号
          nsswitch的配置文件里定义了login根据哪种机制找用户的账号和id的对应
          关系
          可以查找账号和id的对应关系的机制:
          mysql:table
          dns
          ldap
          nis
          当使用cp命令拷贝链接文件时应注意的问题:
          eg:/lib/libm.so.1(链接文件)-->/lib/libm.so.2.4.1(原文件)
              cp /lib/libm.so.1 /mnt/sysroot/lib
              拷过去的其实是文件本身,名字却是链接文件的名字
              比较好的拷贝方法是把链接文件和原文件都拷过去
              cp -d /lib/libm.so.1 /mnt/sysroot/lib
        
                 
          好了,现在开始考库文件:
          cp /usr/lib/libnss3.so /mnt/sysroot/usr/lib
          cp /usr/lib/libnssckbi.so /mnt/sysroot/usr/lib
          cp /usr/lib/libnssutil3.so /mnt/sysroot/usr/lib
          cp -d /usr/lib/libnss_files.so /mnt/sysroot/usr/lib
          cp -d /usr/lib/libness_compat.so /mnt/sysroot/usr/lib
          ls !$
          ls -l /lib |grep libnss
          cp -d /lib/libnss_files* /mnt/sysroot/lib
          cp -d /lib/libnss_compat* /mnt/sysroot/lib
          ll /mnt/sysroot/usr/lib/
         
        1.考好库文件就开始定义启动终端的内容:
          在/etc/inittab里添加
          1:2345:respawn:/sbin/mingetty tty1(终端1)
          2:2345:respawn:/sbin/mingetty tty2(终端2)
          编辑/etc/rc.d/rc.sysinit
          将最后的/bin/bash删掉,因为不能让bash直接执行,需要让用户登录才可以执行
        2.打印提示信息的设置
          cd /mnt/sysroot/etc/
          vim sysconfig/network
          HOSTNAME=little.linux.org
          :wq
          vim rc.d/sysinit
          加上 [ -f /etc/sysconfig/network ]&& source /etc/sysconfig/network
               [ -z $HOSTNAME -o $HOSTNAME='(none)' ]&&HOSTNAME=localhost
               echo "$HOSTNAME" > /proc/sys/kernel/hostname
          vim issue
           Welcome to little.linux.org.
           Username:root,Passwd:redhat
           :wq
           sync
           sync
           sync
        3. cp -p /etc/{passwd,shadow,group,gshadow}  /mnt/sysinit/etc
        4.cp /etc/nsswitch.conf /mnt/sysinit/etc
          which login (系统自带的login太麻烦,不能用,我们需要从网上下个login)
          cd /mnt/sysinit/bin
          lftp 192.168.0.254
          cd pub
          ls
          get login
          bye
          chmod +x login
          ldd login
          将没考的库文件考全
          cp -d /lib/libcrypt.so.1 /mnt/sysinit/lib
          cp -d /lib/libcrypt-2.5.so /mnt/sysinit/lib
          cp /lib/libm.so.6 /mnt/sysinit/lib
         
          sync
          sync
          sync
       
         
          ln -s bash sh
         (bash在启动系统时没问题但是在切换到级别1时,级别1只找sh不找bash,所以应该给bash创建个链接)
阅读(1455) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~