Linux系统中关于SELinux的相关权限管理及文件目录操作 (selinux r dir file)

作为一种基于强制访问控制(MAC)的安全保障机制,SELinux在Linux系统中得到了广泛应用。通过限定各个进程之间的资源访问权限,SELinux确保了系统的安全性,提高了系统的可靠性。本文将就进行详细介绍,以便读者更好的理解、应用和管理SELinux。

1. SELinux权限控制

作为Linux系统中的一种强制安全机制,SELinux可以通过策略文件、标签和规则等方式来限定每个进程的访问权限,从而确保系统的安全性。在实践中,通常需要掌握以下几个SELinux常用命令:

1.1 getenforce:获取SELinux的工作方式

getenforce命令是SELinux管理中的一个基本命令,用于获取当前SELinux的工作方式,即Enforcing、Permissive和Disabled。其中,Enforcing表示采用强制安全策略,Permissive表示采用警告机制,Disabled表示关闭SELinux机制。

语法:getenforce

示例:

[root@localhost ~]# getenforce

Enforcing

1.2 setenforce:启用或关闭SELinux

setenforce命令是一个用于启用或关闭SELinux机制的命令,它可以控制系统是否执行SELinux策略。当SELinux的状态为Enforcing时,系统中的进程只要违反了SELinux的策略,就会被禁止运行;而当SELinux的状态为Permissive时,则不会禁止系统中的进程的运行,而只会发出相应的警告信息。

语法:setenforce [Enforcing|Permissive|0|1]

示例:

[root@localhost ~]# setenforce 0

[root@localhost ~]# getenforce

Permissive

1.3 chcon:修改文件或目录的安全上下文

使用chcon命令,可以修改文件或目录的安全上下文。在SELinux中,每个文件或目录都有一种安全上下文标识其所属的安全策略域,而chcon命令则可以修改该文件或目录的安全上下文信息。

语法:chcon [-R] [-t type] [-u user] [-r role] [-l range] file

示例:

[root@localhost ~]# chcon -R -t httpd_sys_content_t /var/www/html/

1.4 semanage:管理SELinux策略模块和策略文件

semanage命令用于管理SELinux策略模块和策略文件,在配置SELinux安全策略的过程中,常用于配置不同用户或进程的安全权限,或者新增或删除不同安全上下文之间的访问规则。

语法:semanage [global options] command [command options] [command arguments]

示例:

[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t “/srv/foo(/.*)?”

1.5 restorecon:还原文件默认的安全上下文

restorecon命令在Linux系统中负责还原文件默认的安全上下文,当一个文件的ACLs或者SELinux安全上下文信息发生变化,用户可使用restorecon命令还原文件默认的安全上下文,以使文件再次拥有正确的安全上下文信息。

语法:restorecon file_name

示例:

[root@localhost ~]# restorecon -R /var/www

2. SELinux 文件和目录操作

在Linux系统中,文件和目录的操作服从的是文件系统权限控制机制,而在SELinux机制中,其对文件和目录的权限控制更为严格。SELinux会为每个文件和目录分配一种安全上下文(security context),以限制系统用户对文件和目录的访问权限。

2.1 SELinux对文件和目录的安全上下文进行分析

以/var/db目录为例,可以用命令ls命令查看该目录的安全上下文信息:

[root@localhost ~]# ls -Z /var/db

drwxr-xr-x. root root system_u:object_r:var_lib_t:s0 abrt

drwxr-xr-x. root root system_u:object_r:etc_t:s0 audit

其中,s0表示此文件的安全上下文的默认类型。当一个应用程序试图读取或写入此目录时,必须与目录的安全上下文信息匹配。

2.2 按照类别或类型管理SELinux安全上下文

当一个文件或目录被赋予了SELinux安全上下文信息,通常会被分为一个或多个类别或类型。例如,当用户运行httpd服务时,必须将服务的安全上下文设置为httpd_exec_t类型,而所有httpd使用的文件及目录都必须具有如下属性:

system_u:object_r:httpd_sys_content_t:s0

可用chcon命令增加相应的安全上下文信息。

2.3 快速进行SELinux配置

可以使用semanage命令快速进行SELinux的配置,如禁用SELinux命令:

[root@localhost ~]# semanage permissive -d httpd_t

2.4

通过上述介绍,读者对于Linux系统中关于SELinux的相关权限管理及文件和目录操作已经有了较为清晰的认识。在实践中,只有巧妙地运用SELinux机制,才能更好地保障系统的安全性和可靠性,提高系统的整体性能。

相关问题拓展阅读:

Linux文件管理基础及编辑工具用法

文件名称区分大小写

文件名最长255个字符

包括路径在内文件名称最长4095个字节

蓝色–>目录:绿色–>可执行文件:红色–>压缩文件:浅蓝色–>链接文件:灰色–>其它文件

除了斜杠和NUL,所有字符都有效,使用特殊字符的目录名和文件不推荐使用,有些字符需要加引号来引用

标准Linux文岁友件系统,文件名称大小写敏感

/boot: 内核引导文件存放目录

/bin: 所有用户使用的基本仿档命令;不能关联至独立分区,系统启动会用到的程序

/in: 管理类的基本命令;不能关联至独立分区,系统启动会用到的程序

/lib: 系统启动时程序依赖的基本共享库文件及内核模块文件(/lib/modules)

/etc: 配置文件目录

/home: 普通用户家目录

/root: 管理员家目录

/media: 便携式移动设备挂载点

/mnt: 临时文件系统挂载点

/dev: 设备文件及特殊文件存储位置

/opt: 第三方应用程序安装位置,同/usr/local

/srv: 系统服务用到的数据

/tmp: 存储临时文件

/usr: 系统软件资源存放目录

/var: 系统运行时的可变动数据:/var/tmp:系统两次重启产生的临时数据

/proc: 内核与进程信息相关的虚拟文件系统

/sys: 硬件设备相关信息的虚拟文件系统

/selinux: selinux安全策略

meta data: 

    文件类型,权限,UID,GID

    链接数(指向这个文件名路径名称个数)

    该文件的大小和不同的时间戳

    指向磁盘上文件的数据块指针

    有关文件的其他数据

文件类型:

: 普通文件

d: 目录文件

b: 块设备

c: 字符设备

l: 符号链接文件

p: 管道文件pipe

s: 套接字文件socket

查看方式:

使用ll,ls -l: 看之一个字符,链接数,

ls -lih:

  inode编号,文件类型,文件权限,硬链接个数,文件属主,文件属组,文件大小,文件修改时间

file命令,type命令,

stat命令: 文件详细信息,修改时间mtime,改变时间ctime,访问时间atime

du – filename: 查看文件大小

文件扩展名:

  源码.tar、.tar.gz、.tgz、.zip、.tar.bz表示压缩文件,创建命令一般为tar,gzip,zip等。

  .sh表示shell脚本文件,通过shell语言开发的程序。

  .pl表示perl语言文件,通过perl语言开发的程序。

  .py表示python语言文件,通过python语言开发的程序。

  .html、.htm、.php、.jsp、.do表示网页语言的文件。

  .conf表示系统服务的配置文件。

  .rpm表示rpm安装包文件。

touch: 创建空文件和刷新时间戳

touch … FILE…

  -a: 改变atime和ctime

  -m: 改变mtime和ctime

  -t: >>>>

指定atime和mtime的时间戳

  -c: 如果文件不存在,则不予创建 

硬链接:

    同一个文件多个名字

    不支持跨分区,不支持目录

    平级关系,删除原始文件不影响打开

    iNode相同,链接数增长

    创建语法,原始文件路径,相对于工作目录的路径

    文件类型,普通文件

    创建方式ln filename

软备雀乱链接:

    与原始文件,不同的文件

    支持跨分区,支持目录

    依赖关系,删除原始文件即失效

    iNode不同,链接数不会增长

    创建语法,原始文件路径,相对于软链接的路径

    文件类型显示l

    创建方式ln -s filename

实例说明:

    cd ../data

    mkdir -pv d1/d2

    touch linux.txt

    ln linux.txt d1/d2/linux.hlink

    ln -s ../../linux.txt d1/d2/linux.slink

    ln -s ../d2 d1/d2/d2.slink

    tree

    执行如图:

stat: 查看文件状态

    示例: stat /etc/issue

stat/etc/motd

touch: 创建空文件和刷新时间

    touch … FILE…

a: 仅改变atime和ctime

m: 仅改变mtime和ctime

t: 指定atime和mtime时间戳

c: 如果文件不存在,则不予创建

    示例: touch /data/f1

cp: 复制文件和目录

    cp … SOURCE… DIRECTORY

i: 覆盖前提示

n: 不覆盖

r,-R: 递归复制目录及内部的所有内容

a: 归档,相当于-dR –preserv=all

p: 等同–preserv=mode,ownership,timestamp

u: 只复制源比目标更新或目标不存在

b: 目标存在,覆盖前先备份filename~

backup=numbered: 目标存在,覆盖前先备份并加数字后缀

    cp SRC DEST

SRC是文件:

如果目标不存在: 新建DEST,并将SRC中内容填充至DEST中

如果目标存在:

  如果DEST是文件: 将SRC中内容覆盖至DEST中

  如果DEST是目录: 在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中

SRC是多个文件:

DEST必须存在,且为目录

SRC是目录: 使用选项-r

如果DEST不存在: 则创建指定目录,复制SRC目录中所有文件至DEST中

如果DEST存在:

  如果DEST是文件: 报错

  如果DEST是目录:在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中

    示例: mkdir -p /data/backup

cp -ab /etc/issue /etc/passwd /etc/group /data/backup

mv: 移动和重命名文件

    mv … SOURCE… DIRECTORY

f: 强制

b: 目标存在,覆盖前先备份

    示例: mv /etc/issue /data

mv /etc/issue /data/issue.bak

rm: 删除

    rm … FILE…

f: 强制删除

r: 递归

no-preserve-root 删除/

    示例: rm -rf /data/d1/d2

tree: 显示目录树

    -d:只显示目录

    -L level: 指定显示的层级数目

    -P pattern: 只显示由指定pattern匹配到的路径

    示例: tree /data

ls:列出指定目录下的内容

    ls … …

   -a:显示所有文件包括隐藏文件

   -A:显示除.和..之外的所有文件

   -l,–long:显示文件的详细属性信息

   -h:对文件大小进行单位换算,可能影响精度

   -d:查看目录本身而非其内部的文件

   -r:逆序显示文件

   -R:递归显示文件

    示例:ls -lah / 详细显示/目录下的所有文件(包括隐藏文件)

mkdir:创建目录

    mkdir … DIRECTORY…

   -p:自动按需创建父目录

   -m:创建目录时给定权限

    示例: mkdir -p /data/test/A/B

cat:正向查看文本内容

    cat … …

   -n:给显示的文本行编号

   -E:显示行结束符号$

    示例: cat -n /etc/fstab

tail:显示文本内容,默认显示后10行

    tail … …

   -n #:显示文本后#行内容

   -f:查看文件尾部内容结束后不退出,跟随显示新增的行

    示例: tail -8 /etc/passwd

head:显示文本内容,默认显示头10行

    head … …

n #:显示文本头#行内容

    示例: head -5 /etc/passwd

less:分屏显示文本内容,不主动退出

    less file

   Space键:显示文本下一屏内容

   Enter键:只显示文本下一行内容

   b键:显示文本上一屏内容

   q键:退出

cp /etc/profile /tmp

vim /tmp/profile

    :%s/^\s\+//

如图:

命令模式下输入:

    :set tabstop=4

关于selinux r dir file的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux系统中关于SELinux的相关权限管理及文件目录操作 (selinux r dir file)