加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如果不在/ etc / passwd中,如何更改Ubuntu中的默认shel

发布时间:2020-12-14 01:26:52 所属栏目:Linux 来源:网络整理
导读:我使用的是Ubuntu 14.04,我的默认 shell是/ bin / sh.我想把它改成/ bin / bash. 我读了几个解决方案(here’s one),但到目前为止似乎没有任何工作. 我尝试过sudo chsh -s / bin / bash [用户名]和chsh后跟/ bin / bash,但是我收到以下错误: chsh:/ etc / p
我使用的是Ubuntu 14.04,我的默认 shell是/ bin / sh.我想把它改成/ bin / bash.

我读了几个解决方案(here’s one),但到目前为止似乎没有任何工作.

我尝试过sudo chsh -s / bin / bash [用户名]和chsh后跟/ bin / bash,但是我收到以下错误:

chsh:/ etc / passwd中不存在user [username]

我也试过手动编辑该文件.我有sudo权限,所以这不是缺乏访问权限.

有没有人有什么建议?或者任何人都可以解释我如何添加我的用户名/ etc / passwd?

我正在连接到部门服务器的大学机器上工作,但这台本地机器仅供我使用(即我对本地的所有设备都有控制权/权限).

解决方法

听起来机器已配置为使用密码文件以外的其他东西来控制对机器的访问.您可以查看/etc/nsswitch.conf文件以查看计算机的配置方式.

如果你运行grep username / etc / passwd,你可能没有输出.如果是这样,那么更改密码文件将不会有帮助*.您需要找到控制您在计算机上的权限的系统,并在那里进行更改.它很可能是一个集中管理的基于LDAP的系统.您最好与该外部系统的管理员交谈.

如果要在本地修复它,可能必须修改.profile以执行所需的shell:

if [ "$SHELL" != "/bin/bash" ]
then
    export SHELL="/bin/bash"
    exec /bin/bash -l    # -l: login shell again
fi

我经常这样做;它或多或少存在于.cshrc file(对于csh)中,除了语法可能有点不同和无条件(如果它正在执行C shell启动文件,那就是错误的shell!).

也可以看看:

> How to switch to Bash shell from some other shell?
> What’s the difference between .bashrc,.bash_profile and .environment?

毫无疑问,还有其他相关的相关问题.

*在这里的办公室,有一个基于LDAP的系统,但我们的用户名出现在机器上的密码文件中.但是,密码文件每小时左右重建一次,因此您无法对本地密码文件进行持久更改.有时会有一个足够大的机会来完成一些有用的工作,但是它正在与系统作斗争并且基本上适得其反.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读