day61:Linux:許可權管理&rpm軟體包管理&yum工具

Poke發表於2020-09-29

目錄

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            #檢視倉庫中的軟體包

 

相關文章