目錄
許可權管理
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 #檢視倉庫中的軟體包