CentOS 7 权限管理实战指南:用户管理相关命令详解

前言

掌握 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: 用户ID
  • GID: 组ID
  • comment: 注释,一般是用户的全名或其他描述
  • 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 系统管理技能提供了帮助,不妨点个赞支持一下!当然也建议反这篇文章收藏起来,以备日后查阅。这样,你就能随时回顾和复习文章中的重要知识点,确保你的技术水平始终保持在最高水平。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/328902.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 网络编程之粘包问题

【一】粘包问题介绍 【1】粘包和半包 粘包: 定义: 粘包指的是发送方发送的若干个小数据包被接收方一次性接收,形成一个大的数据包。原因: 通常是因为网络底层对数据传输的优化,将多个小数据包组合成一个大的数据块一次…

Ubantu 安装vscode配置c/c++环境

文章目录 安装VSCode注意 snap包冲突 安装C/C编译环境注意 进程锁占用 配置C开发环境安装插件配置tasks.json配置c_cpp_properties.json 配置调试环境配置 launch.json 安装VSCode 方式一:ubantu 软件里面直接安装 方式二:官网下载deb安装包https://cod…

Angular系列教程之zone.js和NgZone

文章目录 什么是zone.jsZone的工作原理Zone的常见用途NgZone:Angular中的zone.js使用NgZone使用NgZone执行代码使用NgZone外部检测 结论 什么是zone.js 在Angular中,zone.js是一个非常重要的库,它为我们提供了一种跟踪和管理异步操作的机制。…

【STM32】STM32学习笔记-USART串口收发HEX和文本数据包(29)

00. 目录 文章目录 00. 目录01. 串口简介02. 串口收发HEX数据包接线图03. 串口收发HEX数据包示例104. 串口收发HEX数据包示例205. 串口收发文本数据包接线图06. 串口收发文本数据包示例07. 程序示例下载08. 附录 01. 串口简介 串口通讯(Serial Communication)是一种设备间非常…

AI与区块链的完美交融创新时代的双重引擎

每个投资者都梦想早日进入“下一个亚马逊、苹果或比特币”,以追求代际财富。 然而,这些机会很少而且相距甚远,而且正如每一个虔诚的加密货币本地人都知道的那样,这条道路上常常布满了失败的项目、失信的承诺和波动。 但在 2023 …

最新版git2.43安装、记住用户名和密码以及tortoisegit2.15使用

一、下载git 打开git官网地址:https://git-scm.com/进行下载 下载完安装,一直next就好,如果愿意就可以改下安装路径,改在d盘。 具体可以参考:git安装教程 二、安装完下载小乌龟以及中文语言包 下载地址:…

电脑本地连接不见了怎么恢复?5个方法轻松解决问题!

“我在使用电脑时,突然发现我的本地连接不见了,这是怎么回事呢?有什么方法可以解决这个问题吗?” 电脑的本地连接是一种将电脑与局域网连接的方式。局域网是一种小型的网络,通常在建筑物内或地理位置相近的少量计算机之…

【Web】CTFSHOW PHP特性刷题记录(全)

知其然知其所以然,尽量把每种特性都详细讲明白。 目录 web89 web90 web91 web92 web93 web94 web95 web96 web97 web98 web99 web100 web101 web102 web103 web104 web105 web106 web107 web108 web109 web110 web111 web112 web113 web…

轻松识别Midjourney等AI生成图片,开源GenImage

AIGC时代,人人都可以使用Midjourney、Stable Diffusion等AI产品生成高质量图片,其逼真程度肉眼难以区分真假。这种虚假照片有时会对社会产生不良影响,例如,生成公众人物不雅图片用于散播谣言;合成虚假图片用于金融欺诈…

Ubuntu20.4 Mono C# gtk 编程习练笔记(一)

简言 Mono是Linux环境下C#的开发、编译及运行环境。gtk是gnome独具特色的图形库,Mono对它进行了C#封装。Linux环境下,许多的编程语言使用gtk界面库,有比较好的编程群众基础。另外,Mono相对于DOTNET来说要轻量许多,它们…

多输入多输出 | Matlab实现PSO-CNN粒子群优化卷积神经网络多输入多输出预测

多输入多输出 | Matlab实现PSO-CNN粒子群优化卷积神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现PSO-CNN粒子群优化卷积神经网络多输入多输出预测预测效果基本介绍模型背景程序设计参考资料 预测效果 基本介绍 Matlab实现PSO-CNN粒子群优化卷积神经网络多输入多输出…

Qt/QML编程之路:使用camera摄像头(35)

汽车应用中,camera起到了越来越多的作用,数字化的作用,这点无可争议,而作为GUI设计工具,如何让Camera类的应用能更好的发挥作用呢? You can use Camera to capture images and movies from a camera, and manipulate the capture and processing settings that get appl…

Docker网络配置网络模式

前言 Docker 的网络模式是一种定义容器如何在网络中通信的方式。Docker 提供了多种网络模式,每种模式都适用于不同的使用场景 一.网络相关概念 1.子网掩码 互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结…

VG-4231CE(压控晶体振荡器(VCXO)微型低轮廓,宽拉范围)

爱普生晶振VG-4231CE是一款VCXO压控晶体振荡器,频率范围3MHz ~ 50MHz 输出频率范围不包括50MHz,电源电压采用 3.3V(PSCM / CSCM)、2.8V(PSBM / CSBM)或 1.8V(PQEM / CQEM)可满足不同…

Python-动态烟花【附完整源码】

烟花代码 运行效果:Python动态烟花代码 import pygame from random import randint from random import uniform from random import choice import math vector pygame.math.Vector2 # 重力变量 gravity vector(0, 0.3) # 控制窗口的大小 DISPLAY_WIDTH DISP…

【SpringBoot篇】添加富文本编辑器操作

文章目录 &#x1f354;使用步骤⭐首先我们需要安装富文本编辑器⭐在<script>中引入富文本编辑器⭐富文本图片上传接口⭐初始化富文本编辑器⭐调用 初始化富文本编辑器的方法&#x1f388;新增&#x1f388;编辑&#x1f388;保存 ⭐添加按钮⭐实现viewEditor函数&#x…

【Vue】后端返回文件流,前端预览文件

let date;request({url: this.$route.query.url,method: get,responseType: blob,}).then(resp > {date respthis.path window.URL.createObjectURL(new Blob([resp], {type: "application/pdf"}))}).catch((e) > {//旧版本浏览器下的blob创建对象window.Blo…

网站防御爬虫攻击有哪些方式

很多网站都深受爬虫困扰&#xff0c;网站在被爬虫大量抓取的的时候经常容易被爬虫把服务器资源抓崩了&#xff0c;有的时候&#xff0c;同行也会来爬取我们网站进行数据采集&#xff0c;影响我们站点的原创性&#xff0c;那么如何进行相对应的防护还是非常重要的&#xff01; …

Nacos 高级详解

一 、服务集群 1 需求 服务提供者搭建集群 服务调用者&#xff0c;依次显示集群中各服务的信息 2 搭建 1&#xff09;修改服务提供方的controller&#xff0c;打印服务端端口号 package com.czxy.controller;import org.springframework.web.bind.annotation.*;import …

2024 年 SEO 您需要了解的 8 个关键 SEO 趋势

SEO的未来正趋向于更加以用户为中心、合乎道德和技术先进的方法。 为什么&#xff1f; 人工智能 &#xff08;AI&#xff09; 和机器学习在搜索引擎中的兴起使他们能够更好地理解用户意图并提供更相关的结果Google 将经验、专业知识、权威性和可信度 &#xff08;E-E-A-T&…