今天我們群裡同學出現一個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# ./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# 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 ~]#
完美解決
閱讀更多 Web安全陪跑團 的文章