前言
在 Linux 操作系统中,添加用户可以使用 useradd
和 adduser
这两个命令。曾经在添加用户的实践中遇到过一些坑,比如使用 useradd
命令添加用户后无法正常使用,对 adduser
和 useradd
傻傻分不清楚。网上找到的相关内容很碎片化,初看会让人一脸懵逼,这促使我对这些知识进行了整理。
本文所有指令需要在 root 权限下执行。非 root 用户需要加 sudo
前缀,或使用 sudo -i
命令切换到 root 账户操作。
adduser 和 useradd 的区别
对于 Debian 或 Ubuntu ,主要的区别在使用方式上:
adduser
是一个 perl 脚本,通过交互式菜单设定一些用户参数。在输入adduser 用户名
后,会自动创建用户主目录(并复制/etc/skel
目录下的文件)、指定系统 shell,提示输入用户密码,很简单的就添加了一个标准的普通用户。非常适合萌新和喜欢偷懒的大佬。useradd
是一个指令,如果不使用任何选项,创建的用户将无密码、无主目录、没有指定 shell。如果你需要正常使用这个账户,就还需要设置密码、创建家目录等额外操作。适合有经验的专业人士和喜欢装逼的大佬。
对于 CentOS 来说是没有区别的,adduser
通过符号链接指向 useradd
,即 CentOS 只有 useradd
使用 adduser 添加用户
以添加用户名为 p3terx
的用户为例子,输入以下命令进入添加用户交互式菜单
adduser xiaoniba
然后会提示输入密码,之后一路回车即可,非常简单。
使用 useradd 添加用户
前面提到,useradd
如果不使用任何选项,创建的用户将无密码、无主目录、没有指定 shell。为了和 adduser
一样添加一个标准的普通用户就需要指定选项,或者手动进行额外操作,这样添加的用户才能正常使用。所以对于 useradd
添加标准的普通用户有使用选项和不使用选项两种方式。
使用选项
以添加用户名为 xnb的用户为例子,输入命令添加用户、添加用户目录、指定 bash 为 shell
useradd -m -s /bin/bash xnb
-m
自动创建用户的家目录,并将 /etc/skel
中的文件复制到家目录中
-s
指定用户登入后所使用的 shell
然后对该用户设置密码,输入命令后会提示输入两次密码
passwd xnb
不使用选项
在不使用选项的情况下,添加一个标准普的通用户的过程相总共有 6 个步骤,略显麻烦,也没必要这样操作。但可以从中了解添加一个用户具体做了哪些事情,对解决一些问题有参考价值。
- 以添加用户名为
p3terx
的用户为例子,输入命令添加用户
useradd p3terx
- 设置密码
passwd p3terx
- 创建家目录
mkdir /home/p3terx
- 将
/etc/skel
目录下的文件复制到该用户目录
cp -r /etc/skel/. /home/p3terx
- 更改家目录归属
chown -R p3terx:p3terx /home/p3terx
- 指定 Shell 为
/bin/bash
usermod -s /bin/bash p3terx
删除用户
如果因为错误的方式添加了用户,而不知道如何解决,可以删除这个用户。
以删除 p3terx
这个用户为例子,首先终结该用户所有进程
pkill -u p3terx
然后输入删除命令
userdel -r p3terx
-r
表示删除用户的同时,将其宿主目录和系统内与其相关的内容删除。
授予普通用户 sudo 权限
有时需要使用 root 权限,比如安装软件、启动服务等操作时就需要用到 sudo
命令来提升权限才能进行操作。而新添加的普通用户是没有权限进行 sudo 操作的,所以我们需要对普通用户授予 sudo 权限。可以参考《Linux 中授予普通用户 sudo 权限的正确方法》这篇文章来进行设置。
发表评论 取消回复