linux – 如果不在 etcpasswd中,如何更改Ubuntu中的默认shell?

linux – 如果不在 etcpasswd中,如何更改Ubuntu中的默认shell?,第1张

概述我使用的是Ubuntu 14.04,我的默认 shell是/ bin / sh.我想把它改成/ bin / bash. 我读了几个解决方案(here’s one),但到目前为止似乎没有任何工作. 我尝试过sudo chsh -s / bin / bash [用户名]和chsh后跟/ bin / bash,但是我收到以下错误: chsh:/ etc / passwd中不存在user [usernam 我使用的是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 againfi

我经常这样做;它或多或少存在于.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的系统,但我们的用户名出现在机器上的密码文件中.但是,密码文件每小时左右重建一次,因此您无法对本地密码文件进行持久更改.有时会有一个足够大的机会来完成一些有用的工作,但是它正在与系统作斗争并且基本上适得其反.

总结

以上是内存溢出为你收集整理的linux – 如果不在/ etc / passwd中,如何更改Ubuntu中的默认shell?全部内容,希望文章能够帮你解决linux – 如果不在/ etc / passwd中,如何更改Ubuntu中的默认shell?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1027971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存