菜鸟科技网

Linux添加用户命令是?

在Linux操作系统中,增加用户是一项基础且常用的管理任务,通常通过命令行工具完成,不同Linux发行版可能使用不同的用户管理工具,但核心命令和逻辑基本一致,以最常用的Ubuntu/Debian系统为例,adduseruseradd是两个主要的命令,它们在功能和使用场景上存在差异。

Linux添加用户命令是?-图1
(图片来源网络,侵删)

adduser是一个交互式的命令行工具,它会提示用户输入新用户的密码、全名、房间号等信息,并自动创建家目录和初始化配置文件,执行sudo adduser newuser后,系统会依次提示设置密码、确认密码,以及填写可选的用户信息(如姓名、电话等),整个过程较为友好,适合初学者或需要快速创建用户的情况。adduser实际上是一个Perl脚本,在多数系统中会调用useradd,但封装了更友好的交互逻辑。

相比之下,useradd是一个底层的二进制命令,功能更强大但参数复杂,适合脚本化批量操作。sudo useradd -m -s /bin/bash newuser命令中,-m表示自动创建家目录(若不指定,某些系统可能不会创建),-s /bin/bash指定用户的默认shell为bash。useradd的参数非常丰富,如-c添加用户备注,-d指定家目录路径,-e设置账户过期日期,-g指定主用户组,-G添加附加用户组等,创建一个名为devuser的用户,主组为developers,附加组为sudodocker,可使用命令:sudo useradd -m -d /home/devuser -s /bin/bash -g developers -G sudo,devuser devuser

在CentOS/RHEL等基于Red Hat的系统中,默认可能使用useradd,但同样提供了adduser作为useradd的符号链接,这些系统还提供了usermod(修改用户属性)和userdel(删除用户)命令,与useradd形成完整的用户管理工具集,删除用户及其家目录可使用sudo userdel -r newuser,其中-r会同时删除用户的主目录和邮件文件。

为了更直观地理解常用参数,以下列出useradd的主要参数及其说明:

Linux添加用户命令是?-图2
(图片来源网络,侵删)
参数 说明 示例
-m 自动创建家目录 sudo useradd -m newuser
-s 指定登录shell sudo useradd -s /bin/zsh newuser
-d 指定家目录路径 sudo useradd -d /opt/custom newuser
-g 指定主用户组 sudo useradd -g developers newuser
-G 指定附加用户组 sudo useradd -G sudo,docker newuser
-c 添加用户备注 sudo useradd -c "Test User" newuser
-e 设置账户过期日期 sudo useradd -e 2023-12-31 newuser
-r 创建系统用户(无家目录和登录权限) sudo useradd -r systemuser

创建用户后,通常需要为新用户设置初始密码,可通过sudo passwd newuser命令完成,系统会提示输入并确认密码,如果需要批量创建用户,可以结合echochpasswd命令实现,echo "newuser:password" | sudo chpasswd,这种方式在自动化脚本中非常实用。

需要注意的是,Linux用户信息存储在/etc/passwd文件中,密码存储在/etc/shadow文件中(加密格式),用户组信息存储在/etc/group文件中,直接编辑这些文件虽然可行,但容易出错,推荐使用useraddusermod等工具进行管理。

相关问答FAQs:

  1. 问:adduseruseradd有什么区别?哪个更适合日常使用?
    答:adduser是交互式脚本,操作简单,适合手动创建单个用户,会自动提示输入密码和用户信息;useradd是底层命令,参数灵活,适合脚本化批量操作,但需要手动指定参数(如-m创建家目录),日常手动创建用户推荐使用adduser,自动化场景则优先选择useradd

    Linux添加用户命令是?-图3
    (图片来源网络,侵删)
  2. 问:如何查看Linux系统中的所有用户列表?
    答:可通过以下几种方式查看用户列表:

    • 执行cat /etc/passwd | cut -d: -f1,直接显示所有用户名;
    • 使用getent passwd | cut -d: -f1,包含系统配置(如LDAP)中的用户;
    • 执行compgen -u,列出当前系统所有用户名。/etc/passwd文件中每行代表一个用户,第7字段为用户登录shell,若为/sbin/nologin则表示该用户无法登录系统。
分享:
扫描分享到社交APP
上一篇
下一篇