Shell脚本的执行和Linux安全策略

在运行shell脚本时候,有三种方式来调用外部的脚本,

exec(exec script.sh)、source(source script.sh)、fork(./script.sh)

1、exec(exec /home/script.sh):

使用exec来调用脚本,被执行的脚本会继承当前shell的环境变量。
但事实上exec产生了新的进程,他会把主shell的进程资源占用并替换脚本内容,继承了原主shell的PID号,
即原主shell剩下的内容不会执行。-

2、source(source /home/script.sh)

使用source或者“.”来调用外部脚本,不会产生新的进程,继承当前shell环境变量,
而且被调用的脚本运行结束后,它拥有的环境变量和声明变量会被当前shell保留,   
类似将调用脚本的内容复制过来直接执行。执行完毕后原主shell继续运行。

3、fork(/home/script.sh)

 直接运行脚本,会以当前shell为父进程,产生新的进程,并且继承主脚本的环境变量和声明变量。
执行完毕后,主脚本不会保留其环境变量和声明变量。

Linux系统的安全策略

安全策略一

用户-用户组-文件权限
    文件的所有者

安全策略二

  DAC
     自主访问控制<Discretionary Access Control,DAC>.依据进程的所有者与文件资源的rwx权限决定有无访问权限。
     文件系统的rwx 
    MAC
    委托访问控制<Mandatory Access Control>,针对特定的进程和特定的文件资源进行权限控制。
SElinux <Security Enhanced Linux>
Subject、Object、Policy、Security context
SELinux是在进行程序、文件等权限设置依据的一个内核模块。控制的subject<主体>是进程。目标则是该进程能否读取文件资源。会对某些服务
制定基本的安全性策略。主体与目标的安全上下文一致才能顺利访问。安全上下文的类型,重设安全上下文的命令有restorecon 以及chcon,若要
管理默认的SELinux布尔值,可使用getsebool和setsebool.
SELinux三种模式: enforcing、permissive、disabled。三种模式,强制模式,许可模式以及关闭。其中策略有targeted和strict两种。

安全上下文主要用冒号分为三个字段 Identify:Role:type
        Identity:root system_u user_u
        Role    : object_r system_r
        Type    : 
  domain 需要与 Type 搭配才能顺利读取文件资源。
 确定内核中selinux
重置安全上下文  chcon -R
    <1>查看SELinux当前状态:  getenforce 以及  sestatus

APPArmor<Application Armor>  AppArmor通过一个配置文件(即profile)来指定一个应用程序的相关权限。AppArmor support was first introduced in Ubuntu 7.04, 
and is turned on by default in Ubuntu 7.10 and late.Apparmor使用内核标准安全文件系统机制(/sys/kernel/security)来加载和监控profiles文件。
而虚拟文件/sys/kernel/security/apparmor/profiles里记录了当前加载的profiles文件。
    <1>查看当前AppArmor的状态:在Ubuntu下通过命令sudo apparmor_status可以。 
    pparmor的启动、停止等操作的相关命令如下:
        Start : sudo /etc/init.d/apparmor start
        Stop : sudo /etc/init.d/apparmor stop
        reload: sudo /etc/init.d/apparmor reload
        Show status: sudo /etc/init.d/apparmor status

blogroll

social