前言

在 Linux 操作系统中,添加用户可以使用 useradd 和 adduser 这两个命令。曾经在添加用户的实践中遇到过一些坑,比如使用 useradd 命令添加用户后无法正常使用,对 adduser 和 useradd 傻傻分不清楚。网上找到的相关内容很碎片化,初看会让人一脸懵逼,这促使我对这些知识进行了整理。

本文所有指令需要在 root 权限下执行。非 root 用户需要加 sudo前缀,或使用 sudo -i命令切换到 root 账户操作。


adduser 和 useradd 的区别

对于 De­bian 或 Ubuntu ,主要的区别在使用方式上:

  • adduser是一个 perl 脚本,通过交互式菜单设定一些用户参数。在输入adduser 用户名后,会自动创建用户主目录(并复制/etc/skel目录下的文件)、指定系统 shell,提示输入用户密码,很简单的就添加了一个标准的普通用户。非常适合萌新和喜欢偷懒的大佬。
  • useradd是一个指令,如果不使用任何选项,创建的用户将无密码、无主目录、没有指定 shell。如果你需要正常使用这个账户,就还需要设置密码、创建家目录等额外操作。适合有经验的专业人士和喜欢装逼的大佬。

对于 Cen­tOS 来说是没有区别的,adduser 通过符号链接指向 useradd,即 Cen­tOS 只有 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 个步骤,略显麻烦,也没必要这样操作。但可以从中了解添加一个用户具体做了哪些事情,对解决一些问题有参考价值。

  1. 以添加用户名为p3terx的用户为例子,输入命令添加用户

useradd p3terx


  1. 设置密码


passwd p3terx


  1. 创建家目录
    mkdir /home/p3terx

  2. /etc/skel目录下的文件复制到该用户目录
    cp -r /etc/skel/. /home/p3terx

  3. 更改家目录归属
    chown -R p3terx:p3terx /home/p3terx

  4. 指定 Shell 为/bin/bash
    usermod -s /bin/bash p3terx

删除用户

如果因为错误的方式添加了用户,而不知道如何解决,可以删除这个用户。

以删除 p3terx 这个用户为例子,首先终结该用户所有进程

pkill -u p3terx
然后输入删除命令

userdel -r p3terx


-r 表示删除用户的同时,将其宿主目录和系统内与其相关的内容删除。


授予普通用户 sudo 权限

有时需要使用 root 权限,比如安装软件、启动服务等操作时就需要用到 sudo 命令来提升权限才能进行操作。而新添加的普通用户是没有权限进行 sudo 操作的,所以我们需要对普通用户授予 sudo 权限。可以参考《Linux 中授予普通用户 sudo 权限的正确方法》这篇文章来进行设置。

点赞(1) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部