• day61:Linux:权限管理&rpm软件包管理&yum工具


    目录

    1.权限管理

    2.rpm软件包管理

    3.yum工具(联网)

    权限管理

    1.什么是权限?

    权限主要用来约束用户能对系统所做的操作

    2.为什么要使用权限?

    因为系统中不可能只存在一个root用户,一定会有多个用户,为了保护每个登陆用户的隐私和工作环境,所以就有了权限。

    3.权限和用户之间的关系?

    1.系统为每个文件定义了三种身份,  属主, 属组, 其他人

    2.每一种身份分别对应了三种权限, r 读  w 写  x 执行

    [root@oldboy-pythonedu ~]# ll useradd_2.sh 
    rw-r-----. 1 adm root 618 9月  28 11:27 useradd_2.sh

    三个用户访问文件:

      adm: 按照文件的所属主身份进行访问,而所属主定义的身份为 rw- 读写权限

      oldboy(root): 按照文件的所属组身份进行访问,而所属组定义的身份为 r-- 只有读权限

      gougou: 按照文件的其他人身份进行访问,而其他人定义的身份为 --- 无权限

    4.权限中的rwx是干什么的?

       字母         含义     对应权限
    r(read)       读取权限      4
    w(write)     写入权限     2
    x(execute)  执行权限    1
    -(没有权限) 没有权限   0

    644 rw-r--r--

    755 rwxr-xr-x

    文件示例: rwxrw-r-- alice hr file1.txt

    file1.txt文件属于alice所用于, 属于hr组成员拥有,

    alice拥有 rwx 读写执行

    hr组拥有读写权限

    其他人 只读权限

    5.为什么要修改权限?

    进程运行需要一个用户,  而进程在完成上传的操作时, 需要调用对应的用户来执行,  能不能执行成功, 取决于该用户对该文件是否有权限

    6.怎么修改权限:chmod

    [root@oldboy-pythonedu ~]# chmod 640 useradd_2.sh
    
    # 属主: rwx    读写执行   7
    # 属组: r-x        读和执行   5
    # 其他: r-x        读和执行   5
    [root@oldboy-pythonedu ~]# chmod 755 useradd_2.sh     
            
    [root@oldboy-pythonedu ~]# ll useradd_2.sh 
    -rwxr-xr-x. 1 adm root 618 9月  28 11:27 useradd_2.sh

    7.变更一个文件属主和属组:chown

    [root@oldboy-pythonedu ~]# chown -R www.www web-demo/

    8.通过一个文件文件上传和下载的demo?

    1.安装PHP环境

    [root@oldboy-pythonedu ~]# setenforce 0    # 关闭selinux
    [root@oldboy-pythonedu ~]# systemctl stop firewalld    # 关闭firewalld防火墙
    [root@oldboy-pythonedu ~]# yum install httpd php -y
    [root@oldboy-pythonedu ~]# systemctl start httpd
    [root@oldboy-pythonedu ~]# wget http://fj.xuliangwei.com/public/kaoshi.zip
    [root@oldboy-pythonedu ~]# unzip kaoshi.zip -d /var/www/html/

    2.如果不调整权限,前台会提示写入成功,但实际会失败

    [root@oldboy-pythonedu ~]# tail -f /var/log/httpd/error_log

    3.变更写入目录的属主和属组   ( 不要修改为 777 )

    1.检查进程运行的用户身份是什么:  apache

    [root@oldboy-pythonedu ~]# ps -ef |grep httpd | head -2
     root      24130      1  0 10:13 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND        #Master进程
     apache    24132  24130  0 10:13 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND        #Worker进程

    2.检查进程要写入的目录是什么权限

    [root@oldboy-pythonedu ~]# ll -d /var/www/html/
    drwxr-xr-x. 2 root root 77 9月  29 10:21 /var/www/html/

    总结: 写不进去的原因:

    进程会调用apache用户往 /var/www/html目录写, 而apache用户对/var/www/html目录仅拥有 读和执行,所以会失败.

    3.调整/var/www/html 属主和属组

    [root@oldboy-pythonedu ~]# chown apache.apache /var/www/html/
    [root@oldboy-pythonedu ~]# ll -d /var/www/html/
    drwxr-xr-x. 2 apache apache 77 9月  29 10:21 /var/www/html/

    4.最后验证程序是否能正常上传文件至/var/www/html/中

    [root@oldboy-pythonedu ~]# ll /var/www/html/2020-09-29/ -d
    drwxr-xr-x. 2 apache apache 25 9月  29 10:27 /var/www/html/2020-09-29/
                
    [root@oldboy-pythonedu ~]# ll /var/www/html/2020-09-29/
    -rw-r--r--. 1 apache apache 438 9月  29 10:27 2_oldxu.txt

    rpm软件包管理

    1.什么是rpm?

    redhat package mananger 红帽包管理工具, xxx.rpm  主要用来安装软件包.

      1.rpm包 可以通过rpm工具 yum工具管理

      2.二进制包 解压即用

      3.源码包 编译 ---> 二进制可执行文件

    rpm工具安装会牵扯到依赖关系:

    A包 -> B包 --> C包

           --> D包 --> E包

                                  --> F包
                                          ....................................

    2.rpm相关操作

    '''安装'''
    [root@oldboy-pythonedu ~]# rpm -ivh https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm
            
    '''卸载'''
    [root@oldboy-pythonedu ~]# rpm -e vsftpd
    
    '''升级''':  Uvh
    [root@oldboy-pythonedu ~]# rpm -ivh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/mongodb-org-shell-3.0.0-1.el7.x86_64.rpm
            
    '''查询结果'''
    [root@oldboy-pythonedu ~]# rpm -qa  | grep mongodb
    mongodb-org-shell-3.0.0-1.el7.x86_64
    
    '''升级版本'''
    [root@oldboy-pythonedu ~]# rpm -Uvh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.2/x86_64/RPMS/mongodb-org-shell-3.2.0-1.el7.x86_64.rpm
    
    '''再次检查'''
    [root@oldboy-pythonedu ~]# rpm -qa | grep mongodb
    mongodb-org-shell-3.2.0-1.el7.x86_64
            
    '''查询命令''':
    [root@oldboy-pythonedu ~]# rpm -q httpd    # 查询安装或者没有安装
    [root@oldboy-pythonedu ~]# rpm -qa    # 显示系统中所有已安装的软件包
    [root@oldboy-pythonedu ~]# rpm -qa | grep httpd    # 查询所有系统已安装的软件包,过滤指定的包名
    [root@oldboy-pythonedu ~]# rpm -qc httpd # 仅查看httpd这个包的配置在哪里
    [root@oldboy-pythonedu ~]# rpm -ql httpd # 查看httpd这个包所有的文件存储的路径

    3.rpm的痛点

    rpm工具还是无法解决依赖间关系, 所有就有了yum工具.

    yum工具(联网)

    1.什么是yum

    rpm包管理工具,主要用安装软件, 通过互联网安装软件.并能解决依赖间关系

    2.什么是源,什么是仓库?

    源: 存储在服务器中的一个repo文件, 文件中存储的是仓库的地址

    仓库: 一推软件包的集合,源如果指向这个仓库,那么服务器就可以直接获取该仓库中的软件包

    3.如何配置源  | 仓库 ?

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    4.使用yum

    '''安装''' 
    [root@oldboy-pythonedu ~]# yum install samba -y 
                
    '''更新'''
    [root@oldboy-pythonedu ~]# yum update samba -y 
                
    '''卸载'''
    [root@oldboy-pythonedu ~]# yum remove samba -y 
            
    '''查询'''
    知道命令,但是不知道安装哪个软件包,  
    知道配置文件的路径,但是不知道是哪个软件包生成出来的.
                
    [root@oldboy-pythonedu ~]# yum provides ifconfig
    [root@oldboy-pythonedu ~]# yum provides /etc/my.cnf
    
    '''清理缓存''':
    [root@oldboy-pythonedu ~]# yum clean all        #清理所有的缓存
    [root@oldboy-pythonedu ~]# yum makecache        #生成缓存
    [root@oldboy-pythonedu ~]# yum repolist            #查看仓库中的软件包
  • 相关阅读:
    杭电1827
    hdu 3118
    poj 2060
    hdu 2236
    poj 2226
    poj 1719
    poj 1466
    poj 3160
    骑士飞行棋笔记
    基础测试学习笔记
  • 原文地址:https://www.cnblogs.com/libolun/p/13751571.html
Copyright © 2020-2023  润新知