跳转至

管理用户和用户组

普通用户无法查找和使用 useradd/groupad,你需要通过下面的命令切换成 root,才能查找和使用 useradd/groupadd。

sudo - root  # 不能直接 su root 切换
  • su:只能切换到管理员用户权限,不使用管理员的登陆脚本和搜索路径。
  • su -:不但能切换到管理员权限,而且使用管理员登陆脚本和搜索路径。

image.png

没有 home 目录

如果我们安装最常规的方法,直接使用 useradd username -g groupname 创建用户,Debian 中默认是没有 /home/username 目录的,以至于在登录时出现报错。 image.png 因此,需要通过下面的方式创建用户。

# 添加用户,参数-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 终端命令行无法自动补全 _杨圣亮的技术博客》的做法:

  1. 安装命令补全:
apt-get install bash-completion
  1. 在 /etc/profile 里追加:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
  1. 刷新 /etc/profile 配置文件,使其生效。
source /etc/profile

image.png 这是因为 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 下不会做如下几件事:

  1. 不会创建家目录;
  2. 默认 shell 是 /bin/sh;
  3. 而 /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! image.png

sudo 出现 unable to resolve host

image.png /etc/hosts 内容修改成如下:

121.23.19.88(或者 127.0.0.1)    kvm-bioitee