Linux From Scratch(LFS11.0)构建 LFS 系统 - Shadow-4.9

Posted Lucifer三思而后行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux From Scratch(LFS11.0)构建 LFS 系统 - Shadow-4.9相关的知识,希望对你有一定的参考价值。

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

安装 Shadow

解压软件包:

cd /sources
tar xf shadow-4.9.tar.xz
cd shadow-4.9

禁止该软件包安装 groups 程序和它的 man 页面,因为 Coreutils 会提供更好的版本。

sed -i 's/groups$(EXEEXT) //' src/Makefile.in
find man -name Makefile.in -exec sed -i 's/groups\\.1 / /'   {} \\;
find man -name Makefile.in -exec sed -i 's/getspnam\\.3 / /' {} \\;
find man -name Makefile.in -exec sed -i 's/passwd\\.5 / /'   {} \\;

不使用默认的 crypt 加密方法,使用更安全的 SHA-512 方法加密密码,该方法也允许长度超过 8 个字符的密码。还需要把过时的用户邮箱位置 /var/spool/mail 改为当前普遍使用的 /var/mail 目录。另外,从默认的 PATH 中删除/bin 和 /sbin,因为它们只是指向 /usr 中对应目录的符号链接:

sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \\
    -e 's:/var/spool/mail:/var/mail:'                 \\
    -e '/PATH=/{s@/sbin:@@;s@/bin:@@}'                \\
    -i etc/login.defs

使用以下命令修改文件,修复程序中的一处低级错误:

sed -e "224s/rounds/min_rounds/" -i libmisc/salt.c

准备编译 Shadow:

touch /usr/bin/passwd
./configure --sysconfdir=/etc \\
            --with-group-name-max-length=32

编译该软件包:

make

该软件包不包含测试套件。

安装该软件包:

make exec_prefix=/usr install
make -C man install-man
mkdir -p /etc/default
useradd -D --gid 999

安装完成后清理工作:

cd ..
rm -rf shadow-4.9

配置 Shadow

该软件包包含用于添加、修改、删除用户和组,设定和修改它们的密码,以及进行其他管理任务的工具。

如果要对用户密码启用 Shadow 加密,执行以下命令:

pwconv

如果要对组密码启用 Shadow 加密,执行:

grpconv

Shadow 附带的 useradd 配置文件有一些需要解释的事项。首先,useradd 的默认操作是创建一个用户,以及一个名字和用户名相同的组。默认情况下,用户 ID (UID) 和组 ID (GID) 会从 1000 开始。这意味着,如果您不向 useradd 传递参数,每个用户都会属于一个不同的组。如果您不希望这样,就要传递 -g 参数给 useradd。默认参数保存在 /etc/default/useradd 文件中。您可以编辑其中的两个参数,以满足您的特定需求。

设定 root 密码

为用户 root 选择一个密码,并执行以下命令设定它:

passwd root


本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️

以上是关于Linux From Scratch(LFS11.0)构建 LFS 系统 - Shadow-4.9的主要内容,如果未能解决你的问题,请参考以下文章

Linux From Scratch(LFS11.0)构建 LFS 系统 - 清理系统

Linux From Scratch(LFS11.0)构建 LFS 系统 - GCC-11.2.0

Linux From Scratch(LFS11.0)收尾工作

Linux From Scratch(LFS11.0)收尾工作

Linux From Scratch(LFS11.0)构建 LFS 系统 - Diffutils-3.8

Linux From Scratch(LFS11.0)构建 LFS 系统 - Inetutils-2.1