普通用户无法查找和使用 useradd/groupad,你需要通过下面的命令切换成 root,才能查找和使用 useradd/groupadd。
sudo - root # 不能直接 su root 切换
- su:只能切换到管理员用户权限,不使用管理员的登陆脚本和搜索路径。
- su -:不但能切换到管理员权限,而且使用管理员登陆脚本和搜索路径。
没有 home 目录
如果我们安装最常规的方法,直接使用 useradd username -g groupname 创建用户,Debian 中默认是没有 /home/username 目录的,以至于在登录时出现报错。
因此,需要通过下面的方式创建用户。
# 添加用户,参数-m,自动创建用户的家目录,注意一定要添加 -s /bin/bash,原因下面细说
useradd -m -s /bin/bash your_username -g your_groupname
# 或者
useradd -d /home/your_username -m -s /bin/bash your_username -g your_groupname
# 添加密码
passwd your_username
# 删除用户
userdel your_username
无法使用 tab 补全
这个问题,与其说有点坑爹。其实是不了解 Ubuntu和debian 的 shell 默认安装的是 dash,而不是 bash。参考网络《解决debian 终端命令行无法自动补全 _杨圣亮的技术博客》的做法:
安装命令补全:
apt-get install bash-completion
在 /etc/profile 里追加:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
刷新 /etc/profile 配置文件,使其生效。
source /etc/profile
这是因为 Ubuntu 和 debian 的 shell 默认安装的是 dash,而不是 bash!解决方法如下:root@VM-8-4-debian:~# usermod --shell /bin/bash shenweiyan
root@VM-8-4-debian:~# grep shenweiyan /etc/passwd
shenweiyan:x:1001:1001::/home/shenweiyan:/bin/bash
正确创建用户
CentOS 和 Debian 使用 useradd 命令的区别,以下面的命令举例:
useradd shenweiyan
这条命令在 Debian 下不会做如下几件事:
- 不会创建家目录;
- 默认 shell 是 /bin/sh;
- 而 /bin/sh 默认是软连接到 /bin/dash 解释器 /bin/sh -> dash。
如果需要创建这些内容则必须指定参数:
useradd -m -s /bin/bash shenweiyan
用 bash 作为默认 shell
Debian 中/bin/sh 是 dash 的链接,如果大家想用 bash 作为默认 shell 的话,可以用以下的办法修改:
# https://unix.stackexchange.com/questions/442510/how-to-use-bash-for-sh-in-ubuntu
sudo dpkg-reconfigure dash
然后在弹出来的界面中选择“yes” 来保持使用 dash 作为 /bin/sh 首选;或者选择“no” 把 /bin/sh 切换为 bash!
sudo 出现 unable to resolve host
/etc/hosts 内容修改成如下:
121.23.19.88(或者 127.0.0.1) kvm-bioitee