原先已有《玩转服务器》系列推文,作为互补,《玩崩服务器》这个系列主要介绍用户在使用服务器的时候一些错误操作,这些操作可能导致用户账号无法正常登陆、命令正常使用、环境丢失、R包无法正常安装或使用。同时给出这些问题的解决方法。
服务器上的shell配置文件,分系统级和用户级。对于普通用户来说,系统级通常是没有权限修改的。普通用户仅可修改用户级的 shell 配置文件。用户级配置文件位于用户的家目录( ~
),仅影响当前用户的 Shell 行为。这些文件都是以 .
开头的隐藏文件,常见的有:
【1】 ~/.bash_profile
、 ~/.bash_login
和 ~/.profile
.bash_profile
>~/.bash_login
>~/.profile
【2】~/.bashrc
aliasll='ls -alF'
),设置 Shell 提示符(PS1
),加载命令补全脚本。对于共享服务器,用户级的 shell 配置文件默认有 ~/.profile
和 ~/.bashrc
。用户有权限修改个人目录下的配置文件,但是错误修改可能导致很多问题,比如账号无法正常登录。
有一用户反馈其无法ssh登陆服务器,登陆界面提示是:
用户自己都无法登录,更别说让其检查问题所在了,这个时候只能由服务器管理员来处理。
从报错提示来说,用户的登陆操作已经触发了服务器的登陆提示,因此怀疑是用户的shell配置文件存在问题。管理员先是检查了用户的默认shell配置文件 ~/.profile
和 ~/.bashrc
并没有发现问题。
进一步检查发现,用户的目录下还多了一个配置文件 ~/.bash_profile
,查看发现问题,用户在该配置文件中写入的配置信息是:
由于 ~/.bash_profile 在登陆的时候会自动加载,在 ~/.bash_profile
中写入了 source~/.bash_profile
则会形成一个无限循环,直到资源耗尽:
加载~/.bash_profile →
执行 source ~/.bash_profile →
重新加载~/.bash_profile →
再次执行 source ~/.bash_profile →...
因此,要解决这个问题,就要把 source~/.bash_profile
删掉。另外建议是,如果有修改 shell 环境的需求,建议在默认的 ~/.profile 和 ~/.bashrc 修改即可,不要增加额外的非必要的配置文件。
那么问题来了,假如你就是这个普通用户,遇到这个问题,在不动用管理员权限的情况下,你能自己解决吗?
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有