Linux 用户管理目录
1用户账号管理(useradd、passwd、usermod、userdel)
1.1 useradd 命令
1.2 passwd 命令
1.3 usermod 命令
1.4 userdel 命令
2组账号管理(groupadd、gpasswd、groupdel)
2.1 groupadd 命令
2.2 gpasswd 命令
2.3 groupdel 命令
3查询账号相关信息的命令(groups、id、finger、w)
3.1 groups 命令
3.2 id 命令
3.3 finger 命令
3.4 w 命令
4设置目录与文件权限(chmod)
4.2 权限模式表示方法
4.3 常用选项
5设置目录与文件归属(chown)
5.2 常用操作
5.3 常用选项
6提权权限介绍
6.1sudo 命令的基本概念
6.2sudo 命令的配置文件
6.3 /etc/sudoers 文件的基本格式
6.4 sudo 命令的常用选项
6.5 sudo 命令的使用示例
Linux 用户管理
1 用户账号管理(useradd、passwd、usermod、userdel)
用户账号是 Linux 系统中用户身份的标识,通过相关命令可实现账号的创建、密码管理、属性修改及删除等操作。
1.1 useradd 命令
useradd 命令用于创建新用户账号,其基本语法为useradd [选项] 用户名。常用选项如下:
-u <UID>:指定用户的唯一标识号(UID),默认从 500 开始递增。例如useradd -u 1005 zhangsan,创建 UID 为 1005 的用户 zhangsan。
这里就是已经创建好了
-g <组名/组ID>:指定用户的初始组(主组),该组必须已存在。如useradd -g developers lisi,将 lisi 的初始组设为 developers。
-G <组1,组2>:指定用户的附加组(次要组),多个组用逗号分隔。例如useradd -G sales,tech wangwu,让 wangwu 同时属于 sales 和 tech 组。
-d <目录路径>:指定用户的家目录,默认是/home/用户名。如useradd -d /opt/zhangsan zhangsan,设置 zhangsan 的家目录为/opt/zhangsan。
-s <shell路径>:指定用户的登录 shell,默认是/bin/bash。例如useradd -s /sbin/nologin guest,设置 guest 用户无法登录系统。
-m:自动创建用户的家目录,若与-d配合使用,当指定的家目录不存在时会自动创建。
-c <注释信息>:添加用户的描述信息,如姓名、部门等。如useradd -c "市场部-张三" zhangsan。
1.2 passwd 命令
passwd 命令用于管理用户密码,基本语法为passwd [选项] 用户名,不指定用户名时默认修改当前用户密码。常用选项包括:
-l:锁定用户账号,锁定后用户无法登录。例如passwd -l zhangsan,锁定 zhangsan 账号。
![]()
-u:解锁被锁定的用户账号。如passwd -u zhangsan,解锁 zhangsan 账号。

-d:删除用户密码,使账号无密码即可登录(安全性低,不推荐)。例如passwd -d zhangsan。
![]()
-e:强制用户下次登录时必须修改密码。如passwd -e wangwu,wangwu 下次登录需重置密码。
-n <天数>:设置密码最小有效期,即多少天内不能修改密码。例如passwd -n 7 zhangsan,zhangsan 的密码 7 天内不可修改。
-x <天数>:设置密码最大有效期,超过天数后密码失效。如passwd -x 90 zhangsan,90 天后 zhangsan 需修改密码。
普通用户修改自己的密码时,需先输入当前密码,再设置新密码(新密码需符合复杂度要求);root 用户可直接修改任何用户的密码,无需验证旧密码。
1.3 usermod 命令
usermod 命令用于修改用户账号的属性,基本语法为usermod [选项] 用户名。常用选项如下:
-u <新UID>:修改用户的 UID。例如usermod -u 1006 zhangsan,将 zhangsan 的 UID 改为 1006。

-g <新主组>:修改用户的初始组。如usermod -g managers zhangsan,将 zhangsan 的主组改为 managers。
-G <新附加组>:覆盖用户原有的附加组,若需保留原有附加组并添加新组,使用-aG选项。例如usermod -aG admin zhangsan,为 zhangsan 新增 admin 附加组。
-d <新家目录>:修改用户的家目录,仅修改配置文件中的路径,不自动迁移文件。如usermod -d /home/newzhangsan zhangsan。
-s <新shell>:修改用户的登录 shell。例如usermod -s /bin/sh lisi,将 lisi 的 shell 改为/bin/sh。
-l <新用户名>:修改用户名。如usermod -l zhangsan_new zhangsan,将 zhangsan 改名为 zhangsan_new。
-c <新注释>:更新用户的注释信息。例如usermod -c "技术部-张三" zhangsan。
-L:锁定用户账号,功能同passwd -l。
-U:解锁用户账号,功能同passwd -u。
1.4 userdel 命令
userdel 命令用于删除用户账号,基本语法为userdel [选项] 用户名。常用选项:
-r:删除用户账号的同时,删除其家目录、邮件池等相关文件。例如userdel -r zhangsan,彻底删除 zhangsan 及其相关文件。
这里就已经删除了
若不使用-r选项,仅删除用户账号信息(如/etc/passwd、/etc/shadow中的记录),家目录等文件会被保留。删除用户前,需确保该用户没有正在运行的进程,否则可能导致删除失败。
2 组账号管理(groupadd、gpasswd、groupdel)
组账号用于集中管理多个用户的权限,通过相关命令可实现组的创建、成员管理及删除等操作。
2.1 groupadd 命令
groupadd 命令用于创建新的用户组,基本语法为groupadd [选项] 组名。常用选项:
-g <GID>:指定组的唯一标识号(GID),默认从 500 开始递增。例如groupadd -g 2003 sales,创建 GID 为 2003 的 sales 组。

-r:创建系统组,系统组的 GID 通常在 1-499 范围内。如groupadd -r sysadmin,创建系统组 sysadmin。
2.2 gpasswd 命令
gpasswd 命令用于管理组的成员和属性,基本语法为gpasswd [选项] 组名。常用操作:
添加成员:gpasswd -a 用户名 组名,将用户加入指定组。例如gpasswd -a zhangsan sales,把 zhangsan 加入 sales 组。

删除成员:gpasswd -d 用户名 组名,将用户从组中移除。如gpasswd -d zhangsan sales,将 zhangsan 从 sales 组中删除。

设置组管理员:gpasswd -A 用户名 组名,指定用户可管理该组(添加 / 删除成员)。例如gpasswd -A wangwu sales,设置 wangwu 为 sales 组的管理员。
设置组密码:gpasswd 组名,为组设置密码,用户切换到该组时需输入密码(使用newgrp 组名命令切换)。
2.3 groupdel 命令
groupdel 命令用于删除用户组,基本语法为groupdel 组名。例如groupdel sales,删除 sales 组。
删除组时,需确保该组不是任何用户的初始组,否则会提示错误。若要删除此类组,需先将相关用户的初始组修改为其他组(使用 usermod 命令),再执行删除操作。
3 查询账号相关信息的命令(groups、id、finger、w)
这些命令用于查询用户和组的信息,帮助管理员了解系统中账号的状态。
3.1 groups 命令
groups 命令用于查询用户所属的组,基本语法为groups [用户名],不指定用户名时查询当前用户。例如:
groups zhangsan:显示 zhangsan 所属的所有组(包括主组和附加组)。

groups:显示当前登录用户所属的组。
3.2 id 命令
id 命令用于查询用户的 UID、GID 及所属组信息,基本语法为id [选项] 用户名,不指定用户名时查询当前用户。常用选项:
-u:仅显示 UID。例如id -u zhangsan,输出 zhangsan 的 UID。

-g:仅显示主组 GID。如id -g zhangsan,输出 zhangsan 的主组 GID。
-G:显示所有所属组的 GID(主组 + 附加组)。例如id -G zhangsan。
-n:与-u、-g、-G配合,显示名称而非 ID。如id -un zhangsan显示用户名,id -gn zhangsan显示主组名。
3.3 finger 命令
finger 命令用于查询用户的详细信息,包括用户名、全名、登录终端、登录时间、空闲时间、办公信息等,基本语法为finger [用户名]。若系统未安装,可通过yum install finger或apt install finger安装。例如:
finger zhangsan:显示 zhangsan 的详细信息。

finger:显示所有登录用户的简要信息。
3.4 w 命令
w 命令用于显示当前系统中已登录用户的状态及活动进程,基本语法为w [选项]。输出内容包括:
USER:用户名;TTY:登录终端;FROM:登录来源 IP;LOGIN@:登录时间;IDLE:空闲时间;JCPU:终端所有进程的 CPU 时间;PCPU:当前进程的 CPU 时间;WHAT:当前执行的命令。
常用选项:
-h:不显示标题行。
-s:简化输出,只显示关键信息。
例如w,列出所有登录用户的状态及活动情况。
4 设置目录与文件权限(chmod)
chmod 命令用于修改目录或文件的访问权限,权限分为读(r)、写(w)、执行(x),对应数字权限为 4、2、1,分别针对文件所有者(u)、所属组(g)、其他用户(o),以及所有用户(a)。
4.1 基本语法
chmod [选项] 权限模式 目录或文件
4.2 权限模式表示方法
符号模式:由对象(u/g/o/a)、操作符(+ 添加、- 删除、= 设置)和权限(r/w/x)组成。
chmod u+r file.txt:为所有者添加读权限。
chmod g-wx dir:删除所属组对目录的写和执行权限。
chmod o=rwx data:为其他用户设置读、写、执行权限。
chmod a+x script.sh:为所有用户添加执行权限。
数字模式:用三位数字分别表示所有者、所属组、其他用户的权限(每位为 r/w/x 的权限和)。
chmod 755 app.sh:所有者有 rwx(7=4+2+1),所属组和其他用户有 rx(5=4+1)。
chmod 640 doc.txt:所有者有 rw(6=4+2),所属组有 r(4),其他用户无权限(0)。
4.3 常用选项
-R:递归修改目录及其子目录、文件的权限。例如chmod -R 770 /data,递归设置 /data 目录下所有内容的权限为 770。

5 设置目录与文件归属(chown)
chown 命令用于修改目录或文件的所有者和所属组。
5.1 基本语法
chown [选项] 所有者[:所属组] 目录或文件
5.2 常用操作
修改所有者:chown 新所有者 file。例如chown zhangsan report.txt,将 report.txt 的所有者改为 zhangsan。
修改所属组:chown :新所属组 dir。如chown :sales docs,将 docs 目录的所属组改为 sales。
同时修改所有者和所属组:chown 新所有者:新所属组 path。例如chown lisi:tech project,将 project 的所有者改为 lisi,所属组改为 tech。
5.3 常用选项
-R:递归修改目录及其子目录、文件的归属。例如chown -R wangwu:admin /app,递归设置 /data目录下所有内容的所有者为 wangwu,所属组为 admin。

6提权权限(sudo)命令介绍
6.1 sudo 命令的基本概念
sudo(superuser do)是 Linux 系统中一个非常重要的命令,它允许普通用户在获得授权的情况下,以超级用户(root)或其他用户的身份执行指定的命令。通过 sudo 命令,系统管理员可以不必泄露 root 用户的密码,就能让普通用户执行一些需要高级权限的操作,既保证了系统的安全性,又方便了对用户权限的管理。
6.2 sudo 命令的配置文件
sudo 命令的配置主要通过/etc/sudoers文件来实现,该文件规定了哪些用户或用户组可以使用 sudo 命令,以及可以执行哪些命令。由于/etc/sudoers文件的权限和格式较为特殊,直接编辑可能会导致错误,因此通常使用visudo命令来编辑该文件。visudo命令会在编辑完成后对文件格式进行检查,避免因格式错误导致 sudo 命令无法使用。
6.3 /etc/sudoers 文件的基本格式
/etc/sudoers文件的基本配置格式为:用户/用户组 主机=(可切换的用户) 可执行的命令。
用户 / 用户组:指定哪些用户或用户组可以使用 sudo 命令。如果是用户组,需要在组名前加上%。
主机:指定在哪些主机上可以使用 sudo 命令,通常使用ALL表示所有主机。
可切换的用户:指定可以切换到哪个用户的身份执行命令,ALL表示可以切换到任何用户。
可执行的命令:指定可以执行的命令,ALL表示可以执行所有命令,多个命令之间用逗号分隔。
例如,testuser ALL=(ALL) ALL表示 testuser 用户可以在所有主机上,以任何用户的身份执行所有命令;%developers ALL=(root) /usr/bin/apt-get表示 developers 组的成员可以在所有主机上,以 root 用户的身份执行/usr/bin/apt-get命令。
6.4 sudo 命令的常用选项
-l(list)
列出当前用户可以使用 sudo 执行的命令。通过该选项,用户可以查看自己被授权执行的命令列表。例如,sudo -l会显示当前用户拥有的 sudo 权限。
-u(user)
指定以某个用户的身份执行命令,默认是以 root 用户的身份。例如,sudo -u testuser ls表示以 testuser 用户的身份执行ls命令。
-k(kill)
清除当前用户的 sudo 时效,下次使用 sudo 时需要重新输入密码。默认情况下,用户输入 sudo 密码后,在一段时间内(通常是 5 分钟)再次使用 sudo 不需要重新输入密码,sudo -k可以强制清除这个时效。
-s(shell)
启动一个 shell,该 shell 拥有 sudo 权限。例如,sudo -s会启动一个 root 权限的 shell,用户可以在这个 shell 中执行多个需要 root 权限的命令,而无需每次都输入sudo。
-i(login)
以目标用户的身份启动一个登录 shell,会加载目标用户的环境变量。与-s选项相比,-i选项更接近直接登录到目标用户。例如,sudo -i会模拟 root 用户登录,加载 root 的环境变量。
6.5 sudo 命令的使用示例
6.5.1 执行单个需要 root 权限的命令
普通用户执行一些需要 root 权限的命令时(如安装软件、修改系统配置文件等),可以在命令前加上sudo。例如,sudo apt-get install nginx表示以 root 权限安装 nginx 软件,执行该命令后,用户需要输入自己的密码进行验证,验证通过后命令才会执行。
6.5.2 切换到 root 用户
如果需要执行多个需要 root 权限的命令,可以使用sudo su -命令切换到 root 用户。执行该命令后,输入当前用户的密码,验证通过后就会切换到 root 用户的环境,可以直接执行各种 root 权限的命令。
6.5.3 限制用户执行特定命令
通过编辑/etc/sudoers文件,可以限制普通用户只能执行特定的命令。例如,只允许 testuser 用户执行/sbin/service httpd restart命令(重启 Apache 服务),可以在/etc/sudoers文件中添加testuser ALL=(root) /sbin/service httpd restart。之后,testuser 用户可以通过sudo /sbin/service httpd restart命令重启 Apache 服务,但不能执行其他需要 root 权限的命令。
Linux 用户管理总结
Linux 用户管理涵盖用户账号、组账号的管理,账号信息查询,以及目录与文件的权限和归属设置,通过一系列命令实现系统的有序管控。
用户账号管理中,useradd 可创建带指定 UID、主组、附加组、家目录等属性的用户;passwd 用于密码的设置、修改、账号锁定与解锁,还能设置密码有效期;usermod 能修改用户的 UID、组、家目录等多种属性;userdel 则用于删除用户,-r 选项可同时移除其家目录等相关文件。
组账号管理方面,groupadd 可创建指定 GID 的普通组或系统组;gpasswd 能添加 / 删除组成员、设置组管理员和组密码;groupdel 用于删除组,前提是该组不是任何用户的初始组。
查询账号信息的命令各有功能:groups 显示用户所属组;id 可查询用户的 UID、GID 及所属组详情;finger 能获取用户的详细资料;w 则展示当前登录用户及其进程活动情况。
设置目录与文件权限的 chmod 命令,通过符号模式(结合 u/g/o/a 与 +/-/= 及 r/w/x)或数字模式(三位数字代表不同用户的权限和)进行权限修改,-R 选项支持递归操作。
设置目录与文件归属的 chown 命令,可单独修改所有者或所属组,也能同时修改两者,-R 选项用于递归修改目录及其子内容的归属。
这些命令相互配合,为 Linux 系统的用户和权限管理提供了全面支持,保障了系统的安全性和稳定性。

被折叠的 条评论
为什么被折叠?



