在前面的文章有介绍过su命令,su命令用于普通用户和超级用户的切换,但在有的系统中,用su命令无反应,那样遇见这样的情况该怎么样处置呢?下面随记者一块儿看看Linux下su命令无反应的处置办法。
出现问题的系统CentOS 6.3 64位,SSH推广客户端用的是SecureCRT,需要的朋友可以参考下
1、问题产生环境
CentOS 6.3 X64
SecureCRT 7.0.0 英文版
2、问题具体描述
今天操作我们的一台Linux服务器时,忽然su命令不好使了,敲入命令回车后,没任何反应,无论是su还是su -都一样,重启系统后也是问题依然,郁闷的要命。。。
最耐心的一次等了大概1分多钟,出现su:后面的字符是乱码的提示,当时没截图,目前也不想还原问题了,下面说说问题的产生缘由和解决方案
3、问题产生缘由
郁闷了半天,才想起来上一次退出登录前的动作是修改了SecureCRT中的字符编码设置,设置路径:
代码如下:
Options 》 Session Options 》 Terminal 》 Appearance 》 Character encoding 》 从default设为UTF-8
如下图所示:
修改成UTF-8是什么原因在系统中用vi编辑带中文的配置文件时,出现乱码的状况,所以依据以前的经验就设置了SecureCRT中的字符编码为UTF-8,如此就不会乱码了。
问题是记得重装系统前如此设置是没任何问题的,也就是不会致使su命令出现没反应的状况,很很奇怪,再仔细想了一下,貌似前些日子修改了CentOS的i18n配置,目前的i18n配置状况
代码如下:
#LANG=en_US.UTF-8
#SYSFONT=latarcyrheb-sun16
LANG=zh_CN.GB18030
LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN
SUPPORTED=zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en
SYSFONT=lat0-sun16
记得当时修改这个配置是什么原因也是为知道决乱码问题,结合目前问题,设想了一下问题的可能缘由,然后测试了一下,果然跟想像的一样。
缘由总结:i18n语言配置为中文并且SecureCRT的Character encoding配置项是UTF-8的状况下,就会致使su命令没任何反应。
4、问题解决方法
了解了缘由,解决起来就简单了,我测试过,把i18n语言项配置成中文,SecureCRT的Character encoding配置成Default的状况下,vi打开包括汉字的配置文件,依旧会乱码,假如把SecureCRT的Character encoding配置为UTF-8又会致使su命令不起用途,所以我就把i18n还原成默认设置:
代码如下:
LANG=en_US.UTF-8
SYSFONT=latarcyrheb-sun16
然后把SecureCRT的Character encoding配置为UTF-8就完美解决了vi打开事汉字的文件乱码问题,而且又不会让su命令出问题,好吧,就如此吧!!!
上面就是Linux下su命令无反应的解决方案了,该问题主要出目前CentOS 6.3 64位系统中,假如你不幸中招的话,可以尝试用本文的办法进行解决。