前言
在 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 p3terx
然后会提示输入密码,之后一路回车即可,非常简单。
Adding user `p3terx' ...
Adding new group `p3terx' (1002) ...
Adding new user `p3terx' (1001) with group `p3terx' ...
Creating home directory `/home/p3terx' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for p3terx
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
使用 useradd 添加用户
前面提到,useradd
如果不使用任何选项,创建的用户将无密码、无主目录、没有指定 shell。为了和adduser
一样添加一个标准的普通用户就需要指定选项,或者手动进行额外操作,这样添加的用户才能正常使用。所以对于useradd
添加标准的普通用户有使用选项和不使用选项两种方式。
使用选项
以添加用户名为p3terx
的用户为例子,输入命令添加用户、添加用户目录、指定 bash 为 shell
useradd -m -s /bin/bash p3terx
-m
自动创建用户的家目录,并将/etc/skel
中的文件复制到家目录中
-s
指定用户登入后所使用的 shell
然后对该用户设置密码,输入命令后会提示输入两次密码
passwd p3terx
不使用选项
在不使用选项的情况下,添加一个标准普的通用户的过程相总共有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 权限的正确方法》这篇文章来进行设置。
参考文章
一天一点linux(18):adduser和useradd的区别
本文作者:P3TERX
本文链接:https://p3terx.com/archives/add-normal-users-with-adduser-and-useradd.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。