在作为 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 详细介绍了它们的区别。