6.54. Shadow-4.0.9

Shadow 软件包包含用于安全处理密码的程序。

预计编译时间: 0.4 SBU
所需磁盘空间: 13.7 MB
安装依赖于: Bash、Binutils、Bison、Coreutils、Diffutils、GCC、Gettext、Glibc、Grep、Make 和 Sed

6.54.1. Shadow 的安装

[Note]

注意

如果您想强制使用强密码,请参阅 http://www.linuxfromscratch.org/blfs/view/svn/postlfs/cracklib.html 以了解如何在构建 Shadow 之前安装 Cracklib。然后将 --with-libcrack 添加到下面的 configure 命令中。

准备编译 Shadow

./configure --libdir=/lib --enable-shared

禁用 groups 程序及其 man 手册的安装,因为 Coreutils 提供了更好的版本

sed -i 's/groups$(EXEEXT) //' src/Makefile
sed -i '/groups/d' man/Makefile

编译软件包

make

安装软件包

make install

Shadow 使用两个文件来配置系统的身份验证设置。安装这两个配置文件

cp -v etc/{limits,login.access} /etc

不要使用默认的 crypt 方法,而要使用更安全的 MD5 密码加密方法,这种方法也允许密码长度超过 8 个字符。还需要更改过时的/var/spool/mail用户邮箱位置,Shadow 默认使用该位置,改为当前使用的/var/mail位置。这两个都可以通过在将相关配置文件复制到其目标位置时进行更改来实现

[Note]

注意

如果您在构建 Shadow 时启用了 Cracklib 支持,请将以下内容插入到下面给出的 sed 命令中

-e 's@DICTPATH.*@DICTPATH\t/lib/cracklib/pw_dict@'
sed -e's@#MD5_CRYPT_ENAB.no@MD5_CRYPT_ENAB yes@' \
    -e 's@/var/spool/mail@/var/mail@' \
    etc/login.defs.linux > /etc/login.defs

将错放的程序移动到其正确的位置

mv -v /usr/bin/passwd /bin

将 Shadow 的库移动到更合适的位置

mv -v /lib/libshadow.*a /usr/lib
rm -v /lib/libshadow.so
ln -sfv ../../lib/libshadow.so.0 /usr/lib/libshadow.so

useradd 程序的 -D 选项需要/etc/default目录才能正常工作

mkdir -v /etc/default

6.54.2. 配置 Shadow

此软件包包含用于添加、修改和删除用户和组的实用程序;设置和更改他们的密码;以及执行其他管理任务。有关 密码影子 含义的完整解释,请参阅doc/HOWTO解压后的源代码树中的文件。如果使用 Shadow 支持,请记住,需要验证密码的程序(显示管理器、FTP 程序、pop3 守护程序等)必须是 Shadow 兼容的。也就是说,它们需要能够使用影子密码。

要启用影子密码,请运行以下命令

pwconv

要启用影子组密码,请运行

grpconv

在正常情况下,密码尚未创建。但是,如果稍后返回此部分以启用影子,请使用 passwd 命令重置任何当前用户密码,或使用 gpasswd 命令重置任何组密码。

6.54.3. 设置 root 密码

为用户 root 选择一个密码,并通过运行以下命令进行设置

passwd root

6.54.4. Shadow 的内容

已安装的程序: chage、chfn、chpasswd、chsh、expiry、faillog、gpasswd、groupadd、groupdel、groupmod、grpck、grpconv、grpunconv、lastlog、login、logoutd、mkpasswd、newgrp、newusers、passwd、pwck、pwconv、pwunconv、sg(链接到 newgrp)、useradd、userdel、usermod、vigr(链接到 vipw)和 vipw
已安装的库: libshadow.[a,so]

简短描述

chage

用于更改强制密码更改之间的最大天数

chfn

用于更改用户的全名和其他信息

chpasswd

用于更新一系列用户帐户的密码

chsh

用于更改用户的默认登录 shell

expiry

检查并执行当前的密码过期策略

faillog

用于检查登录失败日志,设置帐户被阻止前的最大失败次数,或重置失败计数

gpasswd

用于向组添加和删除成员和管理员

groupadd

使用给定的名称创建组

groupdel

删除具有给定名称的组

groupmod

用于修改给定组的名称或 GID

grpck

验证组文件的完整性/etc/group/etc/gshadow

grpconv

从普通组文件创建或更新影子组文件

grpunconv

更新/etc/group/etc/gshadow然后删除后者

lastlog

报告所有用户或给定用户的最近登录

login

系统使用它来让用户登录

logoutd

是一个守护程序,用于强制执行对登录时间和端口的限制

mkpasswd

生成随机密码

newgrp

用于在登录会话期间更改当前 GID

newusers

用于创建或更新一系列用户帐户

passwd

用于更改用户或组帐户的密码

pwck

验证密码文件的完整性/etc/passwd/etc/shadow

pwconv

从普通密码文件创建或更新影子密码文件

pwunconv

更新/etc/passwd/etc/shadow然后删除后者

sg

当用户的 GID 设置为给定组的 GID 时,执行给定的命令

su

使用替换用户和组 ID 运行 shell

useradd

使用给定的名称创建一个新用户,或更新默认的新用户信息

userdel

删除给定的用户帐户

usermod

用于修改给定用户的登录名、用户标识 (UID)、shell、初始组、主目录等

vigr

编辑/etc/group/etc/gshadow文件

vipw

编辑/etc/passwd/etc/shadow文件

libshadow

包含此软件包中大多数程序使用的函数