Linux 下root家目录和/bin/下的执行程序更改出现问题解决

日期: 栏目:网络安全 浏览:2087 评论:0


今天我们群里同学出现一个Linux操作后,系统无法正常使用的问题,具体问题的操作是这样的

1 、问题复现
step1:在root的用户下执行了如下两个命令:
mv /bin/ls  /root
mv /root  /bin/ls
step2:接下来无法执行ls命令,显示如下:
[root@bogon Desktop]# ls
bash: ls: command not found
[root@bogon Desktop]# 


step3:重启系统step4:分析一下,原因
mv /bin/ls  /root  这个命令,把ls命令移动到了root下
[root@bogon ~]# cd /root
[root@bogon ~]# pwd
/root
[root@bogon ~]# ./ls
anaconda-ks.cfg  Documents  install.log                ls     Pictures  Templates
Desktop                 Downloads  install.log.syslog        Music  Public         Videos
[root@bogon ~]# 


mv /root /bin/ls  把/root/的文件移动到了 /bin/ls/命令下,这时候root改名为ls,如下:
[root@bogon ls]# pwd
/bin/ls
[root@bogon ls]# ./ls
anaconda-ks.cfg  Documents  install.log                ls     Pictures  Templates
Desktop                 Downloads  install.log.syslog        Music  Public         Videos
[root@bogon ls]# 
2 、问题分析
两个问题需要考虑:
重启之后root是否可以正常登陆?
普通账号是否收到影响?
root登陆正常,ls无法使用,因为ls命令的路径发生了变化,正常
bash-4.1# ls
bash: ls: command not found
bash-4.1# 
普通账号也正常登陆
[yanw@localhost Desktop]$ ls
bash: ls: command not found
[yanw@localhost Desktop]$ 
3 问题解决
step1:把/bin/ls/ls 文件拷贝到/root(不是没有root目录了吗?重启系统后root登陆,会根据/etc/passwd 文件里面的root的家目录在创建一个,不受影响)
step2:拷贝ls到家目录
bash-4.1# cp /bin/ls/ls ./
bash-4.1# 
bash-4.1# 
bash-4.1# 
bash-4.1# ./ls
Desktop  Documents  Downloads  ls  Music  Pictures  Public  Templates  Videos
bash-4.1# 
step3:rm删除/bin/ls  复制ls到/bin下即可,全局使用正常
bash-4.1# rm -rf /bin/ls
bash-4.1# 
bash-4.1# 
bash-4.1# cp ls /bin/
bash-4.1# ls
Desktop  Documents  Downloads  ls  Music  Pictures  Public  Templates  Videos
bash-4.1# 








step4:修改一下提示符 ,修改全局变量PS1的值

PS1='[\u@\h \w]\$ ' 
----注意$后面有一个空格!如果没有空格的话,将会报错!


   \d :代表日期,格式为weekday month date,例如:"Mon Aug 1" 


\H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux 


\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略 


\t :显示时间为24小时格式,如:HH:MM:SS 


\T :显示时间为12小时格式 


\A :显示时间为24小时格式:HH:MM 


\u :当前用户的账号名称 


\v :BASH的版本信息 


\w :完整的工作目录名称。家目录会以 ~代替 


\W :利用basename取得工作目录名称,所以只会列出最后一个目录 


\# :下达的第几个命令 


\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

step5:为了长期生效我们修改一下 /etc/profile文件,在最后一行添加上    PS1='[\u@\h \w]\$ ' 文件解决
bash-4.1# source /etc/profile
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。发布前请先查看评论规则:点我查看