Skip to content

SELinux初探

关于SELinux安全上下文设置的一些操作命令

1. chcon

  • 语法
    chcon [选项]... 环境 文件... 
    chcon [选项]... [-u 用户] [-r 角色] [-l 范围] [-t 类型] 文件... 
    chcon [选项]... --reference=参考文件 文件...
    
  • 选项
    -h, --no-dereference:影响符号连接而非引用的文件。
    --reference=参考文件:使用指定参考文件的安全环境,而非指定值。 
    -R, --recursive:递归处理所有的文件及子目录。 
    -v, --verbose:为处理的所有文件显示诊断信息。 
    -u, --user=用户:设置指定用户的目标安全环境。
    -r, --role=角色:设置指定角色的目标安全环境。
    -t, --type=类型:设置指定类型的目标安全环境。 
    -l, --range=范围:设置指定范围的目标安全环境。
    

2. restorecon

  • 语法
    restorecon [-iFnrRv] [-e excludedir ] [-o filename ] [-f filename | pathname...]
    
  • 选项
    -i:忽略不存在的文件。 
    -f:infilename 文件 infilename 中记录要处理的文件。 
    -e:directory 排除目录。 
    -R/-r:递归处理目录。 
    -n:不改变文件标签。 
    -o/outfilename:保存文件列表到 outfilename,在文件不正确情况下。 
    -v:将过程显示到屏幕上。 
    -F:强制恢复文件安全语境。
    

3. semanage

  • 将某个路径下的后续文件自动标记安全上下文的规则

    sudo semanage fcontext -a -t samba_share_t "/mnt/shared(/.*)?"
    
    - 删除某个路径下的后续文件自动标记安全上下文的规则
    sudo semanage fcontext - "/mnt/shared(/.*)?"
    

4. getsebool

  • 查看SELinux的所有bool量开关

    getsebool -a
    

5. setsebool

  • 修改bool值

    setsebool -P <boolean_name> on/off
    

    其中-P用于永久修改。

6. Attention

  • 需要注意的是,任何一个程序在SElinux下运行,均需要有对应的SElinux安全上下文支撑,否则运行必然造成权限不足。

REF

[1].https://www.linuxprobe.com/restorecon.html

[2].https://www.linuxprobe.com/chcon.html

[3]. https://goto-linux.com/zh-cn/2020/6/13/%E5%A6%82%E4%BD%95%E5%9C%A8rhel-8-/-centos-8%E4%B8%8A%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AEsamba/