信安学习-day34
安裝及管理應用程序
一、Linux 應用程序基礎
1.Linux命令與應用程序關系
-
文件位置
-
系統命令:一般在/bin和/sbin目錄中,或為Shell內部指令
-
應用程序:通常在/usr/bin和/usr/sbin目錄中
-
-
主要用途
-
系統命令:完成對系統的基本管理工作,例如IP配置工具
-
應用程序:完成相對獨立的其他輔助任務,例如網頁瀏覽器
-
-
適用環境
-
系統命令:一般只在字符操作界面中運行
-
應用程序:根據實際需要,有些程序可在圖形界面中運行
-
-
運行格式
-
系統命令:一般包括命令字、命令選項和命令參數
-
應用程序:通常沒有固定的執行格式
-
2.Linux應用程序的組成
-
典型應用程序的目錄結構
| 普通執行程序文件 | /usr/bin |
| 服務器執行程序文件和管理程序文件 | /usr/sbin |
| 應用程序配置文件 | /etc |
| 日志文件 | /var/log |
| 應用程序文檔文件 | /usr/share/doc |
| 應用程序手冊頁文件 | /usr/share/man |
3.軟件包封裝類型
| ! rpm軟件包 | 擴展名為“.rpm” |
| deb軟件包 | 擴展名為“.deb” |
| ! 源代碼軟件包 | 一般為“.tar.gz”、“.tar.bz2”等格式的壓縮包 包含程序的原始代碼 |
| 綠色免安裝的軟件包 | 在壓縮包內提供已編譯好的執行程序文件解開壓縮包后的文件即可直接使用 |
二、使用RPM包管理工具
1.RPM概述
①RPM 包管理工具
-
RPM Package Manager
-
由 Red Hat 公司提出,被眾多 Linux 發行版所采用
-
建立統一的數據庫文件
-
詳細記錄軟件包安裝、卸載等變化信息
-
自動分析軟件包依賴關系
-
-
RPM軟件包
-
軟件素材參考:rpm.org - Home
-
一般命名格式:
-
bash-4.1.2-15.el6_4.x86_64.rpm
-
bash:軟件名稱
-
4.1.2:版本號
-
15.el6_4:發布次數
-
x86_64:硬件平臺
-
rpm:擴展名,表示適用于64位系統
-
-
-
2.RPM包管理命令——rpm
①RPM包管理 rpm 命令
-
主要功能
-
查詢、驗證RPM軟件包信息
-
安裝、升級、卸載RPM軟件包
-
維護RPM數據庫信息
-
-
執行“man rpm”命令可獲得關于 rpm 命令的詳細幫助信息
②查詢RPM軟件包信息
-
查詢已安裝的 RPM 軟件信息
-
rpm -q[子選項] [軟件名]
-
常用選項
-
-qa、-qi、 -ql、 -qf、-qc、-qd
-
!-qa:查看系統中已安裝的所有RPM軟件包列表
-
!-qi:查看指定軟件的詳細信息
-
!-ql:查詢指定軟件包所安裝的目錄、文件列表
-
-qf:查詢文件或目錄屬于哪個RPM軟件
-
-qc:僅顯示指定軟件包安裝的配置文件
-
-qd:僅顯示指定軟件包安裝的文檔文件
-
-
-
-
查詢未安裝的 RPM 軟件包文件中信息
-
rpm - qp[子選項] RPM包文件
-
常用選項
-
-qpi、-qpl、-qpc、-qpd
-
!-qpi:通過.rpm包文件查看該軟件的詳細信息
-
!-qpl:查看.rpm安裝包內所包含的目錄、文件列表
-
-qpc:查看.rpm安裝包內包含的配置文件列表
-
-qpd:查看.rpm安裝包內包含的文檔文件列表
-
-
-
-
使用rpm 命令只能查詢通過 RPM方式安裝的軟件包信息用,其他途徑安裝到系統中的軟件包,rpm 命令將無法獲取相關信息
③安裝、升級、卸載 RPM 軟件包
-
安裝或升級RPM軟件
-
rpm [選項] RPM包文件 ...
-
常用選項
-
-i 、 -h、-v 、 -U、 -F、
-
!-i:安裝一個新的 rpm 軟件包
-
-h:以“#”號顯示安裝的進度
-
-v:顯示安裝過程中的詳細信息
-
!-U:升級某個 rpm 軟件,若原本未裝,則進行安裝
-
!-F:升級某個 rpm 軟件,若原本未裝,則放棄安裝
-
-
-
-
卸載指定的RPM軟件
-
rpm -e 軟件名
-
-
輔助選項
-
--force、--nodeps
-
--force:強制安裝所指定的rpm軟件包
-
--nodeps:安裝、升級或卸載軟件時,忽略依賴關系
-
-
④維護RPM數據庫
-
重建RPM數據庫
-
[root@localhost ~]# rpm --rebuilddb
-
或
-
[root@localhost ~]# rpm --initdb
-
-
導入驗證公鑰
-
[root@localhost ~]# rpm --import /media/cdrom/RPM-GPG-KEY-redhat-release
-
-
RPM數據庫:用于記錄在Linux系統中安裝、卸載、升級應用程序的相關信息,由RPM包管理系統自動完成維護,一般不需要用戶干預
-
當RPM數據庫發生損壞(誤刪文件、非法關機、病毒破壞等導致),且Linux系統無法自動完成修復時,將導致無法使用rpm命令正常地安裝、卸載及查詢軟件包,這時可以使用—rebuildbd或—initdb重建RPM數據庫
-
在Linux/Unix應用領域,相當一部分軟件廠商會對發布的軟件包進行數字簽名,以確保軟件的完整性、合法性。對于用戶來說,可以利用軟件官方提供的公鑰文件,自動對下載的軟件包進行驗證,如果在安裝軟件時出現驗證失敗的提示,則表示該軟件包可能已經被非法篡改
⑤解決軟件包依賴關系方法
-
安裝有依賴關系的多個軟件
-
卸載有依賴關系的多個軟件
-
忽略依賴關系
-
結合“--nodeps”選項,但可能導致軟件異常
-
-
演示vim-common和vim-enhanced軟件包的卸載、安裝過程,參考步驟如下:
-
1)首先正常卸載vim-common,應提示被vim-enhanced所依賴而失敗
-
2)因此正常卸載順序:先卸載vim-enhanced,然后再卸載vim-common
-
3)然后從光盤中重新安裝這兩個軟件包,首先安裝vim-enhanced,應提示需要先安裝vim-common
-
4)因此正常安裝順序:先安裝vim-common,然后再安裝vim-enhanced,演示時也可以在一條rpm命令中同時指定這兩個文件
-
-
—— 提醒注意:如果需要同時安裝相互依賴的數十個.rpm軟件包,可以結合Shell通配符“*”同時指定這些文件作為參數
三、從源代碼編譯安裝程序
1.源代碼編譯安裝程序
①源代碼編譯概述
-
使用源代碼安裝軟件的優點
-
獲得最新的軟件版本,及時修復bug
-
根據用戶需要,靈活定制軟件功能
-
-
應用場合舉例
-
安裝較新版本的應用程序時
-
當前安裝的程序無法滿足需要時
-
需要為應用程序添加新的功能時
-
2.編譯安裝的基本過程
①編譯安裝源代碼包
-
Tarball 封包
-
.tar.gz 和 .tar.bz2 格式居多
-
軟件素材參考:http://sourceforge.net
-
-
完整性校驗
-
md5sum校驗工具
-
[root@localhost ~]# md5sum axel-1.0a.tar.gz
-
2d94c0b36b374834567f1fcec5f89119 axel-1.0a.tar.gz
-
2d---119:MD5校驗和
-
-
-
確認源代碼編譯環境
-
需安裝支持 C/C++程序語言的編譯器,如:
-
gcc-4.4.7-4.el6、gcc-c++-4.4.7-4.el6
-
make-3.81-20.el6.……
-
-
-
對于下載回來的軟件包文件,如果MD5校驗和與官方提供的不一致,則說明該軟件包在網絡傳輸過程中可能被非法改動過
-
對于校驗和不一致的軟件包,應盡量不要使用,以免帶來病毒、木馬等不安全因素
②編譯安裝過程
Linux賬號和權限管理
一、管理用戶和組賬號
1.用戶和組賬號概述
①用戶和組賬號概述
-
Linux基于用戶身份對資源訪問進行控制
-
用戶帳號
-
超級用戶 //root
-
類似于Windows系統中的Administrator用戶,非執行管理任務時不建議使用root用戶登錄系統
-
root用戶的UID的固定值為0、root組帳號的GID號為固定值0
-
-
普通用戶 //自己新建的用戶都屬于普通用戶
-
一般只在用戶自己的宿主目錄中有完全權限
-
-
程序用戶 //權限最低,一般只能操作程序相關聯的文件
-
用于維持系統或某個程序的正常運行,一般不允許登錄到系統。例如:bin、daemon、ftp、mail等
-
-
-
組帳號
-
基本組(私有組)
-
附加組(公共組)
-
-
-
UID和GID
-
UID(User IDentity,用戶標識號)
-
GID(Group IDentify,組標識號)
-
1~499的UID、GID默認保留給程序用戶使用,普通用戶/組使用的UID、GID號在500~60000之間
-
2.用戶賬號管理
①用戶賬號文件 /etc/passwd
-
保存用戶名稱、宿主目錄、登錄Shell等基本信息
-
文件位置:/etc/passwd
-
每一行對應一個用戶的帳號記錄
-
②用戶賬號文件 /etc/shadow
-
保存用戶的密碼、賬號有效期等信息
-
文件位置:/etc/shadow
-
每一行對應一個用戶的密碼記錄
-
-
字段1:用戶帳號的名稱
-
字段2:加密的密碼字串信息
-
字段3:上次修改密碼的時間
-
字段4:密碼的最短有效天數,默認值為0
-
字段5:密碼的最長有效天數,默認值為99999
-
字段6:提前多少天警告用戶口令將過期,默認值為7
-
字段7:在密碼過期之后多少天禁用此用戶
-
字段8:帳號失效時間,默認值為空
-
字段9:保留字段(未使用)
-
默認只有root用戶能夠讀取文件中的內容,并且不允許root直接編輯該文件中的內容
-
上次修改密碼的時間,表示從1970年01月01日(可理解為Unix系統的誕生日)算起到最近一次修改密碼時間隔的天數
-
③添加用戶賬號
-
useradd命令
-
useradd [選項]... 用戶名
-
-
常用命令選項
-
-u:指定 UID 標記號
-
-d:指定宿主目錄,缺省為 /home/用戶名
-
-e:指定帳號失效時間
-
-g:指定用戶的基本組名(或GID號)
-
-G:指定用戶的附加組名(或GID號)
-
-M:不為用戶建立并初始化宿主目錄
-
-s:指定用戶的登錄Shell
-
-
用戶添加
-
指定mike的基本組為mike,并加入到ftpuser組
-
指定家目錄為/ftphome/mike
-
不允許mike通過本地登錄服務器
-
④設置/更改用戶口令 passwd
-
passwd命令
-
passwd [選項]... 用戶名
-
-
常用命令選項
-
-d:清空用戶的密碼,使之無需密碼即可登錄
-
-l:鎖定用戶帳號
-
-S:查看用戶帳號的狀態(是否被鎖定)
-
-u:解鎖用戶帳號/centos 7不需要修改密碼
-
當解鎖后需要重新修改密碼或者清除密碼
-
-
-
不指定用戶名時,修改當前賬號的密碼
⑤修改用戶賬號的屬性 usermod
-
usermod命令/主要修改已存在用戶的信息
-
usermod [選項]... 用戶名
-
-
常用命令選項
-
-l:更改用戶帳號的登錄名稱
-
-L:鎖定用戶賬戶
-
-U:解鎖用戶賬戶
-
以下選項與useradd命令中的含義相同
-
-u、-d、-e、-g、-G、-s
-
-
-
usermod有兩個選項“-L”、“-U”,分別用于鎖定、解鎖用戶帳號,這兩個選項與passwd命令的“-l”、“-u”選項作用基本相同,只不過大小寫存在區別
⑥刪除用戶賬號 userdel
-
userdel命令
-
userdel [-r] 用戶名
-
-
添加 -r 選項時,表示連用戶的宿主目錄一并刪除
⑦用戶賬號的初始配置文件
-
文件來源
-
新建用戶帳號時,從 /etc/skel 目錄中復制而來
-
-
主要的用戶初始配置文件
-
~/.bash_profile
-
~/.bashrc
-
~/.bash_logout
-
/etc/profile
-
/etc/bashrc
-
-
/etc/profile:此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.
-
/etc/bashrc:為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取.
-
~/.bash_profile:每個用戶都可使用該文件輸入專用于自己使用的shell信息,當用戶登錄時,該
-
文件僅僅執行一次!默認情況下,他設置一些環境變量,執行用戶的.bashrc文件.
-
~/.bashrc:該文件包含專用于你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該文件被讀取.
-
~/.bash_logout:當每次退出系統(退出bash shell)時,執行該文件.
-
另外,/etc/profile中設定的變量(全局)的可以作用于任何用戶,而~/.bashrc等中設定的變量(局部)只能繼承/etc/profile中的變量,他們是"父子"關系.
-
~/.bash_profile 是交互式、login 方式進入 bash 運行的
-
~/.bashrc 是交互式 non-login 方式進入 bash 運行的
-
通常二者設置大致相同,所以通常前者會調用后者。
3.組賬號管理
①組賬號文件
-
與用戶帳號文件相類似
-
/etc/group:保存組帳號基本信息
-
/etc/gshadow:保存組帳號的密碼信息
-
②添加組賬號 groupadd
-
groupadd命令
-
groupadd [-g GID] 組賬號名
-
③添加刪除組成員 gpasswd
-
gpasswd命令
-
設置組帳號密碼(極少用)、添加/刪除組成員
-
gpasswd [選項]... 組帳號名
-
-
-
常用命令選項
-
-a:向組內添加一個用戶
-
-d:從組內刪除一個用戶成員
-
-M:定義組成員列表,以逗號分隔
-
④刪除組賬號 groupdel
-
groupdel命令
-
groupdel 組帳號名
-
-
注意
-
任何用戶的基本組都不可以直接刪除
-
刪除組帳號后,從/etc/group文件中將查不到相應的記錄
-
4.查詢賬號信息
①查詢賬號信息
-
id命令
-
查詢用戶身份標識
-
id [用戶名]
-
-
-
groups命令
-
查詢用戶所屬的組
-
groups [用戶名]
-
-
-
finger命令
-
查詢用戶帳號的詳細信息
-
finger [用戶名]
-
-
-
users、w 、who命令
-
查詢已登錄到主機的用戶信息
-
二、管理目錄和文件的屬性
1.查看目錄或文件的屬性
①文件/目錄的權限和歸屬
-
訪問權限
-
讀取 r:允許查看文件內容、顯示目錄列表
-
寫入 w:允許修改文件內容,允許在目錄新建、移動、刪除文件或子目錄
-
可執行 x:允許運行程序、切換目錄
-
-
歸屬(所有權)
-
屬主:擁有該文件或目錄的用戶帳號
-
屬組:擁有該文件或目錄的組帳號
-
②查看文件/目錄的權限和歸屬
“-rw-r—r--”部分的第一個字符表示文件類型,可以是d(目錄)、b(塊設備文件)、c(字符設備文件),減號“-”(普通文件)、字母“l”(鏈接文件)等
其余部分指定了文件的訪問權限
在表示屬主、屬組內用戶或其他用戶對該文件的訪問權限時,主要使用了四種不同的權限字符: r 可讀 ;w 可寫 ;x 可執行 ;- 無權限
r、w、x、- 權限字符還可分別表示為8進制數字4、2、1、0
③文件類型
-
p 表示命名管道文件
-
d 表示目錄文件
-
l 表示符號連接文件
-
- 表示普通文件
-
s 表示socket套接口文件,比如我們啟用mysql時,會產生一個mysql.sock文件
-
c 表示字符設備文件,例: 虛擬控制臺 或tty0
-
b 表示塊設備文件,例: sda, cdrom
2.設置目錄或文件的權限
①設置目錄或文件的權限
-
chmod命令
-
常用命令選項
-
-R:遞歸修改指定目錄下所有子項的權限
-
②設置文件和目錄的歸屬chown
-
chown命令
-
常用命令選項
-
-R:遞歸修改指定目錄下所有文件、子目錄的歸屬
-
-
需要設置文件或者目錄的歸屬時,可以通過chown、chgrp命令進行
-
chown命令既可以修改屬主,也可以修改屬組,而chgrp命令只用于修改屬組信息(因此并不常用)
③設置文件和目錄默認權限 umask
-
umask命令
-
umask 000
-
umask 777
-
-
命令作用
-
定義新創建文件及目錄的默認權限,通過該命令實現定義權限補碼
-
注意:文件權限最大666,目錄權限最大777
-
總結
以上是生活随笔為你收集整理的信安学习-day34的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenMLDB新手入门开源介绍
- 下一篇: GL-11、GL-12、GL-15过流继