我使用的是Ubuntu 14.04,我的默认shell是/bin/sh
。 我想将其更改为/bin/bash
。
我读了几个解决scheme( 这里是一个 ),但似乎没有工作到目前为止。
我已经尝试了sudo chsh -s /bin/bash [username]
和chsh
后跟/bin/bash
,但是我收到以下错误:
chsh: user [username] does not exist in /etc/passwd
我也尝试手动编辑该文件。 我有sudo权限,所以它不是缺乏访问权限。
有没有人有什么build议? 或者任何人都可以解释我可以如何添加我的用户名/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
文件 (对于csh
)中,除了语法可能有点不同而且无条件(如果它正在执行C shell启动文件,那是错误的shell!)。
也可以看看:
.bashrc
, .bash_profile
和.environment
什么.environment
? 毫无疑问,还有其他相关的相关问题。
*
在这里的办公室,有一个基于LDAP的系统,但我们的用户名出现在机器上的密码文件中。 但是,密码文件是每小时左右重新生成的,所以不能对本地密码文件进行持久更改。 有时候有足够的机会去完成一些有用的事情,但是它正在与系统作斗争,而且基本上会起反作用。