6.51. Shadow-4.1.2.1

Shadow 包含用于在安全方式下处理密码的程序。

预计编译时间: 0.3 SBU
所需磁盘空间: 28 MB

6.51.1. 安装 Shadow

[注意]

注意

如果你打算强制使用高强度密码,请参考 http://www.linuxfromscratch.org/blfs/view/svn/postlfs/cracklib.html 以获得如何在安装 Shadow 之前先安装 Cracklib 的指导。然后在下面的 configure 命令中加入 --with-libcrack 项。

撤销安装 groups 的程序和它的手册,因为 Coreutils 提供了更好的版本:



sed -i 's/groups$(EXEEXT) //' src/Makefile.in


find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \;


撤销安装中文和韩文的手册页,因为 Man-DB 不能正确地格式化它们:



sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile.in


Shadow 支持在 UTF-8 编码环境下的其他编码的手册。Man-DB 可以通过我们安装的 convert-mans 脚本来转换并显示它们。



for i in de es fi fr id it pt_BR; do


    convert-mans UTF-8 ISO-8859-1 man/${i}/*.?


done





for i in cs hu pl; do


    convert-mans UTF-8 ISO-8859-2 man/${i}/*.?


done





convert-mans UTF-8 EUC-JP man/ja/*.?


convert-mans UTF-8 KOI8-R man/ru/*.?


convert-mans UTF-8 ISO-8859-9 man/tr/*.?


使用更加安全的密码加密方法 MD5 而不是默认的 crypt,并且它可以允许长度超过 8 位的密码。把废弃的 /var/spool/mail 邮箱位置(Shadow 默认使用的用户邮箱)改为当前使用的 /var/mail 也是很有必要的:



sed -i -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD MD5@' \


       -e 's@/var/spool/mail@/var/mail@' etc/login.defs


[注意]

注意

如果你在编译 Shadow 时启用了 Cracklib 支持,请运行:



sed -i 's@DICTPATH.*@DICTPATH\t/lib/cracklib/pw_dict@' \


    etc/login.defs


为编译 Shadow 做准备:



./configure --sysconfdir=/etc


编译软件包:



make


这个软件包没有附带测试套件。

安装软件包:



make install


移动一些放错位置的程序到正确位置:



mv -v /usr/bin/passwd /bin


6.51.2. 配置 Shadow

这个软件包中含有用来增加、修改和删除用户或组、设置和更改他们的密码、和执行其他管理任务的工具。为了获得对 password shadowing 的完全解释,请参见 doc/HOWTO 文件,它在解包后的源码目录树中。假如要使用 Shadow 支持,请注意那些需要对密码进行校验的程序(如显示管理器、FTP 程序、pop3进程等)必须兼容 Shadow。也就是说,他们需要能够与影子密码一起工作。

为了使用影子密码,请运行下面的命令:



pwconv


为了使用影子密码,运行:



grpconv


Shadow 中关于 useradd 工具的固有配置有一些警告需要作出解释。首先,useradd 工具的默认操作是创建用户以及和用户同名的组。在默认情况下,用户的 ID(UID) 和组的 ID(GID) 号是以 1000 开头的。这就意味着,如果你没有给 useradd 设置参数,系统上的每个用户都将成为一个独立的组。如果不希望有这种结果,你需要给 useradd 添加上参数 -g。默认的参数放置在 /etc/default/useradd 文件中。你可以更改此文件中的两个参数来满足你特定的需求。

/etc/default/useradd 参数的解释

GROUP=1000

这个参数设置了 /etc/group 文件中使用的组号的开头。你可以把它更改成你所希望的数值。注意 useradd 不能设置重复的 UID 或 GID 号。如果在这个参数中使用了设置的号,那么接下来会使用这个号后可以使用的号。并且也要注意的是如果你一开始使用不加参数 -guseradd 命令时,你系统上的组号没有以 1000 开头,你会在终端上看到一面一段话:useradd: unknown GID 1000。你可以不理会这条信息,组号 1000 仍然会被使用。

CREATE_MAIL_SPOOL=yes

这个参数可以使 useradd 命令为新创建的用户创立 一个邮箱文件。useradd 命令会用 0660 把这个文件的权限给 mail组。如果你不希望由 useradd 创建这些邮箱文件,请运行下面的命令:



sed -i 's/yes/no/' /etc/default/useradd


6.51.3. 设置 root 密码

运行下面的命令为 root 用户设置一个密码:



passwd root


6.51.4. Shadow 的内容

安装的程序: chage, chfn, chgpasswd, chpasswd, chsh, expiry, faillog, gpasswd, groupadd, groupdel, groupmems, groupmod, grpck, grpconv, grpunconv, lastlog, login, logoutd, newgrp, newusers, nologin, passwd, pwck, pwconv, pwunconv, sg (link to newgrp), su, useradd, userdel, usermod, vigr (link to vipw), and vipw

简要描述

chage

用于设置必须对密码进行更改的最大间隔天数

chfn

用于对用户的全名及其他信息进行修改

chgpasswd

用于对一整个系列的组账号密码进行更新

chpasswd

用于对一整个系列的用户账号密码进行更新

chsh

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

expiry

检查并加强当前的密码过期策略

faillog

用于检查记录登录失败的日志,或是设置账户在被锁定前最大的登录失败次数,亦可用于重置登录失败的次数

gpasswd

用来增加和删除组中的成员和管理员

groupadd

用指定的名称建一个组

groupdel

删除指定名称的组

groupmems

允许一个用户来管理他或她的组而不需要超级用户的特权。

groupmod

用来修改所指定组的名称或 GID

grpck

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

grpconv

从正常组文件中创建或更新一影子组文件

grpunconv

/etc/gshadow 中更新 /etc/group 并将前者删除

lastlog

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

login

被系统用来允许用户进行登录

logoutd

一个后台程序,用来加强对登录时间和端口进行限制

newgrp

用来在登录会话期间对当前的 GID 进行修改

newusers

用来对一整个系列的用户账户进行创建或更新

nologin

显示一个账户不可用的信息,被设计用来作为那些不准登录的账户的默认 shell

passwd

用来对一个用户或组账户进行密码修改

pwck

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

pwconv

从一个正常的密码文件中创建或更新一影子密码文件

pwunconv

/etc/shadow 中更新 /etc/passwd 并删除前者

sg

当一个用户的 GID 被设置到所给的组时执行所指定的命令

su

用另一个用户和组ID来运行一个 shell

useradd

用所给名称建立一个新的用户或更新默认新用户的信息

userdel

删除所指定的用户账户

usermod

用来更改所给用户的登录名、用户标识(UID)、shell、最初组、主目录等

vigr

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

vipw

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


Host by Unixetc