1. 程式人生 > 實用技巧 >03-許可權管理\rpm軟體包管理\yum工具

03-許可權管理\rpm軟體包管理\yum工具

一、什麼是許可權

# 許可權主要用來約束使用者能對系統所做的操作

二、為什麼要使用許可權

# 因為系統中不可能只存在一個root使用者,一定會有多個使用者,
# 為了保護每個登陸使用者的隱私和工作環境,所以就有了許可權。

三、許可權與使用者之間的關係

# 1.系統為每個檔案定義了三種身份,  屬主, 屬組, 其他人
# 2.每一種身份分別對應了三種許可權, r 讀  w 寫  x 執行
"""
[root@kxq-pythonedu ~]# ll useradd_2.sh 
-rw-r-----. 1 adm root 618 9月  28 11:27 useradd_2.sh

三個使用者訪問檔案:
adm:                 按照檔案的所屬主身份進行訪問,而所屬主定義的身份為  rw-  讀寫許可權
kxq(root):           按照檔案的所屬組身份進行訪問,而所屬組定義的身份為  r--  只有讀許可權 
gougou:              按照檔案的其他人身份進行訪問,而其他人定義的身份為  ---  無許可權
"""

1、許可權中的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組擁有讀寫許可權 其他人 只讀許可權


Q1: alice對file1檔案擁有什麼許可權? rwx 讀寫執行
Q2: jack 對 file1.txt 檔案有什麼許可權? 前提:jack 屬於 hr 組 rw 讀寫
Q3: tom 對 file1.txt 檔案有什麼許可權?    r--只讀
"""

2、為什麼要修改許可權

"""
[root@kxq-pythonedu ~]# chmod 640 useradd_2.sh
# 屬主: rw-    讀寫執行   6
# 屬組: r-x        讀和執行   5
# 其他: r-x        讀和執行   5
[root@kxq-pythonedu ~]# chmod 755 useradd_2.sh             
[root@kxq-pythonedu ~]# ll useradd_2.sh 
-rwxr-xr-x. 1 adm root 618 9月  28 11:27 useradd_2.sh

"""

3、變更一個檔案屬主和陣列

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

demo示例:

1、安裝php環境

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

2、如果不調整許可權,前臺會提示寫入成功,但實際會失敗

tail -f /var/log/httpd/error_log

3、變更寫入目錄的屬主和屬組 ( 不要修改為 777 )

3.1、檢查程序執行的使用者身份是什麼: apache

[root@kxq-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程序

3.2、檢查程序要寫入的目錄是什麼許可權:

[root@kxq-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.3、調整/var/www/html 屬主和屬組

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

3.4、最後驗證程式是否能正常上傳檔案至/var/www/html/中

[root@kxq-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@kxq-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包
"""

查詢命令:

"""
[root@kxq-pythonedu ~]# rpm -q httpd               #查詢安裝或者沒有安裝
[root@kxq-pythonedu ~]# rpm -qa                    #顯示系統中所有已安裝的軟體包
[root@kxq-pythonedu ~]# rpm -qa | grep httpd       #查詢所有系統已安裝的軟體包,過濾指定的包名
[root@kxq-pythonedu ~]# rpm -qc httpd              #僅檢視httpd這個包的配置在哪裡
[root@kxq-pythonedu ~]# rpm -ql httpd              #檢視httpd這個包所有的檔案儲存的路徑
"""

痛點: rpm工具還是無法解決依賴間關係, 所有就有了 yum工具.

五、yum工具

1、什麼是yum

# yum包管理工具,主要用安裝軟體, 通過網際網路安裝軟體.並能解決依賴間關係.

1、什麼是源,什麼是倉庫

"""
源:     儲存在伺服器中的一個repo檔案, 檔案中儲存的是倉庫的地址
倉庫:   一推軟體包的集合,源如果指向這個倉庫,那麼伺服器就可以直接獲取該倉庫中的軟體包
"""

2、如何配置源

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

3、使用yum

3.1、安裝

# [root@kxq-pythonedu ~]# yum install samba -y 

3.2、更新

# [root@kxq-pythonedu ~]# yum update samba -y 

3.3、解除安裝

# [root@kxq-pythonedu ~]# yum remove samba -y 

3.4、查詢

# 知道命令,但是不知道安裝哪個軟體包,  
# 知道配置檔案的路徑,但是不知道是哪個軟體包生成出來的.

[root@kxq-pythonedu ~]# yum provides ifconfig
[root@kxq-pythonedu ~]# yum provides /etc/my.cnf

3.5、清理快取

# [root@kxq-pythonedu ~]# yum clean all        #清理所有的快取
# [root@kxq-pythonedu ~]# yum makecache        #生成快取
# [root@kxq-pythonedu ~]# yum repolist         #檢視倉庫中的軟體包