Linux Shadow-Password-HOWTO - 6. upgrade或patch程式

发表于:2007-06-22来源:作者:点击数: 标签:
6. 其他你需要升级(upgrade)或补强(patch)程式 即使 shadow suite 对大部分需要存取密码档的程式可以包含更新程式,但是仍有一些需要存取密码档的额外程式在系统中。 如果你正执行 Debian 版本 (或者即使你不是),你可以找到 Debian 需要 rebuild 的原始码:

   
  6. 其他你需要升级(upgrade)或补强(patch)程式
  即使 shadow suite 对大部分需要存取密码档的程式可以包含更新程式,但是仍有一些需要存取密码档的额外程式在系统中。
  

  如果你正执行 Debian 版本 (或者即使你不是),你可以找到 Debian 需要 rebuild 的原始码: ftp://ftp.debian.org/debian/stable/source/
  
  这节剩馀的部分在讨论更新 adduser, wu_ftpd, ftpd, pop3d, xlock,xdm 和 sudo 程式以便於让这些程式支援 shadow suite。
  
  请看 Adding Shadow Support to a C program 这节,主要是在讨论如何将 shadow 支援放到其他需要程式(虽然这些程式需要以 SUID root 执行或 SGID shadow 需正确存取 shadow 档)。
  
  
  6.1 Slackware adduser 程式
  Slackware 版本包含一个新增使用者的交互程式叫做 /sbin/adduser。该程式的 shadow 版本可以在 ftp://sunsite.unc.edu/pub/Linux/system/ Admin/accounts/adduser.shadow-1.4.tar.gz找到。
  
  我很鼓励你使用 Shadow Suite 供应的程式(例如useradd, usermod, 和 userdel) 来取代 slackware 的adduser 程式。 它们只需花一点时间学习,但是它将值得的,因为你可以看到更多控制和在正确展现锁住 /etc/passwd 和 /etc/shadow 的档案(adduser 就没有办法罗)。
  
  
  参考 Putting the Shadow Suite to use 该节得到更多相关资讯。
  
  
  但是如果你已经拥有罗,接下来是你要做的部分:
  
  
  tar -xzvf adduser.shadow-1.4.tar.gz
  cd adduser
  make clean
  make adduser
  chmod 700 adduser
  cp adduser /sbin
  
  
  6.2 wu_ftpd Server
  大部分的 Linux 系统都有 wu_ftpd server。 如果你的版本没有附带 shadow 安装,那麽你的 wu_ftpd 就没有办法对 shadow 编译。 wu_ftpd 是从 .netd/tcpd 开始且以 root 权限执行的程式。 如果你正在跑一个旧版的 wu_ftpd daemon, 无论如何你将要更新它因为较旧版本有 bug 将危及 root 权限。(参考 Linux security home page 得到更多相关资讯)。
  
  
  幸运的是你只需要取的有嵌入 shaow 的原始码和重新编译就可以罗!
  
  如果你不是正在执行 ELF 系统, wu_ftp server 可以从 Sunsite 网址 wu-ftp-2.4-fixed.tar.gz 找到。
  
  当你获得这个 server,把它放在 /usr/src目录,然後输入:
  
  
  cd /usr/src
  tar -xzvf wu-ftpd-2.4-fixed.tar.gz
  cd wu-ftpd-2.4-fixed
  cp ./src/config/config.lnx.shadow ./src/config/config.lnx
  
  然後编辑 ./src/makefiles/Makefile.lnx,和改变
  
  LIBES = -lbsd -support
  
  这一行到:
  LIBES = -lbsd -support -lshadow
  
  现在你已经准备好执行 script 建立跟安装:
  
  
  cd /usr/src/wu-ftpd-2.4-fixed
  /usr/src/wu-ftp-2.4.fixed/build lnx
  cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old
  cp ./bin/ftpd /usr/sbin/wu.ftpd
  
  这是用在 Linux shadow configuration file、编译和安装 server。
  
  在我的 Slackware 2.3 系统,我也需要在执行前作下列步骤:
  
  build:
  
  cd /usr/include/netinet
  ln -s in_systm.h in_system.h
  cd -
  
  在 ELF 系统下会有编译问题的报告,但是下一版的 Beta 版则可以正确的执行。可以从 wu-ftp-2.4.2-beta-10.tar.gz 找到。
  
  当你获得这个 server,把它放在 /usr/src目录,然後输入:
  
  cd /usr/src
  tar -xzvf wu-ftpd-2.4.2-beta-9.tar.gz
  cd wu-ftpd-beta-9
  cd ./src/config
  
  然後编辑 config.lnx,和改变:
  
  #undef SHADOW.PASSWORD
  
  这一行到:
  #define SHADOW.PASSWORD
  
  然後,
  cd ../Makefiles
  
  且编辑 Makefile.lnx 档和改变
  
  LIBES = -lsupport -lbsd # -lshadow
  
  这一行到:
  LIBES = -lsupport -lbsd -lshadow
  
  然後建立(build)和安装(install):
  cd ..
  build lnx
  cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old
  cp ./bin/ftpd /usr/sbin/wu.ftpd
  
  注:你应该检查你的 /etc/inetd.conf 档来确认你的 wu.ftpd server 是不是真的活著。有些版本可能将 server daemons 放在不同的地方或用不同的名字表示。
  
  
  6.3 标准 ftpd
  如果你正在执行标准的 ftpd server,我将建议你更新 wu_ftpd server。离开上述的 bug ,系统会比较安全
  
  如果你坚持在标准模式,或者你需要 NIS 支援,在 Sunsite ftpd-shadow-nis.tgz 有参考资料。
  
  
  6.4 pop3d (Post Office Protocol 3)
  如果你需要支援第三版 Post Office Protocol (POP3),你将需要重新编译 pop3d 程式。 pop3d 可以透过 inetd/tcpd 以 root 权限正常的执行。
  
  从 Sunsite 有两个版本可以获得: pop3d-1.00.4.linux.shadow.tar.gz 和 pop3d+shadow+elf.tar.gz
  
  这两个都很简单可以安装。
  
  
  6.5 xlock
  
  如果你安装 shadow suite,然後执行 X Windows System 和 lock 萤幕没以更新你的 xlock 档, 你将必须使用 CNTL-ALT-Fx 去切换另一个 tty,签入(login)和杀掉(kill) xlock process (或使用 CNTL-ALT-BS 杀掉 X server)。很幸运的这也很容易可以更新你的 xlock 程式。
  
  如果你正执行 XFree86 Versions 3.x.x,且正正确使用 xlockmore (是一个很棒的萤幕保护程式). 这个套件支援 shadow,只要重新编译即可。如果你有任何较老的 xlock 版本,我建议你更新下列版本:
  
  xlockmore-3.5.tgz 可以从 ftp://sunsite.unc.edu/pub/Linux/X11/xutils/screensavers/xlockmore-3.7.tgz 网站获得。
  
  基本上这是你所要的。
  
  撷取 xlockmore-3.7.tgz ,并将它放在 /usr/src 目录并解压缩:
  
  tar -xzvf xlockmore-3.7.tgz
  
  编辑这个档: /usr/X11R6/lib/X11/config/linux.cf, 和改变
  
  #define HasShadowPasswd NO
  
  这一行到:
  
  #define HasShadowPasswd YES
  
  然後建立可执行档:
  
  cd /usr/src/xlockmore
  xmkmf
  make depend
  make
  
  然後搬移所以档案到正确目录且更新档案拥有者及执行权限:
  
  
  cp xlock /usr/X11R6/bin/
  cp XLock /var/X11R6/lib/app-defaults/
  chown root.shadow /usr/X11R6/bin/xlock
  chmod 2755 /usr/X11R6/bin/xlock
  chown root.shadow /etc/shadow
  chmod 640 /etc/shadow
  
  
  你的 xlock 将可以正确的运作罗!
  
  
  6.6 xdm
  xdm 是一个可以表示在 X-Windows 签入画面的程式。某些系统开始 xdm 当系统被告知道一个特定的执行水准(参考 /etc/inittab)。
  
  
  伴随著 Shadow Suite 安装, xdm 需要被更新。很幸运的这也很容易可以更新你的 xdm 程式。
  
  
  
  xdm.tar.gz 可以从下列网址获得: ftp://sunsite.unc.edu/pub/Linux/X11/xutils/xdm.tar.gz
  
  撷取 xdm.tar.gz 档并将它放在 /usr/src目录然後解压缩:
  
  tar -xzvf xdm.tar.gz
  
  编辑这个档: /usr/X11R6/lib/X11/config/linux.cf,且改变
  
  #define HasShadowPasswd NO
  
  这一行到:
  
  #define HasShadowPasswd YES
  
  然後建立可执行档:
  
  cd /usr/src/xdm
  xmkmf
  make depend
  make
  
  然後搬移所有档案正确目录:
  
  cp xdm /usr/X11R6/bin/
  
  xdm 以 root 权限在执行,所以你不需要改变档案存取权限。
  
  
  
  6.7 sudo
  sudo 程式允许系统管理员让使用者可以以 root 权限正常的执行程式。这是非常方便的因为它可以限制管理者执行 root 帐号本身权限,还可以允许使用者作像 mounte drives 的事情。
  
  sudo 需要读取密码因为在执行时需确认使用者密码。 sudo 已经执行 SUID root,所以存取 /etc/shadow 党不是问题。
  
  sudo 支援 shadow suite 可在下列网址取得: ftp://sunsite.unc.edu/pub/Linux/system/Admin/sudo-1.2-shadow.tgz
  
  警告:当你安装 sudo 你的 /etc/sudoers 档将取代预设值,所以你需要备份原始程式。如果你有家任何设定在预设程式,你可能要编辑 Makefile 且移除复制该档到 /etc 的这行。
  
  
  该套件已经对 shadow 进行设定,所以只要重新编译该套件即可 (把它放在 /usr/src 目录):
  
  cd /usr/src
  tar -xzvf sudo-1.2-shadow.tgz
  cd sudo-1.2-shadow
  make all
  make install
  
  
  6.8 imapd (E-Mail [pine package])
  imapd 是一个像 pop3d 的 email server。 imapd 随著 Pine E-mail 套件发生。 其操作手册在介绍该套件时即包含 shad

原文转自:http://www.ltesting.net