鸟哥的Linux私房菜10.23 程序管理与 SELinux初探

第17章 程序管理与 SELinux初探

 program,程序,或者说工程,是实体文件的形态存在;

process,程序,或者说进程,是特指执行中的程序。

fork and exec:过程调用的流程

父程序以复制(fork)的方式产生一个一模一样的子程序,然后被复制出来的子程序以exec的方式来执行实际要进行的程序。

Linux独特的多人多任务环境使得它能够防止程序运行期间的错误。因为用户可以切换到其他终端机界面,然后以 ps -aux调出错误程序,kill之,就行了。

--------------------------------------------------------------------------------------

工作管理(job control)

进行工作管理的行为中,其实每个工作都是目前bash的子程序,亦即彼此之间都是有相关性的,所以无法用job control的方式让一个用户的环境去管理另一个用户的bash

进行bash的工作管理必须注意:只能管理自己的bash

直接将指令丢到背景中【执行】的 &

将目前的工作丢到背景中【暂停】 [ctrl]+z

观察目前的背景工作状态: jobs

鸟哥的Linux私房菜10.23 程序管理与 SELinux初探_第1张图片

将背景工作拿到前景来处理: fg

让工作在背景下的状态变成运作中: bg

管理背景当中的工作: kill

脱机管理问题——————

at  或者是 nohup 可以让工作脱机进行,但是nohup  只对外部指令有效

------------------------------------------------------------------------------

程序管理

 查阅系统上面正在运作当中的程序——静态的ps或者动态的top,或者pstree查阅程序树

ps:将某个时间点的程序运作情况撷取下来

 

 仅观察自己的bash的相关程序:  ps -l

会显示出来的资料有:

F:程序标识(process flags),说明程序的权限,4代表root,1代表子程序仅能fork不能exec

S:程序状态(state),主要有R、S、D、T、Z(僵尸)

UID/PID/PPID  :PPID指父程序的PID

C:代表CPU使用率

PRI/NI:此程序被CPU执行优先级,数值越小程序优先级越高

ADDR/SZ/WCHAN:ADDR代表在内存哪个部分,SZ代表用掉多少内存,WCHAN表示程序是否正在运作

TTY:登陆者的终端机位置,远程登录时为 pts/n

TIME:使用掉的CPU时间,程序实际花费CPU运作时间

CMD:触发程序的指令是

top:动态观察程序的变化

鸟哥的Linux私房菜10.23 程序管理与 SELinux初探_第2张图片

 pstree——程序之间的相关性

鸟哥的Linux私房菜10.23 程序管理与 SELinux初探_第3张图片

 程序之间相互管理可以通过给该程序一个信号(signal)来通知它对应的操作

鸟哥的Linux私房菜10.23 程序管理与 SELinux初探_第4张图片

kill -signal PID

PID 1  :专指“init"这个程序

可以将signal传送给某个工作(%jobnumber)或者某个PID(数字),不过加数字和%number很大不同哦

killalll -singnal 指令名称

程序的执行顺序

PRI(越低越先执行)——由核心动态调整

用户只能通过nice值影响优先级:PRI(new)=PRI(old)+nice

nice的可调节范围:-20~19,root可以随意调整,一般用户只能将自己的nice值越调越高,而且范围在0~19

已存在程序的nice重新调整,renice

系统资源的观察

free:观察内存使用情况

uname:查阅系统与核心相关信息

鸟哥的Linux私房菜10.23 程序管理与 SELinux初探_第5张图片

uptime:观察系统启动时间与工作负载

显示系统开机多久了,以及1,5,15分钟的平均负载

netstat:追踪网络或插槽文件

 dmesg:分析核心产生的信息

比如,输出所有核心开机信息是 dmesg |more,而单独查询硬盘信息则是 dmesg | grep -i hd,查询网络卡则是 dmesg | grep -i eth

vmstat:侦测系统资源变化

-------------------------------------------------------------------------------------------------

特殊文件与程序

SUID的权限会生效是由于“具有该权限的程序被触发”,执行者可以具有程序拥有者的权限时因为该program被触发成为process。

与Linux系统相关的参数(/proc目录底下的文件)是——大致了解而已

fuser:根据文件(或文件系统)找出正在使用该文件的程序

lsof:列出被程序所开启的文件的文件名

鸟哥的Linux私房菜10.23 程序管理与 SELinux初探_第6张图片

pidof:找出某支正在执行的程序的PID

------------------------------------------------------------------------------------------------------

SELinux初探

Security Enhanced Linux——安全强化的Linux,最初是为了避免资源误用

SELinux的运作模式:

主体(Subject),也就是process

目标(Object),也就是文件系统

政策(Policy),分为 targeted strict 两种

安全性本文(security context),有点类似文件系统的 rwx 。感觉就是权限

安全性本文是放置在文件的 inode内, 可以用 ls -Z  来查看安全性本文,它主要用冒号分为三个字段:身份识别、角色、类型

身份识别——有三种类型,root、system_u(表示系统程序的识别)、user_u(表示一般用户账号)

角色——分为 object_r(代表文件或目录)、system_r(代表程序)

类型(最重要)——在文件资源上称为类型(type),在主体程序上称为(domain)

这三个字段在targeted政策下的对应如下

鸟哥的Linux私房菜10.23 程序管理与 SELinux初探_第7张图片

SELinux的启动、关闭与观察

目前SELinux支持三种模式:enforcing(强制模式,代表SELinux运作中,且已经正确的开始限制 domain/type 了);permissive(宽容模式,运作中不过只有警告而不会限制,作为调试);disabled(关闭,没有运作)

观察目前SELinux的模式

观察SELinux的政策:

如果改变了SELinux的政策,那么需要重新启动哦~~

让SELinux在 enforcing 与 permissive 之间切换的方法:

如果安全性本文错了,那么怎么把它改过来呢~~如下

使用默认的安全性本文还原方式:

setroubleshoot: 将错误信息 写入 /var/log/messages

这个服务最好是开机自启动哦,所以需要使用 chkconfig --list setroubleshoot 来查看一下它的运作情况,如果出现  3:off /  5:off   的话,就需要用  chkconfig setroubleshoot on指令来开启。

auditd:将详细资料写入 /var/log/audit/audit.log

会将错误的详细信息记录下来,与上一个服务开启相同

seinfo:查询 SELinux使用的政策

鸟哥的Linux私房菜10.23 程序管理与 SELinux初探_第8张图片

如果查询到相关的类别或者布尔值后想要知道详细规则,使用sesearch

鸟哥的Linux私房菜10.23 程序管理与 SELinux初探_第9张图片

布尔值的查询与修改

开启或关闭布尔值

semanage:查询或修改 默认的安全性本文

你可能感兴趣的:(linux,工作,Security,bash,远程登录,Signal)