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的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。