欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux下su命令无反应的解决办法

程序员文章站 2023-11-22 17:37:52
这篇文章主要介绍了Linux下su命令无反应的解决办法,出现问题的系统CentOS 6.3 64位,SSH客户端使用的是SecureCRT,需要的朋友可以参考下... 14-07-17...

一、问题产生环境

centos 6.3 x64
securecrt 7.0.0 英文版

二、问题具体描述

今天操作自己的一台linux服务器时,突然su命令不好使了,敲入命令回车后,没有任何反应,不管是su还是su -都一样,重启系统后也是问题依旧,郁闷的要命。。。

最耐心的一次等了大概1分多钟,出现su:后面的字符是乱码的提示,当时没截图,现在也不想还原问题了,下面说说问题的产生原因和解决方法


三、问题产生原因

郁闷了半天,才想起来上一次退出登录前的动作是修改了securecrt中的字符编码设置,设置路径:


复制代码
代码如下:
options > session options > terminal > appearance > character encoding > 从default设为utf-8

如下图所示:

Linux下su命令无反应的解决办法


修改成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命令没有任何反应。

四、问题解决办法

知道了原因,解决起来就简单了,我测试过,把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命令出问题,好吧,就这样吧!!!

文章来源: