学习笔记:
一、进程
程序:通常为二进制程序放置在存储媒体中,以物理文件的形式存在
进程:程序被触发后,执行者的权限和属性、程序的程序代码和所需数据等都会被加载到内存中,操作系统并给与这个内存的单元一个标识符(PID),可以说,进程就是一个正在运行的程序
1.父进程(PID)和子进程(PPID)
父进程通过 fork -- and -- exec 的方式创建子进程
2.Linux的多用户、多任务环境
二、工作管理(job control)
1.将命令丢到后台去执行---&
2.将目前工作丢到后台暂停 -Ctrl + z
主要适用于vim过程中,出现需要查找的情况
3.查看目前后台的工作情况-- jobs
4.将后台工作拿到前台来处理 -- fg
5.让工作在后台下的状态变成运行中-- bg
6.杀死后台当中的工作-- kill
7.脱机工作管理 -- nohup
三、进程管理
1.进程的查看
1.1 将某个时间点的进程运行情况选取下来 -- ps
1.1.1 仅仅查看自己的bash相关进程 -- ps -l
1.1.2 查看系统所有的进程 -- psaux
在查看过程中,遇到(defunct)表示该进程为僵尸进程
1.2 动态的查看进程的变化 -- top
1.3 以树的形式查看进程 -- pstree
2. 进程的管理 -- kill
3.进程的执行顺序
Priority(优先度):PRI越低代表优先级越高,该值由内核动态调整,用户无法设定
Nice(自己设定):用户通过Nice,来终止PRI。 -- PRI(new) = PRI(old) +nice
通过nice 更改进程的Nice值。
对于已经存在的进程,通过renice进行调整
4.资源的查看
4.1 查看内存的使用情况 -- free
4.2 查看系统与内核的相关信息 -- uname
4.3 查看系统启动时间与工作负载 -- uptime
4.4 跟踪网络 -- netstat
4.5 分析系统内核产生的信息 -- dmesg
4.6 检测系统资源的变化 -- vmstat
四、特殊文件与程序
1.具有SUID/SGID权限的命令执行状态
SUID权限仅对二进制程序有效
执行者对于该程序需要具有x的可执行权限
本权限仅在执行该程序的过程中有效
执行这将具有该程序所有者的权限
2./proc/*的意义 -- P531
3.查询已经打开文件或已经执行程序打开的文件
3.1 通过文件或文件系统找出正在使用该文件的程序 -- fuser 参数 文件
3.2 列出被进程所打开的文件名 -- lsof
3.3 找出某个正在执行的进程的 PID -- pidof
五、SELinux
SELinux是在进行程序、文件等权限设置依据的一个内核模块。由于启动网络服务的也是程序,因此刚好也是能够控制网络服务能否访问系统资源的一道关卡。
1. SELinux运行模式
主体 -- 进程
目标 -- 文件系统
策略 -- 1.targeted:针对网络服务限制较多,针对本机限制较少,是默认的策略。2.strict -- 完整的SELinux限制,限制方面比较灵活。
安全上下文 -- ls -Z
身份标识 -- 1.root 2. sysyem_u 3.user_u
角色 -- 1. object_r -- 文件/目录 2.system_r -- 进程
类型 -- 1.type -- 在文件资源上面成为类型 2. domain -- 在主体程序中则称为域
2. SELinux的启动、关闭与查看
2.1 SELinux三种模式 -- 查看模式getenforce:
enforcing -- 强制模式
permissive -- 宽容模式
disabied -- 关闭
2.2 SELinux的配置文件 -- /etc/selinux/config
2.3 SELinux的启动和关闭 --如果对/etc/selinux/config更改后,需要重新启动。然后到/boot/grub/menu.lst 产看内核是否关闭SELinux ,如果要启动SELinux,那么不能出现selinux=0在kernel之后
3. SELinux所需的服务
3.1 将SELinux发生错误的时候,将错误信息写入/var/log/messages
3.2 将详细数据写入/var/log/audit/audit.log