zoukankan      html  css  js  c++  java
  • unit9&10&11

    #######################################################################3

    ###################vsftpd服务###########################################

    #########################################################################

    1.什么时ftp

    2.安装ftp

    yum install vsftpd  -y

    systemctl start vsftpd

    systemctl stop firewalld

    systemctl enable vsftpd

    setenforce 0

    lftp ip ##能登陆并且显示,表示安装成功

    3.vsftpd文件信息

    /var/ftp ##默认发布目录

    /etc/vsftpd ##配置目录

    [root@localhost Desktop]# vim /etc/vsftpd/vsftpd.conf

    4.vsftpd服务的配置参数

    1)匿名用户设定

    anonymous_enable=YES|NO ##匿名用户登陆限制

    #<匿名用户上传>

    vim /etc/vsftpd/vsftpd.conf

    write_enable=YES

    anon_upload_enable=YES

    chgrp ftp /var/ftp/pub

    chmod 775 /var/ftp/pub

    eg:

    [root@localhost Desktop]# ll -ld /var/ftp/pub/

    drwxr-xr-x. 2 root ftp 6 Mar  7  2014 /var/ftp/pub/

    [root@localhost Desktop]# lftp 172.25.254.141

    lftp 172.25.254.141:~> cd pub/

    lftp 172.25.254.141:/pub> put /etc/passwd

    2005 bytes transferred

    lftp 172.25.254.141:/pub> quit

    #<匿名用户家目录修改>  #################

    anon_root=/direcotry

    [root@localhost Desktop]# lftp 172.25.254.141

    lftp 172.25.254.141:~> pwd

    ftp://172.25.254.141

    #<匿名用户上传文件默认权限修改>

    anon_umask=xxx

    #<匿名用户建立目录>

    anon_mkdir_write_enable=YES|NO

    [root@localhost Desktop]# lftp 172.25.254.141

    lftp 172.25.254.141:~> cd pub/

    lftp 172.25.254.141:/pub> mkdir test

    mkdir ok, `test' created

    #<匿名用户下载>

    anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载

    lftp 172.25.254.141:/pub> get passwd

    2005 bytes transferred

    #<匿名用户删除>

    anon_other_write_enable=YES|NO

    lftp 172.25.254.141:/pub> rm -fr passwd

    rm ok, `passwd' removed

    #<匿名用户使用的用户身份修改>

    chown_uploads=YES

    chown_username=student

    #<最大上传速率>

    anon_max_rate=102400

    lftp student@172.25.254.141:~> put /etc/vimrc

    1982 bytes transferred in 10 seconds (197b/s)   

    #<最大链接数>

    max_clients=2

    2)本地用户设定

    local_enable=YES|NO ##本地用户登陆限制

    write_enable=YES|NO ##本地用户写权限限制

    #<本地用户家目录修改>  ###

    local_root=/directory

    #<本地用户上传文件权限>  ################33333

    local_umask=xxx

    local_umask=022

    lftp student@172.25.254.141:~> ls  /etc/passwd

    -rw-r--r--    1 0        0            2040 Apr 11 03:05 passwd

    local_umask=044

    -rw-w--w--    1 1000     1000         2040 Apr 11 03:15 passwd

    local_umask=066

    -rw-------    1 1000     1000          813 Apr 11 03:21 yum.conf

    #<限制本地用户浏览/目录>

    所有用户被锁定到自己的家目录中

    chroot_local_user=YES

    chmod u-w /home/*

    lftp student@172.25.254.141:~> cd /

    lftp student@172.25.254.141:/> ls

    lrwxrwxrwx    1 0        0               7 May 07  2014 bin -> usr/bin

    dr-xr-xr-x    4 0        0            4096 Jul 10  2014 boot

    drwxr-xr-x   19 0        0            2960 Apr 11 02:37 dev

    drwxr-xr-x  134 0        0            8192 Apr 11 03:10 etc

    drwxr-xr-x    4 0        0              29 Apr 11 03:05 home

    dr-xr-xr-x   10 0        0            4096 May 07  2014 iso

    lrwxrwxrwx    1 0        0               7 May 07  2014 lib -> usr/lib

    lrwxrwxrwx    1 0        0               9 May 07  2014 lib64 -> usr/lib64

    drwxr-xr-x    2 0        0               6 Mar 13  2014 media

    drwxr-xr-x    2 0        0              43 Apr 11 02:33 mnt

    drwxr-xr-x    3 0        0              15 Jul 10  2014 opt

    dr-xr-xr-x  166 0        0               0 Apr 11 02:04 proc

    dr-xr-x---   15 0        0            4096 Apr 11 03:22 root

    drwxr-xr-x   38 0        0            1200 Apr 11 02:52 run

    lrwxrwxrwx    1 0        0               8 May 07  2014 sbin -> usr/sbin

    drwxr-xr-x    2 0        0               6 Mar 13  2014 srv

    dr-xr-xr-x   13 0        0               0 Apr 11 02:04 sys

    drwxrwxrwt   12 0        0            4096 Apr 11 02:50 tmp

    drwxr-xr-x   13 0        0            4096 May 07  2014 usr

    drwxr-xr-x   23 0        0            4096 Apr 11 02:39 var

    没改权限

    lftp student@172.25.254.141:~> cd /    

    cd: Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

    改过权限

    lftp student@172.25.254.141:/> ls

    -rw-------    1 1000     1000          861 Apr 11 03:19 group

    -rw-r--r--    1 1000     1000         2040 Apr 11 03:15 passwd

    -rw--w--w-    1 1000     1000         1982 Apr 11 03:23 vimrc

    -rw-------    1 1000     1000          813 Apr 11 03:21 yum.conf

    用户黑名单建立 #####################33

    chroot_local_user=NO

    chroot_list_enable=YES

    chroot_list_file=/etc/vsftpd/chroot_list

    用户白名单建立

    chroot_local_user=YES

    chroot_list_enable=YES

    chroot_list_file=/etc/vsftpd/chroot_list

    #<限制本地用户登陆>

    vim /etc/vsftpd/ftpusers ##用户黑名单

    vim /etc/vsftpd/user_list ##用户临时黑名单

    [root@localhost Desktop]# vim /etc/vsftpd/ftpusers

    student

    [root@localhost Desktop]# lftp 172.25.254.141 -u student

    Password:

    lftp student@172.25.254.141:~> cd /    

    cd: Login failed: 530 Login incorrect.  ##530认证失败

    用户白名单设定

    userlist_deny=NO

    /etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp

    #<ftp虚拟用户的设定>

    创建虚拟帐号身份)

    vim /etc/vsftpd/loginusers ##文件名称任意

    ftpuser1

    123

    ftpuser2

    123

    ftpuser3

    123

    db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db

    vim /etc/pam.d/ckvsftpd ##文件名称任意

    account required pam_userdb.so db=/etc/vsftpd/loginusers

    auth required pam_userdb.so db=/etc/vsftpd/loginusers

    vim /etc/vsftpd/vsftpd.conf

    pam_service_name=ckvsftpd

    guest_enable=YES

    eg:

    [root@localhost ~]# vim /etc/vsftpd/userfile

    user1

    123

    user2

    123

    user3

    123

    [root@localhost ~]# cd /etc/vsftpd/

    [root@localhost vsftpd]# db_load -T -t hash -f userfile userfile.db

    [root@localhost vsftpd]# ls

    chroot_list  userfile     user_list    vsftpd_conf_migrate.sh

    ftpusers     userfile.db  vsftpd.conf  vsftpd.conf.rpmsave

    [root@localhost vsftpd]# cat userfile.db

    ��~^O����эh^123user2[root@localhost vsftpd]# cd /etc/pam.d/

    [root@localhost pam.d]# vim pamftp

    account         required        pam_userdb.so           db=/etc/vsftpd/userfile

    auth            required        pam_userdb.so           db=/etc/vsftpd/userfile

    [root@localhost pam.d]# vim /etc/vsftpd/vsftpd.conf

    pam_service_name=pamftp

    guest_enable=yes

    guest_username=student  ##############

    [root@localhost pam.d]# systemctl restart vsftpd

    测试:

    [kiosk@foundation41 Desktop]$ lftp 172.25.254.241 -u user1

    口令:

    lftp user1@172.25.254.241:~> quit        

    [kiosk@foundation41 Desktop]$ lftp 172.25.254.241 -u user2

    口令:

    虚拟帐号身份指定)

    guest_username=ftpuser

    chmod u-w /home/ftpuser

    虚拟帐号家目录独立设定)2

    vim /etc/vsftpd/vsftpd.conf

    local_root=/ftpuserhome/$USER

    user_sub_token=$USER

    mkdir /ftpuserhome

    chgrp ftpuser /ftpuserhome

    chmod g+s /ftpuserhome

    mkdir /ftpuserhome/ftpuser{1..3}

    虚拟帐号配置独立)

    vim /etc/vsftpd/vsftpd.conf

    user_config_dir=/etc/vsftpd/userconf

    mkdir -p /etc/vsftpd/userconf

    vim /etc/vsftpd/userconf/ftpuser1

    在此文件中设定配置文件中的所有参数,此文件的优先级搞

    #######################第十单元selinux 的管理

    一、基本 SELINUX 安全性概念

    [root@localhost userdir]# rm -fr /etc/vsftpd/vsftpd.conf

    [root@localhost userdir]# yum reinstall vsftpd.x86_64 -y

    ......                                            

    完毕!

    [root@localhost userdir]# vim /etc/sysconfig/selinux

    SELINUX=disabled

    [root@localhost userdir]# reboot

    • SELINUX ( 安全增强型 Linux ) 是可保护你系统安全性的额外机制

    • 在某种程度上 , 它可以被看作是与标准权限系统并行的权限系统。在常规模式中 , 以用户身份运行进程 ,并且系统上的文件和其他资源都设置了权限 ( 控制哪些用户对哪些文件具有哪些访问权 SELINUX 的

    另一个不同之处在于 , 若要访问文件 , 你必须具有普通访

    • 问权限和 SELINUX 访问权限。因此 , 即使以超级用户身份 root 运行进程 , 根据进程以及文件或资源的 SELinux 安全性上下文可能拒绝访问文件或资源限 ) 标签

    二、示例:

    Apache:/var/www/html、/tmp、/var/tmp。

    • 在无 selinux 保护时 , 恶意人员可以尝试利用 web 服务器中的安全漏洞强行进入系统。如果成功 , 将会控制以用户apache 身份运行的进程 , 这时再由一个本地安全漏洞就可能使攻击者获得超级用户的访问权限

    三、selinux 安全上下文访问规则

    • WEB 服务器的 HTTPD 进程设置了 SELINUX 上下文system_u:system_r:httpd_t 标签。该上下文的重要部分是第三个用冒号分隔的字段 SELINUX 类型 : httpd_t

    • 系统上的文件和资源也设置了 SELINUX 上下文标签 , 并且重要的部分是 SELINUX 类型。例如 , /var/www/html 中的文件具有类型 httpd_sys_content_t 。 /tmp 和/var/tmp 中的文件通常具有类型 tmp_t

    • Seliux 策略具有允许以 httpd_t 身份运行的进程访问标记为 httpd_sys_content_t 的文件的规则。没有规则允许这些进程访问标记有 tmp_t 的文件 , 因此将拒绝这些访问 , 即使常规文件权限指出应该允许这些访问

    四、SELINUX 模式

    Apache:/var/www/html、/tmp、/var/tmp  SELinux Enforcing

    强制模式 : SELINUX 主动拒绝访问 尝试读取类型上下文为 tmp_t的 web 服务器。在强制模式中 ,SELINXU 既记录冲突 , 也强制执行规则

    Apache:/var/www/html、/tmp、/var/tmp  SELinux Permissive

    许可模式 : 通常用于对问题进行故障排除。在许可模式下 , 即使没有明确规则 , SELINUX 也允许所有交互 , 并且记录所有被拒绝的交互。此模式可以用于确定你是否有 SELINUX问题。无需重新引导即可从强制模式转为许可模式 , 或再从许可模式转回强制模式

    五、显示及更改 SELINUX 模式

    • getenforce

    • setenforce 0|1

    – 0 表示 permissive # 警告

    – 1 表示 enforcing  # 强制

    六、更改 selinux 的开机状态

    • vim /etc/sysconfig/selinux

    注:disable表示关闭,enforcing表示强制,permissive表示警告,disable状态切换到permissive状态或enforcing状态需要重启系统

    七、显示 SELinux 文件上下文

    • 什么确定文件的初始 SELinux 上下文 ? 通常是父目录。将父目录的上下文指定给新创建的文件。这对 vimcp 和 touch 等命令其作用 , 但是 , 如果文件是在其他位置创建的并且保留了权限 ( 与 mv 或 cp -a 一样 ) 则还将保留 SELinux 上下文

    • 许多处理文件的命令具有一个用于显示或设置 SELinux 上下文的选项 ( 通常是 -Z ) 。例如 , ps 、 ls 、 cp 和 mkdir 都使用 -Z 选项显示或设置 SELinux 上下文

    • 显示上下文

    – ps axZ

    – ps -ZC

    – ls -Z

    八、修改 selinux 安全上下文

    • chcon -t

    – 一次性定制安全上下文,执行 restorecon 刷新后还原

    • semanage fcontext

    – 永久更改文件的上下文

    九、semanage 命令

    • restorecon 是 policycoreutil 软件包的一部分

    • semanage 是 policycoreutil-python 软件包的一部分

    • semanage fcontext 可用与显示或修改 restorrecon 用来设置默认文件上下文的规则

    • semanage fcontext 使用扩展正则表达式来指定路径和文件名。 fcontext 规则中最常用的扩展正则表达式是(/.*)?, 表示随意地匹配 / 后跟任何数量的字符

    • semanage fcontext 将递归地与在表达式前面列出的目录以及该目录中的所有内容相匹配

    九、示例:

    [root@serverX ~]# mkdir /virtual

    [root@serverX ~]# touch /virtual/index.html

    [root@serverX ~]# ls -Zd /virtual/

    drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /virtual/

    [root@serverX ~]# ls -Z /virtual/

    -rw-r--r--. root root unconfined_u:object_r:default_t:s0 index.html

    [root@serverX ~]# semanage fcontext -a -f "" -t httpd_sys_content_t

    '/virtual(/.*)?'

    [root@serverX ~]# restorecon -RFvv /virtual/

    restorecon reset /virtual context system_u:object_r:default_t:s0-

    >system_u:object_r:httpd_sys_content_t:s0

    restorecon reset /virtual/index.html context system_u:object_r:default_t:s0-

    >system_u:object_r:httpd_sys_content_t:s0

    [root@serverX ~]# ls -Zd /virtual/

    drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /virtual/

    [root@serverX ~]# ls -Z /virtual/

    -rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 index.html

    十管理 SELinux 布尔值

    • SELinux 布尔值是更改 SELinux 策略行为的开关。

    SELinux 布尔值是可以启用或禁用的规则。安全管理员可

    以使用 SELinux 布尔值来调整策略 , 以有选择地进行调整

    • 许多软件包都具有 man page *_selinux(8), 其中详细说明

    了所使用的一些布尔值 ; man -k ‘_selinux’ 可以轻松地找

    到这些手册

    • getsebool 用于显示布尔值 , setsebool 用于修改布尔值

    • setsebool -P 修改 SELinux 策略 , 以永久保留修改。

    semanage boolean -l 将显示布尔值是否永久

    十一、示例

    [root@serverX ~]# getsebool -a

    abrt_anon_write --> off

    .....

    [root@serverX ~]# getsebool httpd_enable_homedirs

    httpd_enable_homedirs --> off

    [root@serverX ~]# setsebool httpd_enable_homedirs on

    [root@serverX ~]# semanage boolean -l |grep httpd_enable_homedirs

    httpd_enable_homedirs

    -> off Allow httpd to read home directories

    [root@serverX ~]# getsebool httpd_enable_homedirs

    httpd_enable_homedirs --> on

    [root@serverX ~]# setsebool -P httpd_enable_homedirs on

    [root@serverX ~]# semanage boolean -l |grep httpd_enable_homedirs

    httpd_enable_homedirs

    -> on

    Allow httpd to read home directories

    eg:

    [root@localhost ~]# lftp 172.25.254.241 -u student

    口令:

    lftp student@172.25.254.241:~> cd pub    

    cd: Access failed: 550 Failed to change directory. (/home/student/pub)

    lftp student@172.25.254.241:~> quit

    [root@localhost ~]# ll /home/

    总用量 12

    dr-x------. 5     2000 deho     4096 Apr  1 04:13 asasin

    dr-x------. 5 sareo    deho     4096 Apr  1 04:13 sareo

    dr-x------. 5 student  student  4096 Apr  7 02:20 student

    dr-x------. 4 taromati taromati   88 Apr  1 02:20 taromati

    [root@localhost ~]# chmod 775 /home/*

    [root@localhost ~]# lftp 172.25.254.241 -u student

    口令:

    lftp student@172.25.254.241:~> put /etc/group

    921 bytes transferred                           

    lftp student@172.25.254.241:~> quit

    [root@localhost ~]# mkdir /hello

    [root@localhost ~]# touch /hello/file{1..10}

    [root@localhost ~]# ls /hello/

    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

    [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

    anon_root=/hello  ##修改本地用户家目录为/hello

    [root@localhost ~]# ls -Zd /hello/

    drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /hello/

    [root@localhost ~]# chcon -t public_content_t /hello/ -R ##临时修改家目录

    [root@localhost ~]# systemctl restart vsftpd.service

    [root@localhost ~]# vim /etc/sysconfig/selinux

    SELINUX=enforcing  ##开启SELINUX服务

    [root@localhost ~]# reboot ##重启

    [root@localhost ~]# systemctl start vsftpd.service

    [root@localhost ~]# ls ##重启之后看不见/hello家目录

    anaconda-ks.cfg  Documents  Music     Public     Videos

    Desktop          Downloads  Pictures  Templates

    [root@localhost ~]# vim /etc/sysconfig/selinux

    SELINUX=disabled  ##关闭SELINUX服务

    [root@localhost ~]# reboot ##重启

    Connection to 172.25.254.241 closed by remote host.

    Connection to 172.25.254.241 closed.

    [root@localhost ~]# systemctl start vsftpd.service

    [root@localhost ~]# semanage fcontext -l |grep /var/ftp/

    /var/ftp/bin(/.*)?                                 all files          system_u:object_r:bin_t:s0

    /var/ftp/etc(/.*)?                                 all files          system_u:object_r:etc_t:s0

    /var/ftp/lib(/.*)?                                 all files          system_u:object_r:lib_t:s0

    /var/ftp/lib/ld[^/]*.so(.[^/]*)*                 regular file       system_u:object_r:ld_so_t:s0

    [root@localhost ~]# semanage fcontext -a -t public_content_t '/hello(/.*)?' ##永久设定匿名用户家目录

    [root@localhost ~]# restorecon /hello/ -FvvR

    restorecon reset /hello context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

    restorecon reset /hello/file1 context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

    restorecon reset /hello/file2 context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

    restorecon reset /hello/file3 context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

    restorecon reset /hello/file4 context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

    restorecon reset /hello/file5 context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

    restorecon reset /hello/file6 context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

    restorecon reset /hello/file7 context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

    restorecon reset /hello/file8 context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

    restorecon reset /hello/file9 context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

    restorecon reset /hello/file10 context unconfined_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

    测试

    [kiosk@foundation41 Desktop]$ lftp 172.25.254.241

    lftp 172.25.254.241:~> ls

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file1

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file10

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file2

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file3

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file4

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file5

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file6

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file7

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file8

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file9

    lftp 172.25.254.241:/> quit

    [kiosk@foundation41 Desktop]$ lftp 172.25.254.241

    lftp 172.25.254.241:~> ls

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file1

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file10

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file2

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file3

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file4

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file5

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file6

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file7

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file8

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file9

    lftp 172.25.254.241:/> quit

    [kiosk@foundation41 Desktop]$ lftp 172.25.254.241

    lftp 172.25.254.241:~> ls                

    lftp 172.25.254.241:/> quit

    [kiosk@foundation41 Desktop]$ lftp 172.25.254.241

    lftp 172.25.254.241:~> LS                

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file1

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file10

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file2

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file3

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file4

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file5

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file6

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file7

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file8

    -rw-r--r--    1 0        0               0 Apr 10 06:59 file9

    lftp 172.25.254.241:/>

    十二、监控 SELinux 冲突

    • 必须安装 setroubleshoot-server 软件包 , 才能将SELinux 消息发送至 /var/log/messages

    • etroubleshoot-server 侦听/var/log/audit/audit.log 中的审核信息并将简短摘

    要发送至 /var/log/messages

    • 摘要包括 SELinux 冲突的唯一标识符 ( UUIDs ),可用于收集更多信息。 Sealert -l UUID 用于生成

    特定事件的报告。 Sealert -a/var/log/audit/audit.log 用于在该文件中生成所有事件的报告

    十三、示例

    [root@demo ~]# echo www.westos.org /root/file1

    [root@demo ~]# mv /root/file1 /var/www/html/

    [root@demo ~]# service httpd start

    [root@demo ~]# elinks -dump http://localhost/file1

    Forbidden

    You don't have permission to access /file1 on this server.

    [root@demo ~]# tail -1 /var/log/audit/audit.log

    ....

    type=AVC msg=audit(1312818090.800:25721): avc: denied { getattr } for

    pid=29653 comm="httpd"

    Path="/var/www/html/file1" dev=dm-1 ino=54309

    scontext=unconfined_u:system_r:httpd_t:s0

    tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file

    ....

    [root@demo ~]# tail /var/log/messages

    十四、示例

    [root@demo ~]# tail /var/log/messages

    .....

    Aug 8 23:41:30 demo setroubleshoot: SELinux is preventing /usr/sbin/httpd

    "getattr" access to /var/www/html/file1.

    For complete SELinux messages. run sealert -l bbb10235-7683-4387-977d-

    a34c141bba86

    [root@demo ~]# sealert -l bbb10235-7683-4387-977d-a34c141bba86

    Summary:

    SELinux is preventing /usr/sbin/httpd "getattr" access to /var/www/html/file1.

    Detailed Description:

    ... ...

    You can restore the default system context to this file by executing the

    restorecon command. restorecon

    '/var/www/html/file1', if this file is a directory, you can recursively restore using

    restorecon -R

    '/var/www/html/file1'.

    Fix Command:

    /sbin/restorecon '/var/www/html/file1'

    十五、示例

    [ 执行事件报告中给出的解决命令 :

    [root@demo ~]# restorecon /var/www/html/file1

    [root@demo ~]# elinks -dump http://localhost/file1

    #######################第十一单元系统恢复技术

    一、系统引导过程概述

    通电---->bios 初始化---->grub2 磁盘引导阶段---->grub2 文件引导阶段---->指定 boot 所在分区---->

    启动内核,只读挂在 / 设备---->启动 init 程序进入初始化阶段---->启动 systemd 初始化进程---->读取 /etc/systemd/中的文件---->启动程序---->启动登陆环境

    二、bios 初始化

    • 基本输入 / 输出系统 ( BIOS ) 是内置于标准 x86/x86-64硬件的固件接口 , 将硬件置于已知状态并准备好系统以加载操作系统

    • 出现什么情况 ?

    – 检测并初始化硬件

    – 确定从中引导的设备

    • 可能出现了什么错误 ?

    – 错误或异常 BIOS 设置

    – 错误引导设备顺序

    • 可以如何中断或影响 ?

    – 按特定于供应商的键

    – 使用特定于供应商的配置实用程序

    – 通常 , <F12> 可以执行一次引导顺序覆盖

    三、grub 磁盘引导阶段

    • MBR

    – mbr 的作用是为了记录 /boot 目录所在分区位置

    – 磁盘的 0 磁道 1 扇区的前 446 字节

    – dd if=/dev/zero of=/dev/xda bs=446 count=1

    eg:

    [root@localhost ~]# dd if=/dev/zero of=/dev/vda bs=446 count=1

    1+0 records in

    1+0 records out

    446 bytes (446 B) copied, 0.000140221 s, 3.2 MB/s

    [root@localhost ~]# reboot

    Connection to 172.25.254.141 closed by remote host.

    Connection to 172.25.254.141 closed.

    [root@foundation41 ~]# rht-vmctl view desktop

    Force off 关闭虚拟机

    灯泡

    open

    Add Hardware       Boot Options        Aplay

    重新开启        

    Troubleshooting————> Rescue a Red Enterprise Linux system-->continue-->ok--->ok

    df

    chroot /mnt/sysimage/   

    grub2-install /dev/vda

    Force off    Boot Options   

    灯泡

    – grub2-install /dev/xda

    四、grub 文件引导阶段

    • /boot/grub2/grub.cfg

    – 指定 /boot 分区位置

    – 加载内核

    – 启动系统初始化进程

    – grub2-mkconfig

    eg:

    [root@localhost grub2]# cd /boot/grub2

    [root@localhost grub2]# ls

    device.map  fonts  grub2.cfg  grubenv  i386-pc  locale  themes

    [root@localhost grub2]# rm -fr grub2.cfg

    [root@localhost grub2]# grub2-mkconfig > /boot/grub2/grub2.cfg  ##恢复/boot/grub2/grub.cfg

    Generating grub configuration file ...

    Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64

    Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img

    Found linux image: /boot/vmlinuz-0-rescue-946cb0e817ea4adb916183df8c4fc817

    Found initrd image: /boot/initramfs-0-rescue-946cb0e817ea4adb916183df8c4fc817.img

    done

    [root@localhost grub2]# cat grub2.cfg

    ....

    set root='hd0,msdos1'

    if [ x$feature_platform_search_hint = xy ]; then

      search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1'  9bf6b9f7-92ad-441b-848e-0257cbb883d1

    else

      search --no-floppy --fs-uuid --set=root 9bf6b9f7-92ad-441b-848e-0257cbb883d1

    fi

    linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 root=UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 ro vconsole.keymap=us console=tty0 crashkernel=auto  vconsole.font=latarcyrheb-sun16

    initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img

    }

    *2

    [root@localhost grub2]# rm -fr grub2.cfg

    重启

    grub>set root='hd0,msdos1'

    grub>linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1

    grub>initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img

    grub>boot

    [root@localhost grub2]# grub2-mkconfig > /boot/grub2/grub2.cfg

    五、内核引导阶段

    •检测硬件设备

    •设备驱动初始化

    •将 / 只读挂在

    •载入初始进程 systemd

    •内核文件丢失请重新安装内核

    六、systemd 初始化

    •开启 selinux 和 systemd-tools

    •加载内核参数

    •加载系统时钟,键盘,主机名称

    •读写挂载 / 文件系统

    •激活 raid , lvm 设备

    •激活系统配额

    •启动 multi-user.target.wants 中的所有服务脚本

    •启用虚拟控台

    •启动图形

    七、启动级别

    •runlever0.target -> poweroff.target

    •runlever1.target -> rescue.target

    •runlever2.target -> multi-user.target

    •runlever3.target -> multi-user.target

    •runlever4.target -> multi-user.target

    •runlever5.target -> grapical.target

    •runlever6.target -> reboot.target

    八、设定启动级别

    • systemctl set-default + 启动级别

    • /etc/systemd/system/default.target

  • 相关阅读:
    最有影响力的计算机视觉会议及期刊论文
    计算机视觉与图像处理方面的顶级期刊
    总结一下国内搞机器学习和数据挖掘的大牛
    戴尔▪卡耐基《人性的弱点》阅读笔记(1)
    Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)
    自控力极差的人如何自救?
    非技术人员也能看懂云计算,大数据,人工智能
    保罗·多兰《设计幸福》阅读笔记
    神经网络浅讲:从神经元到深度学习----以简单循序的方式带你聊聊深度学习
    从机器学习谈起----极好的一篇机器学习全貌入门文章
  • 原文地址:https://www.cnblogs.com/yangying2017/p/6695431.html
Copyright © 2011-2022 走看看