《鸟哥的Linux私房菜(基础学习篇)》【7】
17.程序管理与SELinux初探
程序 (program):通常为 binary program ,放置在储存媒体中 (如硬盘、光盘、软盘、磁带等),以物理文件的形式保存;
进程 (process):程序被触发后,执行者的权限和属性、程序的程序代码与所需数据等都会被加载到存中, 操作系统并给予这个内存内的单元一个标识符 (PID),可以说,进程就是一个正在运作中的程序。
进程彼此之间是有相关性的,故有父进程与子进程之分。而 Linux 系统所有进程的父进程就是 init 这个 PID 为 1 号的进程。
在 Linux 的过程调用通常称为 fork-and-exec 的流程,进程都会通过父进程以复制 (fork) 的方式产生一个一模一样的子进程, 然后被复制出来的子进程再以 exec 的方式来执行实际要进行的进程,最终就成为一个子进程的存在。
常驻在内存当中的进程通常都是负责一些系统所提供的功能以服务用户各项任务,因此这些常驻进程就会被我们称为:服务 (daemon)。
在工作管理 (job control) 中,可以出现提示符让你操作的环境就称为前台 (foreground),至于其他工作就可以让你放入后台 (background) 去暂停或运行。
与 job control 有关的按键与关键词有: &, [ctrl]-z, jobs, fg, bg, kill %n 等;
进程管理的查看命令有: ps, top, pstree 等等;
进程之间是可以互相控制的,传递的讯息 (signal) 主要透过 kill 这个命令在处理;
进程是有优先级的,该选项为 Priority,但 PRI 是内核动态调整的,用户只能使用 nice 值去微调 PRI
nice 的给予可以有: nice, renice, top 等命令;
vmstat 为相当好用的系统资源使用情况观察命令;
SELinux 当初的设计是为了避免使用者资源的误用,而 SELinux 使用的是 MAC 委任访问设置;
SELinux 的运作中,重点在于主体进程 (Subject) 能否访问目标文件资源 (Object) ,这中间牵涉到策略 (Policy) 内的规则, 以及实际的安全上下文类型 (type);
安全上下文的一般设置为:『Identify:role:type』其中又以 type 最重要;
SELinux 的模式有: enforcing, permissive, disabled 三种,而启动的策略 (Policy) 主要是 targeted
SELinux 启动与关闭的配置文件在: /etc/selinux/config
SELinux 的启动与查看: getenforce, sestatus 等命令
重设SELinux 的安全上下文可使用 restorecon 与 chcon
在 SELinux 启动时,必备的服务至少要启动 setroubleshoot 这个!
18.认识系统服务
服务 (daemon) 主要可以分为 stand alone (服务可单独启动) 及 super daemon (透过 xinetd 统一管理的服务) 两种。
super daemon 由于是经过一个统一的 xinetd 来管理,因此可以具有类似防火墙管理功能。此外,管理的连接机制又可以分为 multi-threaded 及 single-threaded。
启动 daemon 的进程通常最末会加上一个 d ,例如 sshd, vsftpd, httpd 等
stand alone daemon 启动的脚本放置到 /etc/init.d/ 这个目录中,super daemon 的配置文件在 /etc/xinetd.d/* 内, 而启动的方式则为 /etc/init.d/xientd restart
立即启动 stand alone daemon 的方法亦可以使用 service 这个命令
Super daemon 的配置文件 /etc/xinetd.conf ,个别 daemon 配置文件则在 /etc/xinetd.d/* 内。在配置文件内还可以设置连接客户端的连接与否, 具有类似防火墙的功能喔。
若想要统一管理防火墙的功能,可以透过 /etc/hosts.{allow,deny} ,若有安装 TCP Wrappers 时,还能够使用额外的 spawn 功能等
若想要设置开机时启动某个服务时,可以通过 chkconfig, ntsysv 等命令。
19.认识与分析日志文件
日志文件可以记录一个事件的何时、何地、何人、何事等四大信息,故系统有问题时务必查询日志文件;
系统的日志文件默认都集中放置到 /var/log/ 目录内,其中又以 messages 记录的信息最多。
日志文件记录的主要服务与程序为: syslogd, klogd, log
syslogd 的配置文件在 /etc/syslog.conf ,内容语法为:『服务.等级记载设备戒文件』
syslogd 本身有提供日志文件服务器的功能,通过修改 /etc/sysconfig/syslog 内容即可实现;
logrotate 程序利用 crontab 来进行日志文件的轮替功能;
logrotate 的配置文件为 /etc/logrotate.conf ,而额外的设置则可写入 /etc/logrotate.d/* 内;
logwatch 为 CentOS 5 默认提供的一个日志文件分析软件。
#Linux#