Chinaunix首页 | 论坛 | 博客
  • 博客访问: 59606
  • 博文数量: 37
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 390
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-14 12:25
文章分类

全部博文(37)

文章存档

2014年(37)

我的朋友

分类: LINUX

2014-12-01 17:18:41

在LINUX中,触发任意事件都会产生一个进程,系统会为该进程分配一个PID,并通过PID对其进行管理

子程序的产生过程:
1. 先copy一份当前进程(父程序)
2. 在拷贝的进程中将PID赋给PPID;再用新的PID替换PID
3. 将拷贝的进程作为新的进程(子程序),执行命令

LINUX的工作管理
1. 只能管理自己SHELL下的工作
2. 前台执行:当前可控的SHELL环境
3. 后台执行:不可控但可以自动执行的环境,不能终止,也不能交互

将前台命令转为后台暂停的方法:Ctrl + z
将后台暂停的命令转为前台执行:fg;%N可以唤起指定的序号为N的后台进程
将后台暂停的命令转为后台执行:bg
在后台执行命令的方法:
1. command + &
2. 用Ctrl + z转为后台暂停,用bg转暂停为执行
查看所有在后台暂停或执行的命令:jobs;l选项可以显示PID;+表示使用fg默认唤起的进程

kill命令解析:kill
1. kill -l 显示kill可以使用的signal
2. kill -15 正常终止;kill -9 强制终止;kill -2 中断,相当于Ctrl + c

脱机工作:nohup
在后台执行的命令依赖于前台的环境,当关闭前台环境的时候,后台也同样会被关闭(产生远程管理问题)
将nohup作为命令(无论前台还是后台)前缀,可以让命令在脱机后继续执行

查看正在运行的程序:ps
1. 只查看自己SHELL相关的程序:ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY    TIME CMD
4 S     0  8220  8216  0  80   0 - 27118 wait   pts/0    00:00:00 bash
F:权限,4表示root,0一般用户
S:状态,R - running,S - sleep,T - stop,Z - zombie(僵尸状态)
C:CPU使用率,单位为%
PRI:优先级,越小越优先
SZ:内存使用情况
TIME:实际使用CPU的时间
2. 查看系统所有程序:ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  19356  1328 ?        Ss   Nov25   0:02 /sbin/init
VSZ:虚拟内存使用情况,单位KB
RSS:物理内存使用情况
STAT:状态信息
START:程序启动时间

查看正在运行的程序:top
top命令可以持续的检测整个系统的工作状态,默认每5秒刷新一次,可以使用-d选项指定刷新间隔(单位为秒)
top的显示分为两部分:上面是系统资源信息,下面是进程资源信息
系统资源解析:
top - 21:36:19 up 1 day,  1:30,  3 users,  load average: 0.00, 0.00, 0.00
Tasks:  93 total,   1 running,  90 sleeping,   2 stopped,   0 zombie
Cpu(s):  0.1%us,  0.4%sy,  0.0%ni, 99.2%id,  0.3%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   1012352k total,   947088k used,    65264k free,    76184k buffers
Swap:  2031608k total,     3272k used,  2028336k free,   159532k cached
1. top -... 当前时间;up... 开机到现在的时间;load average... CPU在1,5,15分钟的平均负载
2. task... 进程总数
3. CPU负载
4. 物理内存使用情况
5. SWAP使用情况
进程资源解析:
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
1 root      20   0 19356 1328 1104 S  0.0  0.1   0:02.83 init
NI:nice,与优先级有关,越小越优先
top可以修改进程的优先级

查看程序间的相关性:pstree;p选项,显示PID;u选项,显示所属账号

LINUX通过kill命令给指定程序传递信号(signal)
kill 后面接的的PID或工作ID
killall 后面接的是程序名称

程序优先级是由PRI和NI两个值的和所决定的,值越小越优先;PRI是系统分配的,不可调整;NI是用户可以自定义的,其范围是[-20,19]
调整将要启动程序的NICE值:nice
调整以启动程序的NICE值:renice  或top

查看系统资源的工具
1. free 观察内存使用情况
2. uname 查看系统与核心的相关信息
3. uptime 查看系统启动时间
4. netstat 查看网络信息:
t选项,显示tcp网络封包数据
u选项,显示udp网络封包数据
l选项,现在正在网络监听的服务
5. dmesg 显示核心产生的信息(如硬件检测信息)
6. vmstat 监视系统资源使用情况
7. fuser 找出正在使用该文件的程序
8. lsof 显示被程序所开启的文件
9. pidof 显示正在执行程序的PID

SUID的实现:二进制文件启动后,会根据SUID对其PID赋予特殊的权限设定

当前运行的PID会以目录的形式存在于/proc当中

SELinux:Security Enhanced Linux
SELinux是整合到核心的一个模块,其配置文件为/etc/selinux/config
SELinux在传统文件权限机制之上,增加一层SELinux权限验证机制,从一定意义上限制了root用户的无限权限
传统文件权限机制:DAC(Discretionary Access Control),自主式访问控制,验证程序的拥有者与文件的读写权限是否一致
SELinux权限机制:MAC(Mandatory Access Control),委任式访问控制,验证程序的domain与文件的type是否一致
SELinux的本质是限制程序对资源(文件)的使用,其运作依赖与SELinux的规则(rules)和安全环境(security context)

SELinux的工作模式:
1. enforcing,强制模式,会资源进行实际限制
2. permissive,宽容模式,只有警告信息,不会实际进行限制
3. disabled,关闭模式

SELinux的规则:
SELinux主要由两个规则:targeted - 默认设置,针对网络服务的限制;strict - 较为严格

SELinux的安全环境:identify:role:type
identify通常以_u结尾,主要分为三类:root,表示root用户;user_u,表示一般用户;system_u,表示系统用户
role通常以_r结尾,主要分两类:object_r,表示资源,system_r,表示程序
type通常以_t结尾,在程序上叫domain,在文件上叫type,当domain的定义里包含type时,权限验证通过
文件的安全环境信息可以使用ls -Z查看

管理SELinux:
1. 查看SELinux状态:sestatus,getenforce
2. 开启SELinux:在配置文件中将SELINUX设置为enforcing;确保/boot/grub/menu.lst中kerenl项不含有selinux=0(不加载SELinux)的配置,重启系统
3. 模式转换:setenforce ,0表示permissive模式,1表示enforcing模式
4. 查看与配置SELinux规则:setinfo,sesearch --> allow domain type(详细规则),getsebool (查看规则状态),setsebool (配置规则状态)
5. 查看与配置SELinux安全环境:semanage(查看默认SELinux权限),chcon(配置安全环境),restorecon(配置安全环境为默认权限)

SELinux的相关服务:
1. setroubleshoot,将错误信息写到/var/log/messages
2. auditd,将需哦无信息写到/var/log/audit/audit.log

注:若系统中没有seinfo等命令,安装setools即可

chkconfig:查看服务是否可以自动启动
阅读(805) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~