在Linux系统中,创建新用户并成功登录是系统管理的基础操作,本文将详细讲解从创建用户、设置密码到不同场景下登录的全流程,包括命令参数解析、注意事项及常见问题解决方法。
创建新用户:useradd
与adduser
的区别
Linux系统提供了两种创建用户的命令:useradd
(底层命令,参数丰富)和adduser
(交互式命令,适合新手),两者功能一致,但adduser
会引导用户逐步输入信息,而useradd
需通过参数指定配置。
使用useradd
创建用户
useradd
是系统底层命令,需配合参数实现完整配置,常用参数如下:
参数 | 作用 | 示例 |
---|---|---|
-m |
自动创建用户主目录(默认位于/home/用户名 ) |
useradd -m newuser |
-s |
指定用户登录的Shell(如/bin/bash 、/bin/zsh ) |
useradd -m -s /bin/bash newuser |
-G |
将用户加入附加组(需先存在组,如sudo 组) |
useradd -m -G sudo newuser |
-c |
添加用户注释信息(如真实姓名) | useradd -m -c "Test User" newuser |
-r |
创建系统用户(无家目录,UID小于1000) | useradd -r systemuser |
完整示例:
创建一个名为dev
的用户,指定Shell为/bin/bash
,加入sudo
组,并添加注释“Developer Account”:
sudo useradd -m -s /bin/bash -G sudo -c "Developer Account" dev
执行后,可通过cat /etc/passwd | grep dev
查看用户信息,主目录默认创建在/home/dev
。
使用adduser
创建用户
adduser
是useradd
的封装版,交互式操作更友好,直接输入命令后按提示输入信息即可:
sudo adduser dev
系统会依次询问:密码、全名、房间号、电话号码等(可回车跳过),最后确认创建,此方式会自动创建家目录、设置默认Shell(通常为/bin/bash
),适合新手快速操作。
设置/修改用户密码
创建用户后必须设置密码才能登录,使用passwd
命令完成操作。
为新用户设置初始密码
sudo passwd dev
系统会提示输入两次密码(输入时字符不显示,直接输入即可),密码需满足系统策略(如长度、复杂度),若需临时放宽策略,可编辑/etc/login.defs
或/etc/pam.d/passwd
(生产环境不推荐)。
用户自行修改密码
普通用户可通过passwd
命令修改自己的密码(无需sudo):
passwd
需输入当前密码验证,再输入新密码两次。
强制用户下次登录修改密码
若希望用户首次登录时强制修改密码,使用--expire
参数:
sudo passwd --expire dev
用户登录后会提示“Password expired. Please change your password”,需设置新密码后方可进入系统。
新用户登录方式
本地命令行登录(物理机/虚拟机)
- 图形界面登录:在登录界面输入新用户名和密码即可(需系统已启动图形环境,如GNOME、KDE)。
- 纯命令行登录:若系统为命令行模式(如Server版),在登录提示符后输入用户名,再输入密码:
Dev login: dev Password: [输入密码,不显示]
登录成功后,命令行提示符会显示用户名@主机名,如
dev@ubuntu:~$
。
SSH远程登录
若需从其他设备远程登录Linux服务器,需确保SSH服务已启动(systemctl status ssh
),然后使用ssh
命令:
ssh dev@服务器IP
ssh dev@192.168.1.100
,首次连接会提示“ authenticity of host can’t be established”,输入yes
后输入用户密码即可登录。
切换用户(临时使用其他账户)
若当前已登录root或其他用户,可使用su
命令切换到新用户:
su - dev # “-”表示加载用户的环境变量(推荐)
输入dev
的密码后,即可切换到该用户的命令行环境。
权限管理与注意事项
新用户默认权限
新用户创建后,默认仅拥有自己的家目录权限(/home/dev
),其他文件需通过sudo
或授权访问,若需赋予管理员权限,将用户加入sudo
组(如前文-G sudo
),或编辑sudoers
文件(sudo visudo
),添加:
dev ALL=(ALL:ALL) ALL
家目录权限问题
若创建用户后家目录权限异常(如无法写入),可手动修复:
sudo chown -R dev:dev /home/dev # 修改所有者和组 sudo chmod 700 /home/dev # 设置仅用户本人可访问
避免直接使用root账户
root拥有系统最高权限,日常操作建议使用普通用户,通过sudo
提权(需输入用户密码),降低误操作风险。
相关问答FAQs
Q1:创建用户后提示“Login incorrect”,无法登录,如何解决?
A:可能原因及解决方法:
- 密码错误:确认输入的密码是否正确(注意大小写、空格),可通过
sudo passwd dev
重置密码。 - Shell配置错误:检查用户Shell是否正确(
grep dev /etc/passwd
),若显示/bin/nologin
则无法登录,需修改为/bin/bash
:sudo usermod -s /bin/bash dev
- 账户被锁定:多次输错密码可能导致账户临时锁定,等待5-10分钟后重试,或使用
sudo faillock --user dev --reset
解锁。
Q2:如何让新用户无需密码直接使用sudo?
A:编辑sudoers
文件(sudo visudo
),找到root ALL=(ALL:ALL) ALL
一行,在下方添加:
dev ALL=(ALL:ALL) NOPASSWD: ALL
保存后,用户执行sudo
命令时无需输入密码。注意:此操作存在安全风险,仅建议在受信任的测试环境使用。
通过以上步骤,即可完成Linux新用户的创建、密码设置及登录操作,日常使用中需注意权限管理,遵循最小权限原则,确保系统安全。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/35975.html