LFS之(2)建立新用户和新环境

本来想使用我的日常工作用户mirage,但是看到LFS-Book里建立了新账户还进行了各种设置,我也就建立了新账户,防止不小心搞破坏。

建立新的group名为lfs,建立新用户lfs,

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

-s 是指定默认的shell,不指定也行,反正默认都是bash

-g 是指定新用户将加入lfs组

-m 这个选项指明为新用户建立家目录,(这个选项不可省略,会报错)

-k 这个选项是指定从/dev/null复制用户文件。

当一个新用户建立时会从/dev/skel目录下复制文件到新用户家目录下,那么复制了哪些文件呢?就是.bash_logout .bash_profile .bashrc这些等。详见http://blog.csdn.net/mirage1993/article/details/38364681

我们指定让它从/dev/null复制就是不让它初始化这些文件,让它什么都不复制(以后手动设置)。

lfs 这选项就是新用户名

——————————————

给lfs用户设密码。

之前我们把新建立的LFS分区挂到了/mnt/lfs下,然后在lfs目录下建立了tools和sources目录。还把/mnt/lfs/tools软链接到/tools。

现在

chown -v lfs $LFS/tools
chown -v lfs $LFS/sources

把这两个目录属主改为lfs用户。

然后退掉当前用户,重新登陆为lfs用户。

再家目录下看看,真干净,啥都没有。

现在开始手动建立

新建~/.bash_profile

内容为

exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash

这句话意思是start with an empty environment。将初始一个全新环境。

PS1是改改命令提示符,改成了 用户名:当前目录$

后面是调用bash程序执行。

新建~/.bashrc

内容为

set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH

set +h是关闭bash hash function,因为bash会用hash function记忆命令全路径从而节省搜索PATH路径的时间,但是当新工具安装好后应该立即得到应用。所以关掉hash function,让bash每次执行命令都搜索PATH路径。故,当/mnt/lfs/tool里面的工具一旦设置好,下次执行时,必将执行新工具,而不是之前被记忆的同一程序的不同旧版本。

umask是更改掩码,以后新建立的文件默认权限为644,目录默认权限为755.

LC_ALL与Glibc版本有关,暂且不谈。

LFS_TGT=$(uname -m)-lfs-linux-gnu是为了指明一个compatible machine description

重设PATH变量,把/tools/bin放到最前面是为了首先搜索到。和之前关闭hash function结合起来,以确保新工具编译好后会首先搜索到并执行新工具,屏蔽宿主系统的旧工具。

最后,

source ~/.bash_profile

source ~/.bashrc

​————————————————————————


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值