4.3. 添加 LFS 用户

在作为 root 用户登录时,一个微小的错误就可能损坏甚至摧毁整个系统。因此,我们建议在后续两章中,以非特权用户身份编译软件包。您或许可以使用自己的系统用户,但为了更容易地建立一个干净的工作环境,我们将创建一个名为 lfs 的新用户,以及它从属于的一个新组 (组名也是 lfs),并在安装过程中以 lfs 身份执行命令。为了创建新用户,以 root 身份执行以下命令:

groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs

命令行中各选项的含义:

-s /bin/bash

设置 bash 为用户 lfs 的默认 shell。

-g lfs

添加用户 lfs 到组 lfs

-m

为用户 lfs 创建一个主目录。

-k /dev/null

将模板目录设置为空设备文件,防止从默认模板目录 (/etc/skel) 复制文件到新的主目录。

lfs

这是新用户的名称。

如果希望以 lfs 身份登录,或从一个非 root 用户切换到 lfs 用户 (这与从 root 切换到 lfs 不同,后者不需要 lfs 用户设有密码),则需要为 lfs 用户设置密码。以 root 用户身份,执行以下命令设置密码:

passwd lfs

lfs 设为 $LFS 中所有目录的所有者,使 lfs 对它们拥有完全访问权:

chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools}
case $(uname -m) in
  x86_64) chown -v lfs $LFS/lib64 ;;
esac
[注意]

注意

在某些宿主系统上,下面的 su 命令不会正确完成,而会将 lfs 用户的登录会话挂起到后台。如果提示符 “lfs:~$” 没有很快出现,输入 fg 命令以修复这个问题。

下面启动一个以 lfs 身份运行的 shell。这可以通过在虚拟控制台登录 lfs 用户完成,也可以使用下面的命令切换用户:

su - lfs

参数 - 使得 su 启动一个登录 shell,而不是非登录 shell。bash(1)info bash 详细介绍了它们的区别。