将现有用户/所有新用户的默认shell更改为bash

刚为同事在ubuntu 20.04服务器上建了一个用户,用 useradd 命令。然后同事登陆后发现命令行很奇怪,tab无限,也不能通过方向键列出历史命令。

我依稀有点记忆是说新建的用户有可能默认的命令行不是bash,查了之后发现是 /bin/sh,也就是链接到 /bin/dash去的,这是一个简化版的命令行,很多功能没有,所以我们要把用户默认命令行还是设置为 /bin/bash。

1,添加用户

adduser命令的默认文件是/etc/adduser.conf,默认情况下,DSHELL变量定义的默认命令行是/bin/bash

 

2,用户添加

有人说useradd是一个非常低级的实用程序,几乎从未直接使用过,可是我就是用这个命令创建的用户啊。。。。。

用这个命令创建用户前,可以编辑/etc/default/useradd文件(不过请不要忘记进行备份)来设置新创建用户的默认命令行。

SHELL变量设置为/bin/bash而不是/bin/sh

现在,每次您useradd用来添加新用户时bash,它们的默认命令行都会是 bash 了。

 

3,已经存在的用户

如果要更改现有用户的默认命令行,则必须编辑/etc/passwd文件(修改前请先备份该文件!!)。

这是各列的说明

  1. 登录名
  2. 可选的加密密码
  3. 数字用户ID
  4. 数字组ID
  5. 用户名或评论字段
  6. 用户主目录
  7. (可选的)用户默认命令行

像这样用冒号(:)分隔。

root:x:0:0:root:/root:/bin/bash

有关该文件的更多信息,请参考手册页man 5 passwd

posted @ 2022-08-02 14:52  透明飞起来了  阅读(2731)  评论(0编辑  收藏  举报