📄 shadow.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=gb2312" />
<title>
6.54. Shadow-4.0.9
</title>
<link rel="stylesheet" href="../stylesheets/lfs.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1" />
<link rel="stylesheet" href="../stylesheets/lfs-print.css" type="text/css" media="print" />
</head>
<body id="lfs" class="6.1">
<div class="navheader">
<div class="headertitles">
<h4>
Linux From Scratch - Version 6.1
</h4>
<h3>
Chapter 6. 安装系统基础软件
</h3>
</div>
<ul class="headerlinks">
<li class="prev">
<a accesskey="p" href="psmisc.html" title="Psmisc-21.6">后退</a>
<p>
Psmisc-21.6
</p>
</li>
<li class="next">
<a accesskey="n" href="sysklogd.html" title="Sysklogd-1.4.1">前进</a>
<p>
Sysklogd-1.4.1
</p>
</li>
<li class="up">
<a accesskey="u" href="chapter06.html" title="Chapter 6. 安装系统基础软件">上一级</a>.
</li>
<li class="home">
<a accesskey="h" href="../index.html" title="Linux From Scratch - Version 6.1">回首页</a>
</li>
</ul>
</div>
<div class="wrap" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<h1 class="sect1">
6.54. Shadow-4.0.9
</h1>
</div>
<div class="package" lang="zh_cn" xml:lang="zh_cn">
<p>Shadow 包含用于在安全方式下处理密码的程序。</p>
<div class="segmentedlist">
<div class="seglistitem">
<div class="seg">
<strong><span class="segtitle">预计编译时间:</span></strong> <span class="seg">0.4 SBU</span>
</div>
<div class="seg">
<strong><span class="segtitle">所需磁盘空间:</span></strong> <span class="seg">13.7 MB</span>
</div>
</div>
</div>
<div class="segmentedlist">
<div class="seglistitem">
<div class="seg">
<strong><span class="segtitle">安装依赖于:</span></strong> <span class="seg">Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed</span>
</div>
</div>
</div>
</div>
<div class="installation" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<h2 class="sect2">
6.54.1. 安装 Shadow
</h2>
</div>
<p>为编译 Shadow 做准备:</p>
<pre class="userinput"><kbd class="command">./configure --libdir=/lib --enable-shared</kbd></pre>
<p>
禁止安装 <span><strong class="command">groups</strong></span> 程序,Coreutils 软件包提供了一个更好的版本:</p>
<pre class="userinput"><kbd class="command">sed -i 's/groups$(EXEEXT) //' src/Makefile
sed -i '/groups/d' man/Makefile</kbd></pre>
<p>编译软件包:</p>
<pre class="userinput"><kbd class="command">make</kbd></pre>
<p>
安装软件包:
</p>
<pre class="userinput"><kbd class="command">make install</kbd></pre>
<p>
<a id="shadow-limits-login_access" name="shadow-limits-login_access"></a>Shadow 使用两个文件来为系统设置身份认证。下面安装这两个设置文件:</p>
<pre class="userinput"><kbd class="command">cp etc/{limits,login.access} /etc</kbd></pre>
<p>
<a id="shadow-login_defs" name="shadow-login_defs"></a>不使用默认的 <span class="emphasis"><em>crypt</em></span>
方法, 而使用更为安全的 <span class="emphasis"><em>MD5</em></span> 算法用于密码加密, 它同样允许密码长于8个字符。为用户邮箱改变陈旧的 <tt class="filename">/var/spool/mail</tt> 地址是同样有必要的。而 Shadow 默认普遍使用 <tt class="filename">/var/mail</tt>
地址。所有这些都可以通过在拷至目标地点之前,对相应的设置文件进行更改来达到:</p>
<pre class="userinput"><kbd class="command">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</kbd></pre>
<p>移动一些放错位置的符号连结或程序至其正确位置: </p>
<pre class="userinput"><kbd class="command">mv /usr/bin/passwd /bin</kbd></pre>
<p>移动 Shadow 的动态库到一个更为合适的地方:</p>
<pre class="userinput"><kbd class="command">mv /lib/libshadow.*a /usr/lib
rm /lib/libshadow.so
ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so</kbd></pre>
<p>
<span><strong class="command">useradd</strong></span> 程序的 <em class="parameter"><tt>-D</tt></em> 选项要求 <tt class="filename">/etc/default</tt> 目录的存在以便程序能够正常工作:</p>
<pre class="userinput"><kbd class="command">mkdir /etc/default</kbd></pre>
</div>
<div class="configuration" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<a id="conf-shadow" name="conf-shadow"></a>
<h2 class="sect2">
6.54.2. 配置 Shadow
</h2>
</div>
<p>
这个软件包中含有用来增加、修改和删除用户或组的工具,设置和更改他们的密码,和执行另一个管理级别的任务。为了获得对 <span class="emphasis"><em>password shadowing</em></span> 的完全解释,请参见
<tt class="filename">doc/HOWTO</tt> 文件,它在一个解包后的原码目录树中。假如要使用 Shadow 支持,请注意那些需要对密码进行校验的程序(如显示管理器、FTP 程序、pop3进程等)必须兼容 Shadow。也就是说,他们需要能够与影子密码一起工作。</p>
<p>为了使用影子密码,运行以下指令:</p>
<pre class="userinput"><kbd class="command">pwconv</kbd></pre>
<p>为使用组影子密码,运行:</p>
<pre class="userinput"><kbd class="command">grpconv</kbd></pre>
<p>
正常情况下,密码将仍没有被创建。但是,如果要在这之后再返回本处以使影子有效,可以通过用命令
<span><strong class="command">passwd</strong></span> 来重置所有当前用户的密码,或是命令 <span><strong class="command">gpasswd</strong></span> 用于对组密码进行相应修改。</p>
</div>
<div class="configuration" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<h2 class="sect2">
6.54.3. 设置 root 密码</h2>
</div>
<p>
为 <span class="emphasis"><em>root</em></span> 用户选择一个密码并通过运行以下命令来进行设置:</p>
<pre class="userinput"><kbd class="command">passwd root</kbd></pre>
</div>
<div class="content" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<a id="contents-shadow" name="contents-shadow"></a>
<h2 class="sect2">
6.54.4. Shadow 的内容 </h2>
</div>
<div class="segmentedlist">
<div class="seglistitem">
<div class="seg">
<strong><span class="segtitle">安装的程序:</span></strong> <span class="seg">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</span> </div>
<div class="seg">
<strong><span class="segtitle">安装的库:</span></strong> <span class="seg">libshadow.[a,so]</span>
</div>
</div>
</div>
<div class="variablelist">
<h3>
<a id="id3334900" name="id3334900"></a>简要描述</h3>
<table border="0">
<col align="left" valign="top" />
<tbody>
<tr>
<td>
<a id="chage" name="chage"></a><span class="term"><span><strong class="command">chage</strong></span></span> </td>
<td>
<p>用于设置必须对密码进行更改的最大间隔天数</p> </td>
</tr>
<tr>
<td>
<a id="chfn" name="chfn"></a><span class="term"><span><strong class="command">chfn</strong></span></span> </td>
<td>
<p>用于对用户的全名及其他信息进行修改</p> </td>
</tr>
<tr>
<td>
<a id="chpasswd" name="chpasswd"></a><span class="term"><span><strong class="command">chpasswd</strong></span></span> </td>
<td>
<p>用于对一整个系列的用户账号密码进行更新</p> </td>
</tr>
<tr>
<td>
<a id="chsh" name="chsh"></a><span class="term"><span><strong class="command">chsh</strong></span></span> </td>
<td>
<p>用于更改一个用户的默认的登录 shell</p> </td>
</tr>
<tr>
<td>
<a id="expiry" name="expiry"></a><span class="term"><span><strong class="command">expiry</strong></span></span> </td>
<td>
<p>检查并加强当前的密码过期策略</p> </td>
</tr>
<tr>
<td>
<a id="faillog" name="faillog"></a><span class="term"><span><strong class="command">faillog</strong></span></span> </td>
<td>
<p>用于检查记录登录失败的日志,或是设置账户在被锁定前最大的登录失败次数,亦可用于重置登录失败的次数</p> </td>
</tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -