一.su切換用戶權(quán)限提升
su 直接默認切換到root用戶 (只賦予權(quán)限,不改變環(huán)境)
su - root 更改環(huán)境變量為root用戶的
su -m root 保留環(huán)境變量不變
二、sudo命令
由于su對轉(zhuǎn)換到root后,權(quán)限的無限制性,所以su并不能擔(dān)任多個管理員所管理的系統(tǒng)。
假如用su來轉(zhuǎn)換到root來管理系統(tǒng),也不能明確哪些工作是由哪個管理員進行的操作。
特別是對于服務(wù)器的管理有多人參加和管理時,最好是針對每個管理員的技術(shù)特長和管理范圍,
并且有針對性的下放給權(quán)限,并且約定其使用哪些工具來完成和其相關(guān)的工作,這時我們就必須要用到sudo。
通過sudo,我們能把某些root有針對性的下放,并且無需普通用戶知道root密碼,
所以sudo相對于權(quán)限無限制性的su來說,還是比較安全的,所以sudo也能被稱為受限制的su;
另外sudo是需要授予許可的,所以也被稱為授權(quán)許可的su;
sudo執(zhí)行命令的流程是當(dāng)前用戶轉(zhuǎn)換到root,然后以root身份執(zhí)行命令,執(zhí)行完成后,
直接退回到當(dāng)前用戶;而這些的前提是要通過sudo的配置,文檔/etc/sudoers來進行授權(quán);
配置sudo命令:賦予用戶root權(quán)限
1.首先切換為root用戶
su root
2.修改sudoers文件
vim /etc/sudoers
3.找到權(quán)限設(shè)置如下
root ALL=(ALL) ALL
若要給hyxy用戶增加sodu權(quán)限,需要在下面加一句話
crx ALL=(ALL) ALL
保存后退出root用戶就有sudo權(quán)限,當(dāng)?shù)谝淮问褂胹udo命令時,會向你要你賦予權(quán)限的用戶的密碼
若執(zhí)行sudo命令的用戶沒有sodu權(quán)限 ,則會報以下錯誤
violet is not in the sudoers file. Thtis incident will be reported
注意:sudo 只有在執(zhí)行這一條命令時,才會擁有管理員的身份,一旦執(zhí)行完,就會恢復(fù)普通用戶身份。
但普通用戶要使用sudo特權(quán)前,要把自己的加入到/etc/sudoers文件下面
ln命令
1.功能說明
ln命令用來在文件或目錄之間創(chuàng)建鏈接
Linux下的鏈接有兩種,一種是硬鏈接(Hard Link),另一種是符號鏈接(Symbolic Link),
默認情況下ln命令產(chǎn)生的是硬鏈接。
1)硬鏈接 :是指通過文件的inode來進行鏈接,在Linux的文件系統(tǒng)中,保存在磁盤的所有類型的文件都會分配一個
編號,這個編號稱為inode號(Inode Index),多個文件指向同一個inode在Linux系統(tǒng)中是允許的,這就是所謂的硬鏈接。
硬鏈接的作用是允許一個文件擁有多個有效的路徑名,這樣用戶就可以對一些重要文件建立硬鏈接,以防止誤刪除操作。
因為對應(yīng)該文件的inode有一個以上鏈接被刪除后,文件的數(shù)據(jù)塊及目錄的鏈接才會釋放,也就是說,此時文件才
會被真正刪除。
一般文件的硬鏈接數(shù)是1;文件夾或目錄的硬鏈接數(shù)是有多少種方式可鏈接
(絕對路徑;相對路徑;cd …等任何可以訪問到的方式)
2)符號鏈接:也叫軟鏈接,軟鏈接類似于Windows中的快捷方式,因此軟鏈接是一個指向真正的文件或者目錄位置的符號鏈接。
ln的命令格式如下:
ln [選項] 源文件 目標(biāo)鏈接名
[選項及其說明]
選項 說明
-f 如果在目標(biāo)位置存在與鏈接名相同的文件,這個文件將被刪除
-s 進行軟鏈接
-d 允許系統(tǒng)盤管理員硬鏈接自己的目錄
-b 對將在鏈接時會被覆蓋或者刪除的文件進行備份
文件硬鏈接舉例1:
將/etc/inittab文件進行硬鏈接到/opt/backup目錄下,此時/opt/backup下就生成一個inittab文件。
可以看到,兩個文件并沒有什么不同
[crx@master vitest]$ ll /etc/inittab
-rw-r–r--. 1 root root 884 Aug 26 23:59 /etc/inittab
[root@master vitest]# ln /etc/inittab /opt/backup
[root@master vitest]# ll /opt/backup
-rw-r–r--. 2 root root 884 Aug 26 23:59 /opt/backup
[root@master vitest]# ll /etc/inittab
-rw-r–r--. 2 root root 884 Aug 26 23:59 /etc/inittab
文件夾硬鏈接舉例2:
[crx@master Desktop]$ mkdir aaa
[crx@master Desktop]$ ll
drwxrwxr-x. 2 crx crx 4096 Oct 27 08:19 aaa
[crx@master Desktop]$ cd aaa/
[crx@master aaa]$ cd …/aaa/
硬鏈接舉例3:
[crx@master Desktop]$ touch aa1.txt aaa.txt
[crx@master Desktop]$ ls
aa1.txt aaa.txt
如果存同名文件,硬鏈接失敗
[crx@master Desktop]$ ln aa1.txt aaa.txt
ln: creating hard link `aaa.txt’: File exists
[crx@master Desktop]$ ls
aa1.txt aaa.txt
[crx@master Desktop]$ ll
total 0
-rw-rw-r–. 1 crx crx 0 Nov 7 16:18 aa1.txt
-rw-rw-r–. 1 crx crx 0 Nov 7 16:18 aaa.txt
[crx@master Desktop]$ echo “hello world” >> aaa.txt
[crx@master Desktop]$ ls
aa1.txt aaa.txt
[crx@master Desktop]$ ll
total 4
-rw-rw-r–. 1 crx crx 0 Nov 7 16:18 aa1.txt
-rw-rw-r–. 1 crx crx 12 Nov 7 16:21 aaa.txt
【-b】選項先備份aaa.txt文件,然后再把aa1.txt硬鏈接到aaa.txt
下面的aaa.txt~–>原aaa.txt就是"-b"硬鏈接產(chǎn)生的文件12字節(jié)
[crx@master Desktop]$ ln -b aa1.txt aaa.txt(aa1.txt需已存在)
[crx@master Desktop]$ ll
total 4
-rw-rw-r–. 2 crx crx 0 Nov 7 16:18 aa1.txt
-rw-rw-r–. 2 crx crx 0 Nov 7 16:18 aaa.txt
-rw-rw-r–. 1 crx crx 12 Nov 7 16:21 aaa.txt~
恢復(fù)狀態(tài)
[crx@master Desktop]$ ll
-rw-rw-r–. 1 crx crx 0 Nov 7 16:18 aa1.txt
-rw-rw-r–. 1 crx crx 12 Nov 7 16:21 aaa.txt
【-f】會刪除原aaa.txt文件
total 0
-rw-rw-r–. 2 crx crx 0 Nov 7 16:18 aa1.txt
-rw-rw-r–. 2 crx crx 0 Nov 7 16:18 aaa.txt
軟鏈接:
ln -s 被鏈接的源文件 鏈接文件
建立文件的軟鏈接,類似于Winodws下的快捷方式(創(chuàng)建軟鏈接要使用絕對路徑 移動后有效)
[crx@master jdk]$ ls -s /home/crx/soft/jdk jdk
刪除軟鏈接:
正確的刪除方式(刪除軟鏈接,但不刪除實際數(shù)據(jù))
rm -rf jdk
錯誤的刪除方式
rm -rf jdk/ (這樣就會把原來/home/crx/soft/jdk下的內(nèi)容刪除,軟連接沒有刪除)
打包壓縮
打包壓縮是日常工作中備份文件的一種方式
在不同操作系統(tǒng)中,常用的打包壓縮方式是不同的
1)windows常用rar
2) Mac 常用zip
3) Linux常用 tar.gz
———————————————————————
tar命令
1.功能說明
tar 是Linux下經(jīng)常使用的歸檔工具,對文件或者目錄進行打包歸檔,歸檔成一個目錄,但是并不進行壓縮。
格式:
tar [主選項+輔助選項] 文件或目錄
主選項 說 明
-c 新建文件
-r 把要歸檔的文件追加到檔案文件的末尾
-t 列出檔案文件中已經(jīng)歸檔的文件列表
-x 從打包的檔案文件中還原出文件
-u 更新檔案文件,用新建文件替換檔案中的原始文件
輔助選項 說 明
-z 調(diào)用gzip命令在文件打包的過程中壓縮/解壓文件
-w 在還原文件時,把所有文件的修改時間設(shè)定為現(xiàn)在時間
-j 調(diào)用bzip2命令在文件打包的過程中壓縮/解壓文件
-Z 調(diào)用compress命令過渡檔案
-f “-f"選項后面緊跟檔案文件的存儲設(shè)備,默認是磁盤,需要指定檔案文件名;
如果是磁盤,只需指定磁帶設(shè)備名即可。
注意,在”-f"選項之后不能再跟任何其他選項,
也就是說,"-f"必須是tar命令的最后一個選項
-v 指定在創(chuàng)建歸檔文件過程中,顯示各個歸檔文件的名稱
-p 在文件歸檔的過程中,保持文件的屬性不發(fā)生變化
舉例:
1)將/etc目錄下的所有文件打包,并顯示打包的詳細文件,設(shè)置打包文件名為etc.tar,同時保存文件到/opt目錄下
[root@master opt]# tar -cvf /opt/etc.tar /etc
[root@master opt]# ls
etc.tar
這里的檔案名"etc.tar"名字是我們自己隨便取的,Linux上利用tar命令打包出來的檔案文件一般用.tar作為標(biāo)識
2)將/etc目錄下的所有文件打包并壓縮,然后顯示打包的詳細文件,
設(shè)置打包文件名為etc.tar.gz,同時保存文件到/opt目錄下
【-z 調(diào)用gzip命令在文件打包的過程中壓縮/解壓文件】
[root@master opt]# tar -zcvf /opt/etc.tar.gz /etc
[root@master opt]# ll
total 48924
-rw-r–r--. 1 root root 39055360 Nov 12 13:46 etc.tar
-rw-r–r--. 1 root root 11031818 Nov 12 13:52 etc.tar.gz
【-j 調(diào)用bzip2命令在文件打包的過程中壓縮/解壓文件】
[root@master opt]# tar -jcvf /opt/etc.tar.bz2 /etc
[root@master opt]# ll
total 58144
-rw-r–r--. 1 root root 39055360 Nov 12 13:46 etc.tar
-rw-r–r--. 1 root root 9438125 Nov 12 13:59 etc.tar.bz2
-rw-r–r--. 1 root root 11031818 Nov 12 13:52 etc.tar.gz
"zcvf"選項表示在打包完成后調(diào)用gzip命令對檔案文件進行壓縮,這里的檔案名"etc.tar.gz"也是我們隨便取的,
“.tar"表示是用tar命令打包的,”.gz"表示調(diào)用了gzip命令進行了壓縮。
同理,“jcvf"選項表示在打包完成后調(diào)用bzip2命令對檔案文件進行壓縮,
檔案命名標(biāo)識中”.bz2"表示調(diào)用了bzip2命令進行了壓縮處理
3)查閱上面/opt/etc.tar.gz 和 etc.tar.bz2 壓縮包的內(nèi)容
【-t 列出檔案文件中已經(jīng)歸檔的文件列表】
[root@master opt]# tar -ztvf /opt/etc.tar.gz
[root@master opt]# tar -jtvf /opt/etc.tar.bz2
4)"etc.tar.gz"可能包含很多個文件,無法一個屏幕顯示完畢,這時可以使用more命令
[root@master opt]# tar -ztvf /opt/etc.tar.gz | more
5)將/opt/etc.tar.gz 解壓到/usr/local/src下
[root@master src]# cd /usr/local/src
[root@master src]# tar -zxvf /opt/etc.tar.gz
[root@master src]# ls
etc
解壓縮到指定路徑
tar -zxvf 打包文件.tar -C 目標(biāo)路徑
[root@master src]# tar -zxvf /opt/etc.tar.gz -C /usr/local/src/
6)在/opt目錄下,僅解壓/opt/etc.tar.gz壓縮文件中的/etc/inittab文件
[root@master src]# cd /opt/
[root@master opt]# ls
etc.tar etc.tar.bz2 etc.tar.gz
[root@master opt]# tar -zxvf etc.tar.gz etc/inittab
etc/inittab
[root@master opt]# ls
etc etc.tar etc.tar.bz2 etc.tar.gz
[root@master opt]# cd etc
[root@master etc]# ls
inittab