当前位置: 首页 > 科技观察

useradd命令和adduser命令都可以用来添加用户,两者有什么区别?

时间:2023-03-15 17:01:01 科技观察

adduser和useradd命令的区别useradd命令是Linux内置命令,任何Linux系统都可以使用。但是,使用这个低级工具创建用户非常乏味,因为默认情况下,它不会创建主目录和用户密码。adduser不是标准的Linux命令,它本质上是一个在后台调用useradd命令的perl脚本。这个高级实用程序在Linux中创建用户时更加高效,它提供了创建主目录、设置密码和一些其他参数的选项。下面让我们仔细看看。useradd命令我们在《使用 useradd 命令在 Linux 中添加新用户》中介绍了useradd的用法,有兴趣的可以看看。现在让我们看看useradd的默认用法。你用过下面的命令吗?useraddnew_user命令默认不会创建完整的用户,即使为其设置了密码,但还需要其他选项。它会在/etc/passwd文件中添加如下内容:/etc/passwd文件我们在《Linux 中查看所有用户的三种方法》提到过(不清楚的可以再看一遍)。这样看来,用户好像创建成功了,但是在实际使用中,却出问题了。首先,在/etc/passwd文件中,新建用户的第二个字段包含“x”,这意味着在/etc/shadow中,密码是一个占位符。由于没有设置密码,该用户将无法登录。第二个问题,该用户没有主目录,即/home/test不存在。即使设置了密码,用户登录也会出错。因为Linux可能会阻止没有home目录的用户登录。很可能用户只有在文本模式下才能登录系统,但不允许他创建自己的主目录。第三个问题,它默认登录的shell是sh,而不是bash,这是大多数Linux发行版的默认shell。以上问题可以在/etc/login.defs中修改。adduser命令adduser命令在某些Linux发行版中不可用,在某些Linux中它是useradd的符号链接,在其他Linux中它是一个perl脚本。adduser命令是一个交互式高级实用程序,支持useradd并自动配置/etc/login.defs。在基于Debian的系统上,手册页建议使用它而不是useradd命令。使用adduser命令创建用户,它会引导你输入一系列参数,如下图:输入参数,回车,系统会创建一个完整的用户账号,包括home目录。这样新用户就可以正常登录了。使用useradd实现同样的功能,命令类似:sudouseradd-d/home/test-m-s/bin/bash\-cFullName,Phone,OtherInfotest&&passwdtest上面的-c选项命令可以删除逗号分隔的内容是要添加到/etc/passwd中的内容。即便如此,useradd命令仍然比adduser多输入两个选项。adduser命令有一个可用选项列表,这里是我们列出的一些最常见的选项(有关更多信息,您可以参考帮助信息或手册页)。系统:添加系统用户。默认情况下,系统用户在nogroup组中。要将系统用户添加到现有组,请使用–gid或–ingroup选项;homeDIR:使用DIR作为主目录而不是默认目录。如果需要,您可以创建一个目录并复制系统框架文件;shellSHELL:使用SHELL而不是默认的;ingroupGROUP:设置用户的组为GROUP;add_extra_groups:将新用户添加到配置文件中定义的额外组中。adduser的配置文件可以让我们设置一些在创建用户时使用的默认值,例如:默认的shell主目录属于组和添加额外的组以上就是本次分享的全部内容,欢迎讨论.