精华内容
下载资源
问答
  • 安全上下文

    千次阅读 2015-04-21 21:05:23
    (一)、类型强制策略的安全上下文 所有的操作系统访问控制都是基于与主体和客体相关的访问控制属性的。在SELinux中,访问控制属性杯称作安全上下文。所有的客体(文件,进程间通信,通信管道,套接字,网络主机等...

    (一)、类型强制策略的安全上下文
    所有的操作系统访问控制都是基于与主体和客体相关的访问控制属性的。在SELinux中,访问控制属性杯称作安全上下文。所有的客体(文件,进程间通信,通信管道,套接字,网络主机等)和主体(进程)有一个和他们相关的单一安全上下文。一个安全上下文有三个元素:用户,角色和类型标识符。指定和显示一个安全上下文常用的格式如下:

    用户(user):角色(role):类型标识符(type)

    每一个元素的字符串标识符杯定义在SELinux的策略语言中,策略语言的细节后面慢慢讨论。就现在来说,仅仅理解一个有效的安全上下文一定要有一个有效的用户,角色和类型标识符,并且标识符被策略书写者定义。每一个标识符的命名空间都是正交的。(所以,举个例子,用户,角色和类型有相同的字符串标识符是可以的,但是不推荐使用。)

    检查安全上下文:
    SELinux通过添加-Z选项修改了系统命令来展示主体和客体的安全上下文。例如,ls -Z 显示了文件系统对象的安全上下文,ps -Z展示了进程的安全上下文。另外一个有用的命令是 id,他展示你的shell的安全上下文(也就是说,你的当前的用户,角色和类型)。下面的例子展示了一个运行在SELinux中的shell的安全上下文。

    $ id -Z
    joe:user_r:user_t

    你可以在你自己的SELinux中使用这些命令,正如我们在这一章节中使用的一样。

    (二)、SELinux和标准Linux比较

    此时此刻,比较在标准Linux和SELinux中的访问控制属性是非常有用的。为了简单起见,我们坚持使用常用的文件系统对象,例如文件和目录。在标准Linux中,主体的进程访问属性是通过进程结构体提供的在linux内核中所有进程的真实有效的用户ID和组ID。这些属性被内核所保护着,并且经过一些列的控制方式来设置。包括登录进程和setuid程序。对于客体来说,文件的索引节点包含着一系列的访问模式位和文件的用户ID和组ID,前者是基于三个读/写/可执行位的集合来实现控制访问,这三个分别代表文件拥有者,文件组和其他任何人。后者决定了文件的所有者和组来决定对于一个给定的访问尝试应该使用哪一个位集合。

    正如前面所述,在SELinux中,访问控制属性他基本上就是安全上下文。所有的客体和主体有一个相关的安全上下文。标准Linux使用进程的用户/组ID,文件访问模式位和文件用户/组ID来同意或者是拒绝访问,SELinux使用进程和客体的安全上下文来进行访问控制。更具体的说,由于SELinux的主要访问控制特征是TE,即类型强制策略,安全上下文中的类型标识符被用来决定访问。

    注意:
    SELinux是在标准Linux之上添加的类型强制机制。也就是说标准Linux和SELinux访问控制都必须满足才能访问客体。所以,例如,我们有SELinux对于文件的一个写权限,但是没有标准linux的写权限,我们依然不能想文件中写入数据。

    下面的表列出了标准Linux和SELinux的一些区别:

    这里写图片描述

    (三)、关于安全上下文更多的信息

    安全上下文是一个简单的,一致的访问控制属性。在SELinux中,类型标识符是安全上下文中决定访问的主要的部分。由于历史原因,进程的类型经常被称作域(domain)。使用域和域类型来代表进程的类型是比较普遍的,所以我们不可避免的要是用术语“域”。大体上,认为域,域类型,主体类型和进程类型是同义的。

    在安全上下文中的用户标识符和角色标识符在访问控制策略中起很小的作用,因为是类型强制策略而不是约束条件强制策略,约束条件强制策略我们将在第七章中讨论。对于进程来说,用户标识符和角色标识符是非常有趣的。

    因为他们被用来控制用户标识符和Linux用户账户的类型相关联的。对于客体来说,用户标识符和角色标识符几乎没用。作为一个公约,一个客体的角色通常是 object_r ,一个客体的用户通常是创建该客体的进程的用户标识符。他们在访问控制中没有作用。

    最后,要知道标准Linux中的用户ID和SELinux在安全上下文中的用户标识符的不同。技术上,他们是完全正交的标识符,被标准的访问控制机制和安全增强型的访问控制机制分别使用。他们之间的任何联系都是通过登录进程按照公约严格提供的,而不是被SELinux策略直接实施的。

    展开全文
  • SELinux 安全上下文

    2018-05-14 17:30:13
    SELinux 安全上下文 1、SELinux的安全上下文 安全上下文是一个简单的、一致的访问控制属性,在SELinux中,类型标识符是安全上下文的主要组成部分,由于历史原因,一个进程的类型通常被称为一个域(domain),...

    SELinux 安全上下文

    1、SELinux的安全上下文

    安全上下文是一个简单的、一致的访问控制属性,在SELinux中,类型标识符是安全上下文的主要组成部分,由于历史原因,一个进程的类型通常被称为一个域(domain),”域”和”域类型”意思都一样,即都是安全上下文中的“TYPE”。

    SELinux对系统中的许多命令做了修改,通过执行 ls -Z 选项显示客体和主体的安全上下文。

    1) 系统根据PAM子系统中的pam_selinux.so模块设定登录者运行程序的安全上下文;

    2) 文件的Security Contex规则如下:

    • rpm包安装的:会根据rpm包内记录来生成安全上下文;
    • 手动创建的文件:会根据policy中规定的来设置安全上下文;
    • cp:会重新生成安全上下文;
    • mv:安全上下文则不变。

    3)id -Z

    显示了你的shell的安全上下文;
    这里写图片描述

    4)ps -Z

    检查进程的安全上下文;
    这里写图片描述

    5)ls -Z

    检查文件、目录的安全上下文;
    这里写图片描述

    2、安全上下文格式解释

    所有操作系统访问控制都是以关联的客体和主体的某种类型的访问控制属性为基础的。在SELinux中,访问控制属性叫做安全上下文。所有客体(文件、进程间通讯通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文,一个安全上下文由三部分组成:用户、角色和类型标识符。常常用下面的格式指定或显示安全上下文:

    USER:ROLE: TYPE[LEVEL[:CATEGORY]]

    ① USER

    1) useridentity:类似Linux系统中的UID,提供身份识别,用来记录身份;安全上下文的一部分;

    2) 三种常见的 user:

    • user_u :普通用户登录系统后的预设;
    • system_u :开机过程中系统进程的预设;
    • root :root 登录后的预设;

    3)在 targeted policy 中 users 不是很重要;

    4) 在strict policy 中比较重要,所有预设的 SELinux Users 都是以 “_u” 结尾的,root 除外。

    ② ROLE

    1) 文件、目录和设备的role:通常是 object_r;

    2) 程序的role:通常是 system_r;

    3) 用户的role:targeted policy为system_r; strict policy为sysadm_r、staff_r、user_r;用户的role,类似系统中的GID,不同角色具备不同的的权限;用户可以具备多个role;但是同一时间内只能使用一个role;

    4) 使用基于RBAC(Roles Based AccessControl) 的strict和mls策略中,用来存储角色信息

    ③ TYPE

    1) type:用来将主体(subject)和客体(object)划分为不同的组,给每个主体和系统中的客体定义了一个类型;为进程运行提供最低的权限环境;

    2) 当一个类型与执行中的进程相关联时,其type也称为domain;

    3) type是SElinux security context 中最重要的部位,是 SELinux Type Enforcement 的心脏,预设值以_t结尾;

    ④ 对比SELinux和标准Linux的访问控制属性

    在标准Linux中,主体的访问控制属性是与进程通过在内核中的进程结构关联的真实有效的用户和组ID,这些属性通过内核利用大量工具进行保护,包括登陆进程和setuid程序,对于客体(如文件),文件的inode包括一套访问模式位、文件用户和组ID。以前的访问控制基于读/写/执行这三个控制位,文件所有者、文件所有者所属组、其他人各一套。

    在SELinux中,访问控制属性总是安全上下文三人组(用户:角色:类型)形式,所有客体和主体都有一个关联的安全上下文。需要特别指出的是,因为SELinux的主要访问控制特性是类型强制,安全上下文中的类型标识符决定了访问权。

    SELinux是在标准Linux基础上增加了类型强制(TE:Type Enforcement),这就意味着标准Linux和SELinux访问控制都必须满足先要能访问一个客体,例如:如果我们对某个文件有SELinux写入权限,但我们没有该文件的w许可,那么我们也不能写该文件。下表总结了标准Linux和SELinux之间访问控制属性的对比:

    标准Linux SELInux
    进程安全属性 真实有效的用户和组ID
    客体安全属性 访问模式、文件用户和组ID
    访问控制基础 进程用户/组ID和文件的访问模式,
    此访问模式基于文件的用户/组ID 在进程类型和文件类型之间允许的许可

    转自:DesFirefly 的 SELinux安全上下文的认识

    展开全文
  • SELinux的安全上下文

    2021-02-20 22:59:08
    一、SELinux安全上下文查看方法 SELinux 管理过程中,进程是否可以正确地访问文件资源,取决于它们的安全上下文。进程和文件都有自己的安全上下文,SELinux 会为进程和文件添加安全信息标签,比如 SELinux 用户、...

    一、SELinux安全上下文查看方法

    SELinux 管理过程中,进程是否可以正确地访问文件资源,取决于它们的安全上下文。进程和文件都有自己的安全上下文,SELinux 会为进程和文件添加安全信息标签,比如 SELinux 用户、角色、类型、类别等,当运行 SELinux 后,所有这些信息都将作为访问控制的依据。

    首先,通过一个实例看看如何查看文件和目录的安全上下文,执行命令如下:

    [root@localhost ~]# ls -Z
    #使用选项-Z查看文件和目录的安全上下文
    -rw-------.root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
    -rw-r--r--.root root system_u:object_r:admin_home_t:s0 install.log
    -rw-r--r--.root root system_u:object_r:admin_home_t:s0 install.log.syslog
    

    可以看到,查看文件的安全上下文非常简单,就是使用“ls -Z”命令。而在此基础上,如果想要查看目录的安全上下文,需要添加“-d”选项,代表查看目录本身,而非目录下的子文件。举个例子:

    [root@localhost ~]# ls -Zd /var/www/html/
    drwxr-xr-x.root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
    

    那么,该如何查看进程的安全上下文呢?只需使用 ps 命令即可。命令如下:

    [root@localhost ~]# service httpd start
    #启动apache服务
    [root@localhost ~]# ps auxZ | grep httpd
    unconfined_u:system_r:httpd_t:s0 root 25620 0.0 0.5 11188 3304 ? Ss
    03:44 0:02 /usr/sbin/httpd
    …省略部分输出…
    

    也就是说,只要进程和文件的安全上下文匹配,该进程就可以访问该文件资源。在上面的命令输出中,我们加粗的就是安全上下文。

    安全上下文看起来比较复杂,它使用“:”分隔为 4 个字段,其实共有 5 个字段,只是最后一个“类别”字段是可选的,例如:

    system_u:object_r:httpd_sys_content_t:s0:[类别]
    #身份字段:角色:类型:灵敏度:[类别]
    

    下面对这 5 个字段的作用进行说明。

    1) 身份字段(user)

    用于标识该数据被哪个身份所拥有,相当于权限中的用户身份。这个字段并没有特别的作用,知道就好。常见的身份类型有以下 3 种:

    • 1.- root:表示安全上下文的身份是 root。
    • 2.- system_u:表示系统用户身份,其中“_u”代表 user。
    • 3.- user_u:表示与一般用户账号相关的身份,其中“_u”代表 user。

    user 字段只用于标识数据或进程被哪个身份所拥有,一般系统数据的 user 字段就是 system_u,而用户数据的 user 字段就是 user_u。

    那么,SELinux 中到底可以识别多少用户身份字段呢?我们可以使用 seinfo 命令来进行查询。SELinux 的相关命令一般都是以“se”开头的,所以也较为好记。

    seinfo 命令格式如下:

    [root@localhost ~]# seinfo [选项]
    选项:
    -u: 列出SELinux中所有的身份(user);
    -r: 列出SELinux中所有的角色(role);
    -t: 列出SELinux中所有的类型(type);
    -b: 列出所有的布尔值(也就是策略中的具体规则名称);
    -x: 显示更多的信息;
    

    seinfo 命令的功能较多,我们在这里只想查询 SELinux 中的身份,那么只需执行如下命令:

    [root@localhost ~]# seinfo -u
    Users:9
    sysadm_u
    system_u
    xguest_u
    root
    guest_u
    staff_u
    user_u
    unconfined_u
    git_shell_u
    

    就可以看到 SELinux 中能够识别的 user 身份共有 9 种。不过这个字段在实际使用中并没有太多的作用,了解一下即可。

    2) 角色(role)

    主要用来表示此数据是进程还是文件或目录。这个字段在实际使用中也不需要修改,所以了解就好。

    常见的角色有以下两种:

    • 1.- object_r:代表该数据是文件或目录,这里的“_r”代表 role。
    • 2.- system_r:代表该数据是进程,这里的“_r”代表 role。

    那么,SELinux 中到底有多少种角色呢?使用 seinfo 命令也可以查询,命令如下:

    [root@localhost ~]# seinfo -r
    Roles:12
    guest_r
    staff_r
    user_r
    git_shell_r
    logadm_r
    object_r
    sysadm_r
    system_r
    webadm_r
    xguest_r
    nx_server_r
    unconfined_r
    

    3) 类型(type)

    类型字段是安全上下文中最重要的字段,进程是否可以访问文件,主要就是看进程的安全上下文类型字段是否和文件的安全上下文类型字段相匹配,如果匹配则可以访问。

    注意,类型字段在文件或目录的安全上下文中被称作类型(type),但是在进程的安全上下文中被称作域(domain)。也就是说,在主体(Subject)的安全上下文中,这个字段被称为域;在目标(Object)的安全上下文中,这个字段被称为类型。域和类型需要匹配(进程的类型要和文件的类型相匹配),才能正确访问。

    SELinux 中到底有多少类型也是通过 seinfo 命令查询的,命令如下:

    [root@localhost ~]# seinfo -t | more
    Types:3488
    #共有3488个类型
    bluetooth_conf_t
    cmirrord_exec_t
    foghorn_exec_t
    jacorb_port_t
    sosreport_t
    etc_runtime_t
    …省略部分输出…
    

    我们知道了类型的作用,可是我们怎么知道进程的域和文件的类型是否匹配呢?这就要查询具体的策略规则了,我们在后面再进行介绍。

    不过,我们已知 apache 进程可以访问 /var/www/html/(此目录为 RPM 包安装的 apache 的默认网页主目录)目录中的网页文件,所以 apache 进程的域和 /var/www/html/ 目录的类型应该是匹配的,我们查询一下,命令如下:

    [root@localhost ~]# ps auxZ | grep httpd
    unconfined_u:system_r:httpd_t:s0 root 25620 0.0 0.5 11188 3304 ? Ss
    03:44 0:02 /usr/sbin/httpd
    #apache进程的域是httpd_t
    [root@localhost ~]# ls -dZ /var/www/html/
    drwxr-xr-x.root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
    #/var/www/html/目录的类型是httpd_sys_content_t
    

    apache 进程的域是 httpd_t,/var/www/html/ 目录的类型是 httpd_sys_content_t,这个主体的安全上下文类型经过策略规则的比对,是和目标的安全上下文类型匹配的,所以 apache 进程可以访问 /var/www/html/ 目录。

    我们在 SELinux 中最常遇到的问题就是进程的域和文件的类型不匹配,所以我们一定要掌握如何修改类型字段。

    4) 灵敏度

    灵敏度一般是用 s0、s1、s2 来命名的,数字代表灵敏度的分级。数值越大,代表灵敏度越高。

    5) 类别

    类别字段不是必须有的,所以我们使用 ls 和 ps 命令查询的时候并没有看到类别字段。但是我们可以通过 seinfo 命令来查询,命令如下:

    [root@localhost ~]# seinfo -u -x
    #查询所有的user字段,并查看详细信息
    system_u
    #user字段名
    default level:s0
    #默认灵敏度
    range:s0 - s0:c0.c1023
    #灵敏度可以识别的类别
    roles:
    #该user能够匹配的role(角色)
    object_r
    system_r
    unconfined_r
    

    二、SELinux安全上下文的修改和设置(chcon和restorecon命令)

    安全上下文的修改是我们必须掌握的,其实也并不难,主要是通过两个命令来实现的。

    chcon 命令格式如下:

    [root@localhost ~]# chcon [选项] 文件或目录
    

    选项:

    -R: 递归,当前目录和目录下的所有子文件同时设置;
    -t: 修改安全上下文的类型字段,最常用;
    -u: 修改安全上下文的身份字段;
    -r: 修改安全上下文的角色字段;
    

    举个例子:

    [root@localhost ~]# echo'test page!!!' >> /var/www/html/index.html
    #建立一个网页文件,并写入“test page!!!”
    

    我们可以通过浏览器查看这个网页,只需在浏览器的 URL 中输入“http://ip”即可,如图 1 所示。

    在这里插入图片描述
    图 1 访问 apache 测试页

    [root@localhost ~]# ls -Z /var/www/html/index.html
    -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/index.html
    #这个网页文件的模式类别是httpd_sys_content_t
    [root@localhost ~]# seinfo -t I grep var_t
    #查询SELinun中所有的类型、发现有一个类型叫var_t
    [root@localhost ~]# chcon -t var_t /var/www/html/index.html
    #把网页文件的类型修改为var_t类型
    [root@localhost ~]# ls -Z /var/www/html/index.html
    -rw-r--r--. toot root unconfined_u:object_r:var_t:s0 /var/www/html/index.html
    #这个网页的类型已经被修改了
    

    我们把网页文件的类型修改了,这样 apache 进程的安全上下文一定不能匹配网页的安全上下文,就会出现如图 2 所示的情况。

    在这里插入图片描述
    图 2 拒绝访问

    这时网页就会提示权限拒绝,这里我们已经知道是安全上下文不匹配惹的祸!当然,我们可以通过 chcon 命令修改回来就可以修复。不过,我们还有一个命令 restorecon,这个命令的作用就是把文件的安全上下文恢复成默认的安全上下文。SELinux 的安全上下文设定非常完善,所以使用 restorecon 命令就可以修复安全上下文不匹配所引起的问题。

    restorecon 命令格式如下:

    [root@localhost ~] # restorecon [选项】 文件或目录
    

    选项:

    -R:递归.当前目录和目录下所有的子文件同时恢复;
    -V:把恢复过程显示到屏幕上;
    

    例如:

    [root@1ocalhost ~]# restorecon -Rv /var/www/html/index.html
    restorecon  reset   /var/www/html/index.html    context
    unconfined_u:object_r:var_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
    #这里已经提示了安全上下文从var_t恢复成了httpd_sys_content_t
    [root@1ocalhost ~]# ls -Z /var/www/html/index.html
    -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/index.html
    #查看一下,安全上下文已经恢复正常了.网页的访问也已经恢复正常了
    

    三、SELinux默认安全上下文的查询和修改(semanage命令)

    前面讲到,restorecon 命令可以将文件或目录恢复成默认的安全上下文,这就说明每个文件和目录都有自己的默认安全上下文,事实也是如此,为了管理的便捷,系统给所有的系统默认文件和目录都定义了默认的安全上下文。

    那么,默认安全上下文该如何查询和修改呢?这就要使用 semanage 命令了。该命令的基本格式如下:

    [root@localhost ~]# semanage [login|user|port|interface|fcontext|translation] -l
    [root@localhost ~]# semanage fcontext [选项] [-first]  file_spec
    

    其中,fcontext 主要用于安全上下文方面,-l 是查询的意思。除此之外,此命令常用的一些选项及含义,如表 1 所示。

    在这里插入图片描述
    【例 1】查询默认安全上下文。

    [root@localhost ~]# semanage fcontext -l
    #查询所有的默认安全上下文
    …省略部分输出…
    /var/www(/.*)? all files
    system_u:object_r:httpd_sys_content_t:s0
    …省略部分输出…
    #能够看到/var/www/目录下所有内容的默认安全上下文都是httpd_sys_content_t
    

    所以,一旦对 /var/www/ 目录下文件的安全上下文进行了修改,就可以使用 restorecon 命令进行恢复,因为默认安全上下文已经明确定义了。

    【例 2】修改默认安全上下文。
    那么,可以修改目录的默认安全上下文吗?当然可以,举个例子:

    [root@localhost ~]# mkdir /www
    #新建/www/目录,打算用这个目录作为apache的网页主目录,而不再使用/var/www/html/目录
    [root@localhost ~]# ls -Zd /www/
    drwxr-xr-x.root root unconfined_u:object_r:default_t:s0 /www/
    #而这个目录的安全上下文类型是default_t,那么apache进程当然就不能访问和使用/www/目录了
    

    这时我们可以直接设置 /www/ 目录的安全上下文类型为 httpd_sys_content_t,但是为了以后管理方便,我打算修改 /www/ 目录的默认安全上下文类型。先查询一下 /www/ 目录的默认安全上下文类型,命令如下:

    [root@localhost ~]# semanage fcontext -l | grep "/www"
    #查询/www/目录的默认安全上下文
    

    查询出了一堆结果,但是并没有 /www/ 目录的默认安全上下文,因为这个目录是手工建立的,并不是系统默认目录,所以并没有默认安全上下文,需要我们手工设定。命令如下:

    [root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t "/www(/.*)?"
    #这条命令会给/www/目录及目录下的所有内容设定默认安全上下文类型是httpd_sys_content_t
    [root@localhost ~# semanage fcontext -l | grep "/www"
    …省略部分输出…
    /www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
    #/www/目录的默认安全上下文出现了
    

    这时已经设定好了 /www/ 目录的默认安全上下文。

    [root@localhost ~]# ls -Zd /www/
    drwxr-xr-x.root root unconfined_u:object_r:default_t:s0 /www/
    #但是查询发现/www/目录的安全上下文并没有进行修改,那是因为我们只修改了默认安全上下文,而没有修改目录的当前安全上下文
    [root@localhost ~]# restorecon -Rv /www/
    restorecon reset /www context
    unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
    #恢复一下/www/目录的默认安全上下文,发现类型已经被修改为httpd_sys_content_t
    

    默认安全上下文的设定就这么简单。

    展开全文
  • linux的安全上下文

    2019-01-26 21:46:15
    安全上下是一个访问控制属性,是selinux中的重要组成部分,在进行移动时,不会改变文件的属性和权限,而复制的过程会改变文件的属性,而安全上下文是一个访问的凭证,特定的文件被特定的程序访问,安全上下文会关闭...

    什么是安全上下文?

    安全上下是一个访问控制属性,是selinux中的重要组成部分,在进行移动时,不会改变文件的属性和权限,而复制的过程会改变文件的属性,而安全上下文是一个访问的凭证,特定的文件被特定的程序访问,安全上下文会关闭系统认为不安全的功能,当安全上下文相匹配时才允许访问。

    安全上下文的作用

    vim /etc/sysconfig/selinux
    

    在这里插入图片描述
    把selinux改为enforcing模式,重启系统,开启安全上下文的功能。
    在这里插入图片描述
    我们可以看到,开启安全上下文之后,使用lftp登陆时只能看到在目录里创建的文件,而看不到移动到目录的文件。那么,如何临时关闭这个功能呢?

    chcon -t public_content_t /home/student/ -R
    ls -Zd /home/student/
    

    在这里插入图片描述
    此时,重/mnt移动过来的文件也能看到了。
    也可以永久关闭这个功能。

    semanage fcontext -a -t public_content_t '/home/student(/.*)?'
    semanage fcontext -l | grep student
    

    在这里插入图片描述

    restorecon -FvvR /home/student/			##刷新上下文关系
    

    在这里插入图片描述
    这样,就永久关闭安全上下文的功能,重启计算机之后也不会改变。
    如何允许本地用户上传文件
    开启selinux的强制功能之后,本地用户和匿名用户都是默认不能上传文件的,如果想要上传文件,必须打开相应开关。

    getsebool -a | grep ftp			##查看开关是否打开
    setsebool -P ftp_home_dir  on	##打开开关
    

    在这里插入图片描述
    查看开关是否打开
    在这里插入图片描述
    打开开关
    之后就可以进行本地用户的文件的上传了。
    在这里插入图片描述
    当然如过上传失败可以查看/etc/vsftpd/vsftpd.conf文件是否有参数未修改,也可以查看/var/log/messages中的日志寻找解决方案。
    如何允许匿名用户上传文件
    同样,匿名用户也是默认不能上传文件的,需要打开相应开关。

    setsebool -P ftpd_anon_write on							##打开开关
    semanage fcontext -a -t public_content_rw_t /var/ftp/pub
    restorecon -RvvF /var/ftp/pub/
    

    在这里插入图片描述
    在这里插入图片描述
    上传成功!
    selinux有两种模式,可以用getenforce进行查看
    在这里插入图片描述
    用setenforce临时更改。
    在这里插入图片描述
    其中Enforcing表示强制模式,Permissive表示警告模式。

    展开全文
  • semanage命令是用来查询与修改SELinux默认目录的安全上下文。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。 语法格式:semanage [参数] 常用参数: ...
  • selinux 安全上下文

    2017-08-12 10:53:04
    一:安全上下文原理安全上下文是一个简单的、一致的访问控制属性,在SELinux中,类型标识符是安全上下文的主要组成部分,由于历史原因,一个进程的类型通常被称为一个域(domain),"域"和"域类型"意思都一样,即都...
  • Kubernetes SecurityContext安全上下文

    千次阅读 2020-09-11 18:00:51
    安全上下文(Security Context)定义 Pod 或 Container 的特权与访问控制设置。安全上下文包括但不限于: 自主访问控制(Discretionary Access Control):基于 用户 ID(UID)和组 ID(GID).来判定对对象(例如...
  • chcon命令是修改对象(文件)的安全上下文,比如:用户、角色、类型、安全级别。也就是将每个文件的安全环境变更至指定环境。 语法格式: chcon [参数] 常用参数: -h 影响符号连接而非引用的文件 -R 递归处理...
  • 立即生效,所有在Web上公开的新功能都将限于安全上下文。 暴露于网络意味着该功能可以从网页或服务器上观察到,无论通过JavaScript,CSS,HTTP,媒体格式等。该功能可以是现有IDL定义的对象的扩展,新CSS属性,一个...
  • SEAndroid安全机制中的进程安全上下文关联分析

    万次阅读 多人点赞 2014-07-28 00:59:17
    但是在SEAndroid中,除了要给文件关联安全上下文外,还需要给进程关联安全上下文,因为只有当进程和文件都关联安全上下文之后,SEAndroid安全策略才能发挥作用。也就是说,当一个进程试图访问一个文件时,SEAndroid...
  • 1.服务器:将安全上下文功能设置为开启,通过命令行查看安全上下文功能状态。2.服务器:通过配置文件查看安全上下文功能,确认为开启状态。3.客户端:将安全上下文功能设置为开启,通过命令行查看安全上下文功能状态...
  • 命令chcon ...用途:更改文件的SELinux安全上下文 语法:chcon [选项] [参数] 文件 选项: --reference=RFILE 指定参考文件RFILE修改文件的安全上下文 -R, --recursive 递归地处理文件和目录 ...
  • 什么是安全上下文

    千次阅读 2017-03-30 11:55:26
    安全上下文指的是一类定义某个进程允许做什么的许可和权限的集合。Windows中的安全上下文是通过登录会话(Logon Session)定义的,并通过访问令牌维护。顾名思义,登录会话表示某个用户在某台计算机上的某次会话过程...
  • Spring Security使用接口SecurityContext抽象建模"安全上下文"这一概念。这里安全上下文SecurityContext指的是当前执行线程使用的最少量的安全信息。当一个线程在服务用户期间,该安全上下文对象会保存在...
  • 手动修改文件的SELinux安全上下文 2.命令格式 chcon [-R] [-t type] [-u user] [-r role] 文件 chcom [-R] --reference=范例文件 文件 相关参数与选项 -R:连同该目录下的子目录也同时修改 -t:后面接安全上下文...
  • SEAndroid安全机制中的文件安全上下文关联分析

    万次阅读 热门讨论 2014-07-21 00:59:43
    前面一篇文章提到,SEAndroid是一种基于安全策略的MAC安全机制。这种安全策略实施在主体和客体的安全上下文之上。...本文主要分析文件安全上下文的设置过程,接下来的一篇文章再分析进程安全上下文的设置过程。
  • Linux:selinux安全上下文

    千次阅读 2018-05-16 20:12:19
    安全上下文是一个简单的、一致的访问控制属性,在SELinux中,类型标识符是安全上下文的主要组成部分,由于历史原因,一个进程的类型通常被称为一个域(domain),”域”和”域类型”意思都一样,即都是安全上下文中...
  • 安全上下文的认识

    千次阅读 2018-05-16 23:04:51
    一、临时修改安全上下文在/mnt下建立一个文件,并将它移动到ftp目录下,在我们登陆时lftp时,没有westos文件在/var/ftp下建立一个文件
  • 3进程安全上下文 前面一篇文章分析了文件安全上下文关联过程。但是在SEAndroid中,除了要给文件关联安全上下文外, 还需要给进程关联安全上下文,因为只有当进程和文件都关联安全上下文之后,SEAndroid安全策略...
  • 2文件安全上下文 SEAndroid是一种基于安全策略的MAC安全机制。这种安全策略实施在主体和客体的安全上下文之上。 这意味着安全策略在实施之前,SEAndroid安全机制中的主休和客体是已经有安全上下文的。 在...
  • 1、什么是安全上下文 (1)安全上下文是一个简单一致的访问控制属性 (2)特定的文件被特定的程序访问,是访问时的凭证 (3)会关闭系统认为不安全的所有功能 2、程序访问文件时匹配安全上下文 设置: 命令 功能...
  • NAS信令学习笔记 ——EPS安全上下文

    千次阅读 2019-02-19 10:18:20
    对于EPS安全上下文,你应该知道些什么? (1)EPS安全上下文分类 native和mapped:native表示鉴权过程中生成的EPS安全上下文,mapped表示从其它模式切换到S1模式时生成的EPS安全上下文。 current和non-current:...
  • 查看selinux安全上下文:ls -Z [root@localhost ~]# touch /var/ftp/hellohello 新建文件测试 [root@localhost ~]# ls /var/ftp/ 查看目录ftp中的内容 hellohello pub [root@localhost ~]# touch /mnt/haha1 [root@...
  • SELinux安全上下文的认识

    千次阅读 2015-10-30 17:29:39
    1、SELinux的安全上下文 安全上下文是一个简单的、一致的访问控制属性,在SELinux中,类型标识符是安全上下文的主要组成部分,由于历史原因,一个进程的类型通常被称为一个域(domain),"域"和"域类型"意思都一样...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,059
精华内容 2,023
关键字:

安全上下文