Linux文件特殊权限管理及进程和线程

acl 权限优先级

拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他

mask阈值

mask是能够赋予指定用户权限的最大阀值

当设定完毕文件的acl列表之后用chmod缩小了文件拥有组的权力 mask会发生变化

恢复:  setfacl -m m: 权限 :rwx    文件/mnt/timinglee

acl 列表的默认权限   

【指定用户对特殊文件有特殊权限,设置后新创建的对象将继承该目录的默认 ACL 规则】

ls -l timinglee/

setfacl -m u:admint:rwx /mnt/timinglee  ##只对于/mnt/westosdir目录本身生效

但是timinglee目录里面的内容还没有开权限

setfacl -Rm u:admint:rwx /mnt/timinglee  ##对于目录和目录中已经存在的内容生效

#以上的命令之针对与存在的文件生效,新建文件是不会被设定的

setfacl -m d:u:admint:rwx /mnt/timinglee/   ##针对与/mnt/westosdir目录中新建文件生效

d表示/mnt/timinglee目录中新建目录会自动复制default权限到文件或目录的acl列表中】

attr权限

attr 权限,即文件属性权限,是 Linux 系统中一种对文件或目录赋予额外属性的机制。它能进一步增强对文件访问和操作的控制,提供了比传统 r(读)、w(写)、x(执行)权限更细致的管控维度。这些属性可以限制文件的某些操作,如防止文件被删除、修改,或者使其只能追加写入等。

#attr权限限制所有用户

i   #不能作任何的更改

a   #能添加不能删除

lsattr dir   //   file     ##查看dir的attr权限

chattr +i|+a|-i|-a dir  //  file   ##设定attr权限

chattr +a timinglee/     root超级用户在timinglee也只能touch添加文件,不能删除文件

chattr -a timinglee/     关闭attr权限

进程和线程

进程:

进程是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位。它包含了程序执行所需的各种资源,如内存空间、文件描述符等。

每个进程都有自己独立的内存空间和系统资源,不同进程之间相互隔离 。

进程是静态的代码文件 。   进程是指程序运行时的形态

进程是程序的一个副本 。   进程是有生命周期的(准备期,运行期,终止期)

线程:

线程是进程中的一个执行单元,是 CPU 调度和分派的基本单位。

一个进程可以包含多个线程,这些线程共享进程的内存空间和系统资源

每个线程有自己独立的栈空间和程序计数器、

线程之间可以并发执行,提高程序的执行效率

当进程是多任务,cpu是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程

进程与线程区别:

进程是资源调度以及分配的基本单位。
线程是cpu 调度的基本单位。

线程井发性较高。进程井发性较低

一个进程可以拥有多个线程
一个线程属于一个进程

每个进程有独立的虚拟地址空间。线程没有独立地址空间

一个线程発常,可能导致整个进程崩溃
一个进程前溃,不会影响其他进程

进程状态

进程查看【应用程序的系统监视器】

gnome-system-monitor     #打开图形中的进程管理工具

常用进程查看命令的使用

ps   #进程查看

ps 命令的三种执行风格 unix bsd GNU

unix风格:

ps a   与终端相关的进程(当用户登陆系统后产生的进程都是带终端的,当前运行的)

ps x   与终端无关相关的进程       ps ax查看相关和不相关的

ps u   用户信息归类的查看方式       aux

ps f   进程层级关系

ps o   显示指定参数

ps  选择显示分类 pid查看ID  comm命令名称  nice值  pri优先级  pcpu父级进程cpu  ppid父级进程ID  stat user用户  group组 

bsd风格:

ps -e 显示所有进程

ps -f 显示信息的完整格式

ps -H 显示进程的层级结构

ps -o 显示指定参数

ps --sort=

ps ax显示信息:

#PID 进程id  #TTY 进程用到的终端  #STAT 进程状态  #TIME 进程占用cpu时长

#COMMAND 进程名称

ps aux显示信息:

# USER 进程所有人 # PID 进程id  #%CPU 进程使用cpu的用量  # %MEM 用到内存量

# VSZ 使用的虚拟内存大小   # RSS 进程常驻内存中的数据大小 # TTY 用到的终端

# STAT 进程状态   #START 进程运行时长   #TIME 进程占用cpu时长

#COMMAND 进程名称

ps ax - -sort=%cpu   #用cpu对进程排序

ps ax -o %cpu,%mem,comm - -sort=-%cpu   #进行倒序排序【查看cpu,内存,名称

pgrep #进程过滤

#-u uid    显示指定id用户进程【查看的是PID的】

#-U timinglee   显示指定timinglee用户进程

#-t timinglee   显示指定终端进程

#-l     显示进程名称    -lU timinglee显示更详细的,或-lau 1000pid1000

#-a 显示进程的完整名称      #-P 1000 输入pid查看进程的子进程pid

pidof 进程名称   ##pidof vim ——查看vim的pid

# kill -9 35636     可以强制结束进程

top查看动态进程

top   ##动态进程查看

#top命令的参数             【查看的是外部命令】

#-d 指定刷新频率            top -d 1    每1秒刷新一次

#-b 以批次方式显示          top -d 1 -b 只显示进程信息【可查看所有进程信息】

#-n 指定显示的批次数量      top -d 1 -n 2     刷新两次结束

top中的内容显示信息 

top什么时候开的   up运行  11:23运行多少时间   2 users 系统中有两个用户被使用

load average系统负载【分别是1min 5min 15min平均排队时长】   

Tasks进程数 【running 正在运行,sleeping 休眠数,stopped 被暂停数,zombie 僵死数】

%Cpu(s)  us 用户空间  sy 内核空间  ni nice值调整时间  id 空闲时间  wa 等待io时间

hi 处理硬件中断时间  si 处理软件中断时间  st 被偷走的时间(vm使用时间)

MiB Mem   total, 总量   free 空闲   used 占用   buff/cache 缓存

MiB Swap: 交换分区用量

top内部快捷键指令

P    cpu排序

M    内存排序

T    累计占用cpu时间排序

l 关闭/开启uptime信息     【top一行会不显示】

t 关闭/开启cpu&task

s 指定刷新频率

k 操作进程      【默认是占用量最大的进程】

u 查看指定用户进程

#PID 进程id   #USER 进程所有者的用户名   #PR 优先级   #NI nice值。负值是高优先级,正值表示低优先级   #VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

#RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

#SHR 共享内存大小,单位kb    #S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)     #%CPU 上次更新到现在的CPU时间占用百分比

#%MEM 进程使用的物理内存百分比

#TIME+ 进程使用的CPU时间总计,单位1/100秒   #COMMAND 命令名/命令行

进程的前后台调用

# gedit

此时终端被占用

ctrl+z   ##把占用shell的进程打入后台挂起【此时进程无法使用】

# bg    ##把后台挂起的进程运行起来

# fg    ##把后台进程调回前台【需要使用进程时调回】

# gedit &   ##运行进程在后台

# jobs   ##查看当前shell中在后台的所有工作【需要ctrl+z将进程挂起

进程的优先级

1. 进程优先级(Process Priority)是 Linux 内核用于决定 CPU 资源分配的关键指标

2. 优先级越高的进程越有可能被 CPU 优先调度执行

优先级种类 【静态和动态加在一起才叫优先级】

1. 静态优先级:由用户或管理员在进程启动时或运行中手动设置,范围 -20(最高优先级)到 19(最低优先级),数值越小优先级越高。

2. 动态优先级:由内核根据进程的运行状态(如 CPU 使用时间、睡眠时长等)自动调整,以平衡系统资源分配。

静态优先级的调整方法

watch -n 1 "ps ax -o pid,comm,nice,pri | grep gedit"

优先级范围值: 0--139 ,  内核自控优先级范围:0-99 ,  用户可控优先级:100-139

查看进程pid和优先级

# ps ax -o pid,comm,nice,pri | grep gedit 

nice -n -5 cat    ##指定优先级打开进程

renice -n -5 62185  ##更改优先级

再次查看结果:

进程信号的使用

用户可控进程信号

编号0表示看一下进程存不存在

信号特点

可捕获、阻塞和忽略:像 SIGHUP 、 SIGINT 、 SIGTERM 这类信号,进程可以编写相应的信号处理函数来捕获它们,也可以选择阻塞(暂时不处理)或者忽略这些信号。

不可捕获、阻塞和忽略: SIGKILL 和 SIGSTOP 信号比较特殊,进程无法对其进行捕获、阻塞或忽略操作,这保证了在必要时可以强制终止或暂停进程。

# ps  可查看进程ID

# kill -19 74594     【74594终端进程暂停了,无法输入以及删除】

# kill -20 74594     【74594终端进程没有暂停,但是vim的进程会被暂停

#进程信号控制工具

kill 进程信号 pid     #处理精确指定的进程

killall 进程信号 进程名字   #按照进程名称批量处理进程

pkill 进程信号 进程条件   #按照条件处理进程

# kill -9 62185         处理62185进程

# killall -9 vim         处理vim所有进程

# pkill -u timinglee -9   处理timinglee用户进程【在另一个终端运行

运行结果:[timingleeaTiminglee ~ ] $ killed

systemd守护进程

守护进程是什么

1. 守护进程(Daemon)是一种在后台持续运行的特殊进程,它不与终端直接交互,通常在系统启动时自动启动,并在系统关闭时才停止。

2. 守护进程的设计目的是为系统提供各种服务,例如网络服务(如 HTTP 服务器、FTP 服务器)、日志服务、定时任务服务等。它们默默地在后台运行,为其他进程和用户提供支持,确保系统的正常运行。

守护进程的特点

在后台运行:守护进程不会占用终端,不会受到用户登录或注销影响,持续在后台执行任务。

生命周期长:一般从系统启动开始运行,直到系统关闭才停止,为系统提供长期稳定的服务。

无控制终端:守护进程没控制终端,不会接收来自终端的输入,也不会将输出显示在终端上。

自成进程组和会话:守护进程通常会创建自己的进程组和会话,以确保独立于控制终端和其他进程。

Systemd 守护进程

1. Systemd 是 Linux 系统中新一代的初始化系统(init system),它旨在替代传统的 SysVinit 和Upstart 等初始化系统 。

2. Systemd 提供了一套强大的工具和机制,用于管理系统的启动、服务的管理、资源的分配等。它的设计目标是提高系统的启动速度、简化服务管理、增强系统的可靠性和可维护性。

守护进程管理命令systemctl

示例:

systemctl status firewalld  ——查看防火墙状态

关闭状态

开启状态

systemctl disable firewalld    ——设定防火墙开启不启动【- -now 并当前开启服务】

systemctl enable firewalld   ——设定服务开机启用

systemctl list-units    ——查看系统所有服务当前状态

systemctl list-unit-files    ——查看服务开机状态

enable表示挂载点启用,disabled表示禁用,static表示静态,transient表示临时的,generated是自动生成的】

systemctl list-dependencies firewalld  ——列出服务依赖性

systemctl mask firewalld   ——冻结服务

systemctl set-default multi-user.target   ——设定系统运行无图形网络模式

systemctl get-default    ——查看系统运行模式

init 3运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值