Linux Shadow-Password-HOWTO - 4. 编译程式
4.1 解压缩 在接收套件後第一个步骤就是 unpacking。该套件是 tar 档案格式使用 gzip 压缩,所以首先将该档案移到 /usr/src ,然後输入: tar -xzvf shadow-current.tar.gz 这将会 unpack 到一个目录:/usr/src/shadow-YYMMDD 4.2 设定 config.h 档 第一件事是你需要复制 Makefile 和 config.h 档: cd /usr/src/shadow-YYMMDD cp Makefile.linux Makefile cp config.h.linux config.h 然後你应该留意 config.h 档。 该档案包括某些设定选项的定义。如果你使用 建议 套件,我建议你在第一次设定关掉 group shadow support。 shadowed group passwords 预设值是开启的。 在 config.h 档关到这个设定,且改变 #define SHADOWGRP 变成 #undef SHADOWGRP。我建议您一开始关掉它们,然後如果你真的需要 group passwords 和 group administrators 时你在开启它们和重新编译。 如果你开启它, 你 必须 建立 /etc/gshadow 档。 开启长密码的选项也不建议使用。 不要 改变 #undef AUTOSHADOW 的设定。 AUTOSHADOW 选项初始设计是用以让 shadow 可以像 function 一样执行。理论上听起来不错,但是没办法正确的运作。 如果你开启这个选项,且这个程式以 root 权限在执行, 它会像 root 权限执行一项呼叫 getpwnam() ,然後变更 /etc/passwd 档 (有no-longer-shadowed 密码)。 这类程式包括 chfn 和 chsh。(如果 root 在呼叫 getpwnam() 之前使用 chfn 和 chsh,使用者帐号将没有办法真实且有效交易。) 如果你要建立 libc,同样的警告也有效,它有个 SHADOW_COMPAT 作相同的事。 它 不应该被使用!如果你开始从你的 /etc/passwd 档撷取编码密码,这会是个问题。 如果你正使用比 4.6.27 还高的 libc 版本,你将需要在 config.h 和 Makefile两个档做很多改变。在 config.h 档的编辑和改变:从: #define HAVE_BASENAME 到: #undef HAVE_BASENAME 然後在 Makefile 档的改变: SOBJS = smain.o env.o entry.o susetup.o shell.o \ sub.o mail.o motd.o sulog.o age.o tz.o hushed.o SSRCS = smain.c env.c entry.c setup.c shell.c \ pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \ tz.c hushed.c SOBJS = smain.o env.o entry.o susetup.o shell.o \ sub.o mail.o motd.o sulog.o age.o tz.o hushed.o basename.o SSRCS = smain.c env.c entry.c setup.c shell.c \ pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \ tz.c hushed.c basename.c 这些包含在 basename.c 程式码的改变均需倍包括在 libc 4.6.27 内。 4.3 备份原始程式 在 shadow suite 要更新时,制作程式备份将是一个很好的点子。在 Slackware 3.0 系统中,这些档案是: /bin/su /bin/login /usr/bin/passwd /usr/bin/newgrp /usr/bin/chfn /usr/bin/chsh /usr/bin/id 这 BETA 套件已经有个 储存 在 Makefile 的目的档,但是因为不同的版本通常将程式放在不同的地方,因此常被人评论。 你应该备份你的 /etc/passwd 档,但是你要很小心地命名,不然如我你将它放在相同目录,你将无法重写 passwd 命令。 4.4 执行 make 你需要以 root 权限签入以执行安装程序. 执行 make 来编译套件中的执行档: make all 你可能会看到警告语: rcsid defined but not used. 这没关系,因为作者使用版本控制套件才会发生。 |
相关文章:
- · Linux技巧:bz2文件如何解压缩
- · Linux技巧:列目录时显示中文文件名
- · Linux技巧:当终端出现混乱时,如何让它恢复正常
- · Linux技巧:强行退出X
- · Linux技巧:软驱的使用
- · Linux技巧:软驱的使用
- · Linux技巧:定制VI
- · 命令详解:efax
- · 命令详解:e2fsck
- · 命令详解:tee
- · 如何在大硬盘上安装 Linux
- · Linux下Grub开机管理程式安装简介
- · LINUX的起源和特色
- · Linux下NFS网络文件系统设定及管理
- · 如何在 RedHat 中限制、允许telnet&ftp功能
- · 如何改变X-WINDOW的分辨率?
- · RedHat 7.0 安装 NAT 作法简介
- · Linux命令Man解释:whatis:搜寻特定指令
- · Linux命令Man解释:mkdir:创建目录
- · Linux命令Man解释:userdel:删除使用者帐号及相关档案
- · Linux命令Man解释:shutdown:让系统关机
- · Linux命令Man解释:mkfs:建立linux文件系统
- · Linux命令Man解释:groupmod :修改组
- · Linux命令Man解释:lilo :安装引导装载程序
- · Linux命令Man解释:losetup :设定与控制loop devices
- · rpm命令参数列表
- · rpm命令参数列表
- · X-Window中如何设置字体
- · Linux命令Man解释:apropos :在whatis资料库中搜寻特定字串
- · Linux命令Man解释:chfn :改变你的finger讯息
- · Linux命令Man解释:chsh :更换你登入时所用的shell
- · 为什么我用 ipchains 构建的子网里的机器不能用 ftp?
- · Linux与其他操作系统的区别
- · 汉化你的RedHat全攻略(4)- FAQ和一些总结
- · 汉化你的RedHat全攻略(3)- RedHat 7.0上的中文环境和输入法
- · "/dev/tty0"不见了怎麽救回来?
- · /dev下 cua*被删除,该如何恢复?
- · 如何删除档案中的重复的行
