📄 00000001.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: <A HREF="mailto:HYD.bbs@bbs.ee.nthu.edu.tw.">HYD.bbs@bbs.ee.nthu.edu.tw.</A> (追风男孩), 信区: linux <BR>标 题: 如何安装 shadow <BR>发信站: ☆清华电机☆ Thu Jun 1 23:29:32 1995 <BR>转信站: 无 (post digest) <BR> <BR>★ 您将可以在 linux.csie.nctu.edu.tw 的 gopher server 中取得这份文件 ! <BR> <BR> <BR> 0. 前言 : <BR> 真希望 shadow password 会变成 Linux Distribution 的 default, <BR> 那就可以省掉很多很多麻烦了.... <BR> <BR> 1. shadow 的优缺 : <BR> shadow 将 user 真正编码後的密码放在 /etc/shadow 中, 而在原 <BR> /etc/passwd 中密码栏为一 *, 而 /etc/shadow 只有 root 跟属於 <BR> shadow group 的人才能读取密码. 因此增加了安全性, 相对的也 <BR> 增加了应用程式的不便. 因此一些须要读取密码的应用程式须要 <BR> 跟 libshadow.a 连结, 也要 setgid 给 shadow, 有时甚至得修改 <BR> source code 中有关 getpass() crypt() 的部份. 此外, shadow <BR> 对 account 可有 expire date 并有 /etc/login.defs 对 login <BR> 作控制及设定, 也是一大优点. <BR> <BR> <BR> <BR> 2. 要到那去抓呢 ? <BR> ftp.edu.tw:/Op/Linux/packages/Admin 中有 shadow-3.3.1.tar.gz <BR> 而 shadow-3.3.2.patch 是为 linux 作的 patch, 并不是真的3.3.2 <BR> 版. 而我个人曾自己修改 shadow-3.3.1 并增加一些功能, 放在 <BR> ftp.edu.tw:/Op/Linux/collect/source/shadow/private 下, 您亦 <BR> 可试试. <BR> <BR> 3. 如何安装 ? <BR> 解开後应该打 make 就行了, 没 error 後打 make save, 会备份旧的 <BR> util 到 save/ 下, 再打 make install. <BR> 然後用 whereis 找一下 passwd/chsh/chfn/.. 等看看有没有重复的, <BR> 杀掉旧的 binary. 再来 .. <BR> 1) cd /etc <BR> 2) pwconv <BR> 3) mv -f npasswd passwd <BR> 4) mv -f nshadow shadow <BR> 5) touch gshadow <BR> 6) chmod 640 shadow gshadow <BR> 7) chown root.shadow shadow gshadow <BR> 8) 用 pwck, grpck 检查一下是否有 error. <BR> 检查一下 /etc/login.defs 存不存在, 并改一下内容, 由其是 mail <BR> 那行. 试著 login 一下, 再试试 passwd/chfn/chsh 等, 没问题就 <BR> <BR> 那行. 试著 login 一下, 再试试 passwd/chfn/chsh 等, 没问题就 <BR> 恭喜了. <BR> <BR> 4. 如何 compile 跟密码有关的程式 ?! <BR> 换 shadow 後, 有些东西如 ftpd, sudo, screen 等须要重 compile, <BR> 首先能找到已为 shadow 改过的程式是最好, 找不到时就得自己改啦. <BR> 以下是须要注意的 : <BR> 0) 在有 getpwnam() getpwuid() crypt() 的 *.c 中 include <shadow.h> <BR> 并在 Makefile 中加 -lshadow 以跟 shadow-library link, 若作 <BR> 出来的程式对密码不能 work, 再参照 1~3 修改. <BR> 1) getpwnam() getpwuid() 取得的 pw_passwd 为 *, 须用 getspnam() <BR> getspuid() 来取得真正密码. (可参考 /usr/include/shadow.h) <BR> 2) crypt() 须用 pwd_encrypt() 取代才可用 16 字元的密码. <BR> 3) getpass(), 有的程式用自己的 getpass, 有时只抓 8 字元, 这时 <BR> 16 字元的密码就挂了, 改用系统的 getpass() 就好了. <BR> <BR> 5. 权限 : <BR> 若不是用 root 执行的程式如 xlock 须要 chgrp shadow, chmod g+s <BR> shadow 才能读到 /etc/shadow. <BR> <BR> 6. Good luck !! <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -