首页 > 系统相关 >openEuler、Linux操作系统---(7)权限管理与进程管理讲解

openEuler、Linux操作系统---(7)权限管理与进程管理讲解

时间:2024-10-16 14:46:37浏览次数:3  
标签:ps 文件 umask --- 命令 Linux 进程 openEuler 权限

一、引言

在 Linux 操作系统的广袤领域中,权限管理与进程管理犹如两道坚实的壁垒,对系统的安全性、稳定性及运行效率起着至关重要的作用。本次讲解将引领各位深入探索 Linux 系统的权限机制和进程管理领域,通过对 chmod、chown、umask 等命令的运用来实现文件权限的修改、文件所有者的更改以及默认权限的设置。同时,还将学习使用 ps、top、kill 等命令对系统进程进行查看和管理。

二、权限管理

(一)Linux 系统的权限机制

在 Linux 系统中,每个文件和目录都被赋予了特定的权限,这些权限决定了谁能够对其进行读取(read)、写入(write)和执行(execute)操作。权限分为用户(user)、组(group)和其他人(others)三类。通过 ls -l 命令可以查看文件和目录的权限信息。

(二)修改文件权限:chmod 命令

chmod 命令如同万能钥匙一般,能够开启或关闭文件和目录的各种权限。它主要有两种使用方式:符号模式和八进制模式。

  1. 符号模式

    • 利用 u(用户)、g(组)、o(其他人)和 a(所有人)来明确权限的适用对象。
    • 采用 +(添加)、-(删除)和 =(设置)来确定权限的操作方式。
    • 使用 r(读取)、w(写入)和 x(执行)来指定具体的权限内容。
    • 例如:
      • chmod u+x file.txt 表示为文件 file.txt 的用户添加执行权限。
      • chmod g-w dir 表示为目录 dir 的组成员删除写入权限。
      • chmod o=r file.txt 表示设置文件 file.txt 的其他人权限为只读。
      • chmod a+rwx file.txt 表示为文件 file.txt 的所有人添加读、写、执行权限。
  2. 八进制模式
    • 使用三个八进制数字分别代表用户、组和其他人的权限,每个数字的取值范围为 0 到 7。
    • 数字的计算方式为:读取权限对应数字 4,写入权限对应数字 2,执行权限对应数字 1。将所需的权限对应的数字相加即可得到八进制数字。
    • 例如:
      • chmod 755 dir 表示设置目录 dir 的权限为 755(用户:读、写、执行;组:读、执行;其他人:读、执行)。这里的 7 是 4(读取)+2(写入)+1(执行),5 是 4(读取)+1(执行)。
      • chmod 644 file.txt 表示设置文件 file.txt 的权限为 644(用户:读、写;组:读;其他人:读)。6 是 4(读取)+2(写入),4 是 4(读取)。

实际案例 1:团队项目中的文件权限管理
假设在一个软件开发项目中,团队成员需要共同协作。对于一个源代码文件,期望只有项目组成员可以读取和修改,而其他人无法访问。可使用以下命令设置权限:

chmod 660 file.txt

如此一来,文件的用户(通常为文件的创建者或所属团队成员)和组(项目组成员所在的组)具有读写权限,而其他人没有任何权限。

(三)更改文件所有者:chown 命令

chown 命令就如同所有权转移的工具。可以用它来更改文件或目录的所有者和组。
格式:
chown [用户名]:[用户组名] [文件或目录名] 

表示将文件 file.txt 的所有者更改为 cgqyw ,组更改为 cgqyw_group

实际案例 2:文件交接
当一位员工离职时,其负责的一些文件需要交接给新的负责人。可使用 chown 命令将这些文件的所有者更改为新负责人的用户名。例如:

chown new_employee:department_group important_documents.txt

(四)设置默认权限:umask 命令

umask 命令如同默认权限的护盾。它通过一个掩码值来指定哪些权限应该被禁用。当创建新的文件和目录时,这个护盾会自动生效,为它们设置默认权限。例如,umask 022 会使新创建的文件具有 644 权限(rw-r–r–),新创建的目录具有 755 权限(rwxr-xr-x)。

1.查看当前umask值

可以直接在终端输入umask来查看当前用户的默认umask值。
例如:

这里显示的 “0022” 表示当前的umask值。


2.理解umask值与权限的关系

八进制数字与权限的对应关系:
读取权限(r)对应数字 4。
写入权限(w)对应数字 2。
执行权限(x)对应数字 1。
umask值的作用:
umask值是一个掩码,它会屏蔽掉文件或目录创建时的某些权限。
当创建新文件时,默认权限是 666(rw-rw-rw-)减去umask值得到实际权限。
当创建新目录时,默认权限是 777(rwxrwxrwx)减去umask值得到实际权限。

3.不同umask值的示例


umask 022:
新创建的文件权限为 644(rw-r--r--)。
计算过程:666(默认文件权限)减去 022,即 6 - 0 = 6(用户有读、写权限),6 - 2 = 4(组有读权限),6 - 2 = 4(其他人有读权限)。
新创建的目录权限为 755(rwxr-xr-x)。
计算过程:777(默认目录权限)减去 022,即 7 - 0 = 7(用户有读、写、执行权限),7 - 2 = 5(组有读、执行权限),7 - 2 = 5(其他人有读、执行权限)。
umask 002:
新创建的文件权限为 664(rw-rw-r--)。
计算过程:666 减去 002,即 6 - 0 = 6(用户有读、写权限),6 - 0 = 6(组有读、写权限),6 - 2 = 4(其他人有读权限)。
新创建的目录权限为 775(rwxrwxr-x)。
计算过程:777 减去 002,即 7 - 0 = 7(用户有读、写、执行权限),7 - 0 = 7(组有读、写、执行权限),7 - 2 = 5(其他人有读、执行权限)。
umask 077:
新创建的文件权限为 600(rw-------)。
计算过程:666 减去 077,即 6 - 0 = 6(用户有读、写权限),6 - 7 没有意义,视为 0(组无任何权限),6 - 7 没有意义,视为 0(其他人无任何权限)。
新创建的目录权限为 700(rwx------)。
计算过程:777 减去 077,即 7 - 0 = 7(用户有读、写、执行权限),7 - 7 = 0(组无任何权限),7 - 7 = 0(其他人无任何权限)。

实际案例 3:安全的文件创建环境
在对安全性要求较高的服务器环境中,可以设置一个严格的 umask 值,以确保新创建的文件和目录具有更受限的权限。例如,设置 umask 077,新创建的文件将只有所有者有读写权限,其他用户没有任何权限。

三、进程管理

(一)查看系统进程:ps 命令

ps 命令如同魔法望远镜,能够让用户看到系统中正在运行的各个进程。它有多种选项,可以组合使用以过滤和显示特定的进程信息。
常用选项:

  • ps aux:显示所有用户的所有进程。
  • ps -ef:以全格式显示所有进程。
  • ps - command:显示指定命令的进程。
  1. -A 或 -e:显示所有进程。包括其他用户的进程和没有控制终端的进程。

    • 例如:ps -e 会列出系统中所有正在运行的进程。
  2. -a:显示除会话引线外的所有进程,与 -x 选项结合时可查看所有进程,包括没有控制终端的进程。

    • 例如:ps -a 会显示当前用户除会话引线外的进程。
  3. -u [用户名]:显示指定用户的进程信息。

    • 例如:ps -u root 显示 root 用户的所有进程。
输出格式参数

-f:全格式显示,包括 UID、PID、PPID、C、STIME、TTY、TIME、CMD 等字段,提供更详细的进程信息。

例如:ps -ef 以全格式显示所有进程信息。

-l:长格式显示,显示比默认格式更多的信息,包括 F(内核分配的标志)、S(进程状态码)、UID、PID、PPID、C(处理器使用时间)、PRI(优先级)、NI(nice 值)、ADDR(内存地址)、SZ(进程占用的内存大小)、WCHAN(进程等待的内核函数地址)、TTY、TIME、CMD 等字段。

例如:ps -l 以长格式显示当前用户的进程信息。

其他参数

-w:宽输出,不截断命令行输出,使输出内容更易阅读。

例如:ps -eww 以宽输出格式显示所有进程信息。

-o [格式]:自定义输出格式,可以指定要显示的进程信息字段。

例如:ps -eo pid,ppid,cmd 只显示进程 ID(PID)、父进程 ID(PPID)和命令名(CMD)字段。

-H:以层级结构显示进程信息,显示父子进程关系。

例如:ps -efH 以层级结构显示所有进程信息。

-T:显示每个进程的线程信息。

例如:ps -eT 显示所有进程及其线程信息。

-C [命令名]:只显示指定命令名的进程信息。

例如:ps -C bash 只显示 bash 命令的进程信息。

-p [PID]:显示指定进程 ID 的进程信息。

例如:ps -p 1234 显示进程 ID 为 1234 的进程信息。

-M:显示安全信息,如 SELinux 上下文等。

例如:ps -eM 显示所有进程的安全信息。

-L:显示进程的轻量级进程(线程)信息。

例如:ps -eL 显示所有进程的线程信息,包括轻量级进程 ID(LWP)和内核线程 ID(NLWP)。

-r:只显示正在运行的进程。

例如:ps -er 显示正在运行的所有进程。

-x:显示没有控制终端的进程。

例如:ps -ax 显示所有进程,包括没有控制终端的进程。

(二)实时监控系统资源:top 命令

top 命令就像一个动态的仪表盘,能够实时显示系统中的进程和资源使用情况。
常用操作:

  • 按 P 键:按 CPU 使用率排序进程。
  • 按 M 键:按内存使用率排序进程。
  • 按 q 键:退出 top 命令。

(三)管理进程:kill 命令

kill 命令犹如魔法杀手,可以向进程发送信号,通常用于终止进程。

kill命令用于向进程发送信号,以实现终止、暂停、继续等操作。

语法

kill [选项] 进程号或进程组号或作业号

主要参数解释

  • -s <信号名或信号编号>:指定要发送的信号。如果不指定信号,默认发送TERM(终止)信号。常见的信号有:
    • TERM(15):请求进程终止运行,这是比较友好的终止信号,进程在接收到这个信号后,通常会清理资源并正常退出。
    • KILL(9):强制终止进程,这个信号无法被捕获或忽略,通常在进程无法响应TERM信号时使用,但使用这个信号可能会导致数据丢失或其他不良后果。
    • HUP(1):挂起信号,常用于通知进程重新读取配置文件等。
    • INT(2):中断信号,类似于在终端按下Ctrl+C,通常用于请求进程停止当前操作并退出。
  • -l:列出所有可用的信号名称和编号。
  • -p:打印进程号,而不发送信号。
  • -a:当处理某个进程时,不限制命令名和进程号的对应关系。

示例用法

  1. 终止一个进程:假设进程号为 1234,使用kill 1234向该进程发送TERM信号,请求它终止运行。
  2. 强制终止一个无响应的进程:kill -9 1234,使用KILL信号强制终止进程号为 1234 的进程。
  3. 列出信号:kill -l会列出所有可用的信号名称和编号。

需要注意的是,使用kill命令时要谨慎,尤其是使用强制终止信号,可能会导致数据丢失或系统不稳定。在终止进程之前,最好先尝试使用比较友好的信号,让进程有机会正常退出。同时,只有具有足够权限的用户才能终止其他用户的进程。

四、实践环节

现在,让我们通过几个实践案例来巩固所学知识:

  1. 创建一个名为 testfile 的文件,并为其设置权限为 600(仅用户有读写权限)。
  2. 使用 chown 命令将 testfile 的所有者更改为另一个用户(假设用户名为 otheruser)。
  3. 设置 umask 值为 077,然后创建一个新的目录 newdir,并观察其权限。
  4. 使用 ps aux 命令列出所有进程,并找到某个特定进程的 PID(例如,查找名为 sshd 的进程)。
  5. 使用 top 命令监控系统资源使用情况,并尝试按 CPU 使用率排序进程。
  6. 使用 kill 命令终止一个不必要的进程(注意:不要终止系统关键进程)。
  • 例:这里运行了一个./myfor.sh死循环程序, 这里可以新登录一个root帐户,采用kill  20931 杀死这个进程。 

切回原来的帐户,我们可以发现,死循环程序已中断。

五、结语

通过本次讲解,我们深入了解了 Linux 系统的权限机制和进程管理。掌握了 chmodchownumask 等命令来修改文件权限、更改文件所有者及设置默认权限,同时也学会了使用 pstopkill 等命令来查看和管理系统进程。希望这些知识能够帮助各位在 Linux 的世界中更加游刃有余地操作。

请注意,在实际操作中务必小心谨慎,避免对系统造成不必要的损害。同时,鼓励各位将这份教学文档分享给其他对 Linux 系统感兴趣的人,共同探索和学习这个强大的操作系统。

标签:ps,文件,umask,---,命令,Linux,进程,openEuler,权限
From: https://blog.csdn.net/cgqyw/article/details/142878804

相关文章

  • OpenEuler 软件安装与服务管理全攻略
        在OpenEuler操作系统的日常使用中,软件安装和服务管理是至关重要的操作环节。本文将以严谨的方式为大家详细阐述OpenEuler中安装软件的多种方法,涵盖RPM、DNF的概念与操作命令以及操作实验,同时还包括源代码软件的安装方法和使用systemd进行服务管理的内容。......
  • [Paper Reading] Decoding Surface Touch Typing from Hand-Tracking
    目录DecodingSurfaceTouchTypingfromHand-TrackingTL;DRMethodHTSkeletonSequence->TextTEXTDECODINGDATACOLLECTIONQ&AExperiment物理键盘与虚拟键盘对比对比不同MotionModel效果可视化总结与发散相关链接资料查询DecodingSurfaceTouchTypingfromHand-Tracking......
  • 洛谷题单指南-字符串-P3435 [POI2006] OKR-Periods of Words
    原题链接:https://www.luogu.com.cn/problem/P3435题意解读:定义字符串a是b的周期,当a是b的真前缀,且b是aa的前缀。给定字符串s,求s每一个前缀的最大周期长度之和。解题思路:针对字符串babababa进行样例模拟:前缀子串  最大周期  周期长度b空0ba空0babba2......
  • OS-Nachos实验环境的搭建
    实验目的:按照实验教程在本地虚拟机搭建Nachos开发环境;安装docker,下载镜像搭建基于docker的Nachos开发环境;使用./nachos–u学习nachos的用法,并对相关命令选项进行尝试;使用nachos–x选项加载test目录下编译为noff格式的用户程序运行,思考nachos执行结果错误的原因;使用gdb......
  • OS-Lab3-Linux进程相关的系统调用和线程相关的库函数
    实验目的1) 演示/实践:Linux进程控制相关的系统调用(如exec()/exit()等)2) 演示/实践:Linux多进程的条件竞争/RaceCondition的现象观察3) 演示/实践:Linux的线程库pthread的初步和入门(如何创建一个用户态的Linux线程:相关库函数pthread_create()等),以及其条件竞争/RaceCondition的现象......
  • OS-Lab4-多线程编程基础
    实验目的事先编辑好数据文件1.dat和2.dat,它们的内容分别为12345678910和-1-2-3-4-5-6-7-8-9-10。根据示例代码和其运行效果设计一个程序,在这个程序中一共有3个线程,其中两个线程负责从文件读取数据到公共的缓冲区,另外一个线程从缓冲区读取数据作不同的处理(加和......
  • 智谱CogView3-Plus模型开源 文生图技术迎来新纪元
    智谱技术团队近期发布了一则振奋人心的消息,他们最新研发的文生图模型CogView3及其升级版CogView3-Plus-3B已正式开源,同时在"智谱清言"App中成功上线。这两款模型的问世,标志着AI辅助艺术创作迈入了一个新的阶段。CogView3作为一款基于级联扩散的文本转图像模型,其生成过程堪......
  • Linux基础篇
    liunx基础篇操作系统OperatingSystem简称OS,是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁。操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序。1、描......
  • 6.JAVA环境准备-->JDK
    【1】下载JDK www.oracle.com/technetwork/java/javase/downloads/index.html  外网环境下载比较慢;这里推荐华为镜像进行下载,先选版本,再选对应系统新手window直接选择 https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-windows-x64.exe【2】安装JDK 下......
  • 1-STM32F103+ML307(中移4G Cat1)OTA升级篇(自建物联网平台)-STM32通过ML307使用http或
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/ML307/myota.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>  说明这节......