前言

掌握 CentOS 7 用户管理命令,轻松管理系统用户!本文详细介绍了在 CentOS 7 系统中常用的用户管理命令,从创建和删除用户、修改用户属性,到密码管理和用户权限设置,一应俱全。无论你是 Linux 新手还是经验丰富的管理员,这篇文章都将为你提供清晰而实用的用户管理技巧以及示例,希望可以帮到你。

Linux权限控制的基本工作原理

Linux系统的权限管理基本原理是基于用户和用户组的访问控制。每个文件和目录都有一个所有者和一个所属用户组,以及对应的读、写、执行权限。那什么是所有者和所属组呢?又是如何控制权限呢?

所有者(Owner)是指创建该文件或目录的用户。所有者具有最高权限,可以对文件或目录进行读、写和执行操作,也可以修改权限和更改所有者。所属用户组(Group)是指将文件或目录分配给某个特定用户组。所属用户组的成员具有与所有者相同的权限,但不能更改文件或目录的所有者。通常情况下,文件或目录的所属用户组与创建它的用户的默认用户组相同。Linux系统有三种权限,分别是可读、可写、可执行,用数字4、2、1分别表示可读、可写、可执行。文件和目录的权限可以分为三部分,分别是所有者权限、所属用户组权限和其他用户权限,其中每一部分又分别包括读、写、执行权限。例如,一个文件的权限为-rw-r--r--,其中第一位表示这是一个普通文件;后面的三组r、w、x分别表示所有者、所属用户组、其他用户的读、写、执行权限。具体来说,这个文件的所有者具有读和写的权限,所属用户组和其他用户则只有读的权限。请注意,数字0代表没有权限,数字1代表执行权限,数字2代表写权限,数字4代表读权限。这些数字权限可以通过相加来表示不同权限的组合,例如,读和写权限为6(4+2),读、写和执行权限为7(4+2+1)。

通过设置文件和目录的权限,Linux系统可以实现对不同用户的权限控制,从而保证文件和目录的安全性和机密性。同时,Linux系统还提供了一些特殊权限,如SUID、SGID和Sticky Bit,以更精细地控制用户和进程对文件和目录的访问。

用户管理相关命令

useradd

在 CentOS 7 系统中,useradd 命令用于创建新的用户账户。

语法:

useradd [选项] 用户名

可选参数:

-c, --comment COMMENT:设置用户的注释/描述信息。-d, --home HOME_DIR:指定用户的主目录路径。-g, --gid GROUP:指定用户所属的初始用户组。-G, --groups GROUPS:指定用户附加的附属用户组。-s, --shell SHELL:指定用户登录后使用的默认Shell。-u, --uid UID:指定用户的用户ID。

使用示例:

创建一个名为 ayi 的用户,并将它添加到 root 用户组:

useradd -g root ayi

创建一个名为 ayi 的用户,指定其主目录为 /home/ayi,并指定它登录后使用的默认Shell为 /bin/bash:

useradd -d /home/ayi -s /bin/bash ayi

创建一个名为 myuser 的用户,并设置它的注释信息为 "My Test User":

useradd -c "My Test User" fanfu

请注意,在使用 useradd 命令创建用户时,需要以 root 权限或具有适当的权限进行操作。

passwd

passwd 命令用于更改用户的密码。

语法:

passwd [选项] 用户名

可选参数:

-n, --mindays MIN_DAYS:设置用户必须等待更改密码的最小天数。-x, --maxdays MAX_DAYS:设置密码有效期的最大天数。-w, --warndays WARN_DAYS:设置在密码过期之前发出警告的天数。-i, --inactive INACTIVE:设置账户非活动期间的天数,超出此期限后,账户将被禁用。-l, --lock:锁定指定用户的密码。-u, --unlock:解锁指定用户的密码。

使用示例:

更改当前用户的密码:

passwd

更改用户 fanfu 的密码:

passwd fanfu

将用户 fanfu 的密码锁定:

passwd -l fanfu

将用户 fanfu 的密码解锁:

passwd -u fanfu

设置用户 fanfu 的密码最小天数为 7 天:

passwd -n 7 fanfu

设置用户 fanfu 的密码最长有效期为 90 天:

passwd -x 90 fanfu

请注意,为了更好地保护用户账户的安全性,建议定期更改密码,并设置合适的密码策略。同时,需要确保只有授权用户才能更改密码。

userdel

userdel 命令用于删除用户账户。在 CentOS 7 中,可以使用以下语法、可选参数和使用示例:

语法:

userdel [选项] 用户名

可选参数:

-r, --remove:删除用户账户及其相关文件。-f, --force:强制删除用户账户,即使用户当前登录或拥有进程。

使用示例:

删除一个名为 fanfu 的用户账户:

userdel fanfu

删除用户账户 fanfu 及其相关文件(主目录等):

userdel -r fanfu

强制删除一个当前已登录或拥有进程的用户账户 fanfu:

userdel -f fanfu

请注意,在删除用户账户时,需要以 root 权限或具有适当的权限进行操作。确保在删除用户账户之前,已经备份了相关的数据。

usermod

usermod 命令用于修改用户账户的属性。

语法:

usermod [选项] 用户名

可选参数:

-c, --comment COMMENT:为用户添加注释/描述信息。-d, --home HOME_DIR:修改用户的主目录路径。-s, --shell SHELL:修改用户登录后使用的默认Shell。-g, --gid GROUP:修改用户所属的初始用户组。-a, --append:将用户附加到附属用户组列表中,而不是替换它们。-G, --groups GROUPS:设置用户的附属用户组列表。-l, --login NEW_LOGIN:修改用户的用户名。-L, --lock:锁定用户的密码。-U, --unlock:解锁用户的密码。

使用示例:

修改用户 fanfu 的主目录为 /home/fanfu001:

usermod -d /home/fanfu001 fanfu

将用户 fanfu 的默认Shell更改为 /bin/bash:

usermod -s /bin/bash fanfu

将用户 fanfu 添加到用户组 guest 中:

usermod -a -G guest fanfu

更改用户 fanfu 的用户名为 fanfu1024:

usermod -l fanfu1024 fanfu

锁定用户 fanfu 的密码:

usermod -L fanfu

请注意,在修改用户账户属性时,需要以 root 权限或具有适当的权限进行操作。确保在修改用户账户之前,已经备份了相关的数据。

su

su 命令用于切换用户身份。

语法:

su [选项] [用户名]

可选参数:

-l, --login:以登录shell的方式切换到新用户。-c, --command COMMAND:执行完命令后返回原用户。-s, --shell SHELL:指定使用的shell。

使用示例:

使用 root 用户身份切换到另一个用户 fanfu:

su fanfu

使用 root 用户身份切换到另一个用户 fanfu,并使用其默认shell:

su - fanfu

使用 root 用户身份切换到另一个用户 fanfu,并以 /bin/bash 作为新shell:

su -s /bin/bash fanfu

普通用户 fanfu 切换到 root 用户身份,并执行命令 ls -l:

su -c 'ls -l' root

请注意,在切换用户身份时,需要输入目标用户的密码。同时,需要确保已经授权使用 su 命令的用户具有必要的权限。

cat /etc/passwd

在CentOS系统上,你可以使用以下命令来查询系统中的所有用户:

cat /etc/passwd

这个命令会显示系统中所有用户的信息,每个用户信息一行。每行的格式通常是这样的:

username:password:UID:GID:comment:home_directory:shell

具体解释如下:

username: 用户名password: 密码字段,通常是 "x" 表示密码存储在 /etc/shadow 文件中UID: 用户IDGID: 组IDcomment: 注释,一般是用户的全名或其他描述home_directory: 用户的主目录shell: 用户登录时使用的shell

如果你只想显示用户名,你可以使用以下命令:

awk -F':' '{print $1}' /etc/passwd

这会仅显示每行中的用户名部分。请注意,查询系统用户的命令可能需要以管理员权限执行,你可以使用 sudo 命令来获取足够的权限。

id

id 命令可以查看当前用户或指定用户的 UID(用户 ID)和 GID(组 ID)。它的语法如下:

id [选项] [用户名]

如果没有指定用户名,id 命令将显示当前用户的 UID 和 GID。常用的选项包括:

-G, --groups:显示用户所属的所有组。-g, --group:显示用户所属的主要组。-u, --user:显示用户的 UID。

下面是 id 命令的一些常见使用方法示例:

显示当前用户的 UID 和 GID:

id

显示用户 fanfu 的 UID 和 GID:

id fanfu

显示用户 fanfu 所属的所有组:

id -G fanfu

显示用户 fanfu 所属的主要组:

id -g fanfu

who

who 命令用于显示当前登录系统的用户信息。它可以列出登录到系统的用户,并提供有关每个用户的详细信息,如用户名、终端设备、登录时间和来源 IP 地址等。

语法:

who [选项] [文件]

可选参数:

-a, --all:显示所有用户的登录信息,包括系统进程。-b, --boot:显示系统启动时间。-d, --dead:显示已注销的用户信息。-H, --heading:在输出中显示表头。-l, --login:显示用户名和登录时间。-p, --process:显示与终端相关的进程状态。-q, --count:只显示当前登录用户数量。-s, --short:使用短格式输出。-t, --time:显示最后一次活动时间。-u, --users:显示用户名。

使用示例:

显示当前登录系统的用户信息:

who

显示系统启动时间:

who -b

显示当前登录用户的数量:

who -q

显示最后一次活动时间:

who -t

显示所有用户的登录信息:

who -a

请注意,who 命令通常不需要指定文件参数,它会默认使用 /var/run/utmp 文件来获取用户登录信息。

chown

在 CentOS 7 中,chown 命令用于修改文件或目录的所有者。以下是 chown 命令的使用方式和示例:

使用方式:

chown [选项] 新所有者 文件/目录

常用选项:

-R:递归地修改文件夹及其子文件夹的所有者。-v:显示每个修改后的文件/目录的所有者。

新所有者:

可以使用用户名或用户 ID(UID)来指定新的所有者。

示例:

将文件 file.txt 的所有者修改为 fanfu:

chown fanfu file.txt

将目录 dir 及其子目录的所有者修改为 fanfu,同时显示修改过程:

chown -Rv fanfu dir

将文件 file.txt 的所有者和所属组修改为 fanfu 和 yzxa:

chown fanfu:yzxa file.txt

chmod和chown的区别

chmod 和 chown 是两个在 CentOS(以及其他 Linux 发行版)中常用的命令,用于修改文件或目录的权限和所有者。它们的区别如下:

chmod 命令:

作用:chmod 命令用于修改文件或目录的权限。使用方式:chmod 命令后面跟着权限模式和要修改权限的文件或目录路径。权限模式:可以使用数字(例如 755)或符号(例如 u+rwx)来指定权限模式。数字模式:数字模式使用三位数,每一位表示一个权限组(所有者、所属组、其他用户),其中每一位的值为 4(读权限)、2(写权限)和 1(执行权限)的组合。例如,755 表示所有者具有读、写和执行权限,所属组和其他用户具有读和执行权限。符号模式:符号模式使用类似于 u+rwx、g+rw、o-x 的格式来指定权限。u 代表所有者,g 代表所属组,o 代表其他用户,+ 表示添加权限,- 表示移除权限,r 表示读权限,w 表示写权限,x 表示执行权限。

chown 命令:

作用:chown 命令用于修改文件或目录的所有者。使用方式:chown 命令后面跟着新的所有者和要修改所有者的文件或目录路径。所有者:可以使用用户名或用户 ID(UID)来指定新的所有者。

综上所述,chmod 用于修改文件或目录的权限,而 chown 用于修改文件或目录的所有者。它们是不同的命令,用途和参数也不同。在实际应用中,我们可以根据需要选择使用 chmod 或 chown 来对文件或目录进行相应的权限和所有者的修改操作。

写在最后

喜欢我为你精心准备的 CentOS 7 用户管理命令文章吗?如果你觉得这篇指南对你的 Linux 系统管理技能提供了帮助,不妨点个赞支持一下!当然也建议反这篇文章收藏起来,以备日后查阅。这样,你就能随时回顾和复习文章中的重要知识点,确保你的技术水平始终保持在最高水平。

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: