直接回答:adduser 是交互式的 Perl 脚本,会自动建家目录、选 shell 并让你设密码;useradd 是底层命令,什么都不给默认不建家目录,所以日常用 adduser 更省事。
我们在Linux下创建用户主要有两种方式:adduser和useradd,它们的区别以及主要用法如下:
adduser
adduser的用法很简单,只需adduser+username即可,如下:
1 | sudo adduser alvin |
这个命令其实是个perl脚本,它的底层还是调用useradd命令。网上很多教程说它会进行人机交互,但现在有些发行版(比如centOS)其实已经改进了,无需繁琐的交互,只需以上一条命令即可创建用户。
adduser命令会自动创建用户家目录,指定shell版本。但是,有些发行版在创建用户的同时,会要求你设定用户密码,而有些不会,需要手动设置密码。
为用户创建密码方法如下:
1 | sudo passwd alvin |
useradd
useradd是一个相对复杂一些的命令,而且它的自由度更高。如果只是运行useradd+username的话,它会创建一个三无用户,即:无用户家目录,无指定shell版本,无密码。
为了顺利创建一个用户,我们还需通过一些选项来完善它的参数。useradd命令常用的选项如下:
-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
-d<登入目录>:指定用户登入时的启始目录;
-D:变更预设值;
-e<有效期限>:指定帐号的有效期限;
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
-g<群组>:指定用户所属的群组;
-G<群组>:指定用户所属的附加群组;
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
-n:取消建立以用户名称为名的群组;
-r:建立系统帐号;
-s:指定用户登入后所使用的shell;
-u:指定用户id。
对于我们普通用户而言,更常用的选项是以上标红的三个。而对于管理人员而言,则以上所有的选项都需要掌握。我们目前重点介绍以上标红的三个选项。
-d选项用于指定用户家目录,也就是用户登录时所进来的目录。比如:-d /home/alvin,就是指定用户的家目录是/home/alvin。通常-d选项与**-m**选项一起使用,-m选项的作用是,如果指定目录不存在时,则自动创建。
而**-s**选项则是指定用户默认shell版本。如果不设定的话,它的默认版本是/bin/sh。所以,我们使用useradd创建新用户时的经典用法如下:
1 | sudo useradd alvin -m -d /home/alvin -s /bin/bash |
通过这种方式用户可以成功创建,但还是没有密码。创建密码的方式依然使用passwd命令,在此不再赘述。
userdel
删除用户,“userdel 用户名”即可。最好将它留在系统上的文件也删除掉,可以使用“userdel -r 用户名”来实现。
1 | sudo userdel -r alvin |
推荐学习:《linux视频教程》
- 给用户添加sudo权限 (1)设置sudo密码
1 | sudo passwd |
(2)进入超级用户模式
1 | su - |
(3)添加文件的写权限
1 | chmod u+w /etc/sudoers |
(4)编辑/etc/sudoers文件
1 | vim /etc/sudoers |
在“root ALL=(ALL:ALL) ALL” 下一行添加
kang ALL=(ALL:ALL) ALL 如图:

2.设置sudo为不需要密码 (1)在“%sudo ALL=(ALL:ALL) ALL” 下一行添加
kang ALL=(ALL:ALL) NOPASSWD:ALL 如图:

(2)撤销文件的写权限
chmod u-w /etc/sudoers (3)新打开的终端不用再输入sudo密码
3.几个问题解释:
(1)为什么用su - 而不用su ?
用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用户的环境变量;
用"su -"命令将环境变量也一起带过去,就象和root登录一样。
(2)为什么设置sudo为不需要密码时,要加入NOPASSWD,有什么区别?
kang ALL=(ALL:ALL) ALL 表示默认5分钟后刚才输入的sodo密码过期,下次sudo需要重新输入密码
kang ALL=(ALL:ALL) NOPASSWD:ALL 表示允许无时间限制的免输入密码,个人用户的使用一般是安全的
———————————————— 版权声明:本文为CSDN博主「kan2016」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/kan2016/article/details/90715197
第二种方法把用户添加进sudo组
1 | usermod -a -G sudo yonghuming |
这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到留言板一起聊聊。