linux作業系統基本操作3
k更改的許可權值只對當前環境生效
系統配置檔案,配置檔案始之生效,重讀一遍 source/
shell‘ 的配置檔案
-
umask
當我們登陸系統之後建立一個檔案總是有一個預設許可權,umask設定了使用者建立檔案的預設 許可權,它與chmod的效果剛好相反,umask設定的是許可權“補碼”,而chmod設定的是檔案許可權碼。一般可在/etc/profile、/etc/bashrc、$ [HOME]/.bash_profile、 [HOME]/.bashrc中設定umask值。umask ##系統建立檔案時預設保留的權力 umask 077 ##臨時設定系統語流許可權為077
目錄的預設許可權值:700
檔案的預設許可權值:600
永久修改許可權 umask
vim /etc/profile ##系統配置檔案
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002 ##普通使用者的umask
else
umask 077 ##超級使用者的umask
fi
vim /etc/bashrc ##shell配置檔案
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002 ##普通使用者的umask
else
umask 077 ##超級使用者的umask
fi
source /etc/profile ##讓更改立即生效
source /etc/bashrc
-
特殊許可權
2.1 sticky ##粘制位
粘滯位,也稱黏著位。最常見的用法在目錄上設定粘滯位,如此以來,只有目錄內檔案的所有者或者root才可以刪除或移動該檔案。如果不為目錄設定粘滯位,任何具有該目錄寫和執行許可權的使用者都可以刪除和移動其中的檔案。
作用:
只針對目錄生效,當一個目錄上有sticky許可權時
在這個目錄中的檔案只能被檔案的所有者刪除
設定方式:chmod o+t dir chmod 1xxx dir
2.2 sgid ##強制位 (在公司所創造的屬於公司)
作用
對檔案: 之針對二進位制可執行檔案
當檔案上有sgid時,任何人執行此檔案產生的程序都屬於檔案的組
對目錄: 當檔案上有sgid時,任何人在此目錄中建立檔案和目錄都屬於目錄的所有組
設定方式:
chmod g+s flie|dir
chmod 2xxx file|dir
2.3 suid ##冒險位
只針對二進位制可執行檔案
當檔案上有suid時任何人執行這個檔案中的程式產生的程序都屬於檔案的所有人
設定方式:
chmod u+s file
chmod 4xxx file
3. acl許可權
acl——Access Control Lists,訪問控制列表
Linux 下使用者對檔案的操作許可權有 r-讀, w-寫, x-可執行三種,而對linux 下的檔案而言,使用者身份分為:所有者, 所屬組, 其它人, 且檔案的所有者,所屬組都只能是一個,所以在對檔案分配使用者的使用許可權時,只能對這三種身份進行分配rwx 許可權.Linux 主要作為伺服器系統使用,使用者眾多.所以在實際使用場景中,這三種身份並不能很好地實現資源許可權分配問題,所以就有了ACL許可權. ACL 許可權就是為了解決linux 下三種身份不能滿足資源許可權分配需求的問題的.
3.1 作用
讓特定的使用者對於i特定的檔案擁有特定的許可權
3.2 acl列表檢視
-rw-rwxr--+ 1 root root 0 Oct 1 11:11 file
^
acl開啟
getfacl file ##檢視act開啟的檔案的許可權
#file: file ##檔名稱
# owner: root ##檔案所有者
# group: root ##檔案所有組
user::rw- ##檔案所有人的許可權
user:tom:rwx ##指定使用者的許可權
group::r-- ##檔案所有組的許可權
mask::rwx ##能賦予使用者的最大權力閾值
other::r-- ##其他人的許可權
3.3 acl列表的管理
設定使用者acl許可權:指定特定使用者對此檔案/目錄擁有的r/w/x許可權
setfacl -m u:username:rwx file ##設定username對file擁有rwx許可權
setfacl -m g:group:rwx file ##設定group組成員對file擁有rwx許可權
4. mask值
在許可權列表中mask表示能生效的許可權值
當用chmod減小開啟acl的檔案許可權時,mask值會發生變化
chmod g-w westos ##看到減掉的時mask值
恢復mask值
setfacl -m m:rwx westos
acl預設許可權只針對目錄設定
setfacl -m d:u:student:rwx /mnt/westos
“acl許可權之針對設定完成之後新建的檔案或者目錄生效,而已經存在的檔案時不會繼續預設許可權的”
習題:
繼續上篇文章習題:
新建使用者組和使用者要求同上篇。
新建目錄要求如下::
1) /pub目錄為公共儲存目錄,對所有使用者可以讀,寫,執行
2)/sc目錄為生產部儲存目錄,只能對生產部人員可以寫入,並且生產部人亞un所建立的檔案都自動歸屬到shengchan組中
3)/cw目錄為財務部村數目錄,只能對財務部人員可以寫入,並且財務額u人員所建立的檔案都自動歸屬到caiwu組中
4)admin使用者對/sc和/cw目錄可以讀寫執行
[[email protected] ~]# ll -d /cw/
drwxrwxr-x. 2 root caiwu 6 Oct 1 09:13 /cw/
[[email protected] ~]#
[[email protected] ~]#
[[email protected] ~]# chmod g+s /cw/
[[email protected] ~]# ll -d /cw/
drwxrwsr-x. 2 root caiwu 6 Oct 1 09:13 /cw/
[[email protected] ~]#
[[email protected] ~]#
[[email protected] ~]#
[[email protected] ~]# setfacl -m u:admin:rwx /sc/
[[email protected] ~]# setfacl -m u:admin:rwx /cw
-
系統程序及服務的控制
5.1 什麼是程序
狹義定義:程序是正在執行的程式的例項(an instance of a computer program that is being executed)。
廣義定義:程序是一個具有一定獨立功能的程式關於某個資料集合的一次執行活動。它是作業系統動態執行的基本單元,在傳統的作業系統中,程序既是基本的分配單元,也是基本的執行單元。
程序的概念主要有兩點:第一,程序是一個實體。每一個程序都有它自己的地址空間,一般情況下,包括文字區域(text region)、資料區域(data region)和堆疊(stack region)。文字區域儲存處理器執行的程式碼;資料區域儲存變數和程序執行期間使用的動態分配的記憶體;堆疊區域儲存著活動過程呼叫的指令和本地變數。第二,程序是一個“執行中的程式”。程式是一個沒有生命的實體,只有處理器賦予程式生命時(作業系統執行之),它才能成為一個活動的實體,我們稱其為程序。
程序(Process)是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。在早期面向程序設計的計算機結構中,程序是程式的基本執行實體;在當代面向執行緒設計的計算機結構中,程序是執行緒的容器。程式是指令、資料及其組織形式的描述,程序是程式的實體。程序是作業系統中最基本、重要的概念。是多道程式系統出現後,為了刻畫系統內部出現的動態情況,描述系統內部各道程式的活動規律引進的一個概念,所有多道程式設計作業系統都建立在程序的基礎上。
5.2 檢視程序
1)圖形方式檢視gnome-system-monitor
2)程序檢視命令
ps -A ##檢視所有程序
-a ##當前環境中執行的程序,不包含環境資訊
-u ##顯示程序使用者資訊
ps a ##當前環境執行的程序
x ##列出列出系統中所有執行包含tty輸出裝置
f ##顯示程序父子關係
e ##顯示程序詳細資訊(系統的資源呼叫)
3)常用組合
ps aux ##所有資訊,包括詳細資訊
ps ef ##顯示詳細資訊和系統的資源呼叫
ps ax ##顯示當前系統中的所有程序
4)顯示程序指定資訊,掌握這些很重要
ps -o xxx ##顯示程序的指定資訊
com ##程序名稱
user ##程序所有人
group ##程序所有組
%cpu ##程序cpu使用率
%men ##程序記憶體使用率
pid ##程序id
nice ##程序優先順序
5)對程序進行排序
ps ax --sort= +%cpu|-%cpu
+%men|-%men
ps ax --sort=-%cpu -o %cpu |head -n 6 |grep %CPU -v ## 程序按cpu佔有率從大到小排序取前五(去掉%CPU)
ll /dev/pts/ 輸出裝置,字元裝置
-
程序優先順序
影象方式,priority,nice 命令方式,ps ax -o pid,nice,commod 優先順序由 -20到19 S ##程序狀態 l ##記憶體中有鎖定空間 N ##優先順序低 < ##優先順序高 + ##前臺執行 s ##頂級程序
6.1優先順序範圍
-20~19
6.2優先順序檢視
ps ax -o pid,nice,comm
##更改優先順序
renice
##開啟設定優先順序
nice -n -5 gedit
6.3改變程序優先順序
renice -n 優先順序數字 程序id
renice -n -5 6574 ##改變6574程序的優先順序為-5
6.4指定某個優先順序開啟程序
nice -n 優先順序數字 程序名稱
nice -n -5 vim& ##開啟vim並且指定程式優先順序為-5
6.5環境中程序的前後臺呼叫
jobs ##檢視被打入環境後臺的程序
bg 1 ##執行第一個後臺執行
ctrl+z ##把佔用終端的程序打入後臺
fg jobnum ##把後臺程序調回前臺
bg jobnum ##把後臺展廳的程序執行
comm & ##讓命令直接在後臺執行
sp /etc/passward ##同時編輯兩個檔案
-
常用程序訊號
1.常用程序訊號等級 kill -1 74871 #程序重新載入配置 2 ##刪除程序在記憶體中的資料 3 ##刪除滑鼠在記憶體中的資料 9 ##強行結束單個程序(不可被阻塞) 15 ##正常關閉程序(可能會被阻塞) 18 ##執行暫停的程序 19 ##暫停某個程序(不能被阻塞) 20 ##把程序打入後臺(可以被阻塞)
##安裝瀏覽器,開啟埠。預設訪問80埠。具體步驟如下:
man 7 signal ##檢視訊號詳細資訊
kill -訊號 程序id
killall -訊號 程序名 ##一次(-9)關閉多個程序,根據程序名來關
pkill -u student -訊號 ##一次(-9)退出多個使用者
SIGPWR Power failure
有兩個訊號可以停止程序:SIGTERM和SIGKILL。
SIGTERM比較友好,程序能捕捉這個訊號
根據你的需要來關閉程式
在關閉程式之前您可以結束開啟的記錄檔案和完成正在做的任務
在某些情況下,假如程序正在進行作業而且不能中斷,那麼程序可以忽略這個SIGTERM訊號
對於SIGKILL訊號,程序是不能忽略的。
這是一個“”我不管您在做什麼,立刻停止“的訊號
假如您傳送SIGKILL訊號給程序,linux就將程序停止在那裡
8.程序動態監控
8.1部分基本設定
man top ##檢視top幫助檔案
n#重新整理時間
l ##檢視幫助
z#顯示顏色
u##檢視指定使用者程序
8.2檢視ip兩種指令(在物理機上操作)
ifconfig
ip addr show ##推薦
8.3修改ip(虛擬機器操作)
mn-connection-editor
8.4 top
1 ##顯示cpu每個核的負載
s ##調整重新整理頻率
c ##cpu負載排序
m ##記憶體使用量排序
h ##檢視幫助
u ##檢視指定使用者程序
k ##對指定程序發起訊號
q ##退出
ssh #安全的連線
能連線的原因是100這個虛擬機器上提供了ssh服務
sshd #d ,服務
systemctl status ss ##檢視服務的狀態
- 控制服務
9.1 什麼是服務
服務是指為他人做事,並使他人從中受益的一種有償或無償的活動。不以實物形式而以提供勞動的形式滿足他人某種特殊需要。
9.2 用什麼控制服務
系統初始化程序可以對u服務進行相應的控制
9.3 當前系統初始化程序是什麼
systemd ##系統初始化程序
pstree ##顯示系統中的程序樹
9.4 程序控制命令
ssh ##客戶端
sshd ##提供服務端
ssh----->sshd
client server
systemctl ##服務控制命令
systemctl status sshd ##檢視服務狀態,inactive(不可用)active(keyong)
systemctl start sshd ##開啟服務
systemctl stop sshd ##關閉服務
systemctl restart sshd ##重其服務
systemctl reload sshd ##重新載入服務配置
systemctl enable sshd ##設定服務開機自動啟動
systemctl disnable sshd ##設定服務開機不啟動
systemctl list-unit ##列出已經開啟服務的當前狀態
systemctl list-unit-files ##列出所有服務開機啟動狀態
systemctl list-dependencies ##列出服務依賴
systemctl set-default multi-user.target ##設定系統啟動級別為多使用者模式(無圖形)
systemctl set-default graphical.target ##設定系統啟動級別為圖形模式
pstree ##檢視系統程序樹
netstat -antulpe |grep sshd ##``檢視服務資訊````
netstat -antulpe |grep :22 ##```用程序號檢視
enabled ##開機自動啟動
disnabled ##
##開機啟動狀態
init 5 或者 startx ##啟動圖形
配置好虛擬機器之後,最好在物理機遠端連線
- sshd服務
10.1sshd簡介
sshd = secure shell
可以通過網路在主機中開啟shell的服務
客戶端軟體
ssh
連線方式:
ssh [email protected] ##文字模式的連線
ssh -X [email protected] ##可以在連線成功後開啟圖形檔案
注意:
第一次連線陌生主機時要建立認證檔案
會詢問是否建立,需要輸入yes
再次連線誒此主機時,因為已經生成~/。ssh/know_hosts
遠端複製:
scp file [email protected]:dir ##上傳(dir為絕對路徑)
scp [email protected]:file dir ##下載(file為絕對路徑)
ctrl +a ##滑鼠到行尾
+d ##滑鼠到行首
+ w ##刪除一行
+ u ##全部刪除
10.2 ssh的key認證
[[email protected] .ssh]# ssh-keygen ##生成金鑰的命令
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ##指定儲存加密字元的檔案
Enter passphrase (empty for no passphrase): ##設定金鑰
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa. ##私鑰
Your public key has been saved in /root/.ssh/id_rsa.pub. ##公鑰
The key fingerprint is:
14:9f:ee:48:44:28:05:46:a4:f5:46:8a:44:62:f3:95 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|.+oo*++.o |
|.oo=oE.. o . |
| o...o o o |
| . o . |
| S . |
| . o |
| . . |
| |
| |
+-----------------+
1)加密服務
[[email protected] .ssh]# ssh-copy-id -i id_rsa.pub [email protected]
##加密root使用者
The authenticity of host '172.25.254.100 (172.25.254.100)' can't be established.
ECDSA key fingerprint is 65:4d:ac:8a:c9:58:82:b5:0c:91:c4:ef:a5:e6:f6:65.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
\Permission denied, please try again.
[email protected]'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
[[email protected] .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
^
這個檔案出現,表示加密成功
2)分發鑰匙
scp /root/.ssh/id_rsa [email protected]:/root/.ssh/
3)測試
在客戶主機中(172.25.254.201)
ssh [email protected] ##連線時發現直接登入不需要輸入root密碼
10.4 sshd的安全設定
sswordAuthentication yes ##是否允許使用者通過密碼做sshd認證
PermitRootLogin yes ##是否於悉尼root使用者通過sshd服務的認證
allowuser student westos ##設定使用者白名單,白名單出現,預設不再白名單中的使用者不能使用sshd
Denyuser westos ##設定使用者黑名單,黑名單出現,預設不在黑名單中的使用者可以使用sshd
-
檔案在系統中的傳輸
11.1 scpscp file [email protected]:dir scp [email protected]:file dir
遠端複製:
scp file [email protected]:dir ##上傳(dir為絕對路徑)
scp [email protected]:file dir ##下載(file為絕對路徑)
11.2 rsync ##遠端同步,速度快,預設會忽略檔案屬性,連結檔案,裝置檔案
-r ##同步目錄
-p ##同步許可權
-o ##同步檔案所有人
-g ##同步檔案所有組
-t ##同步檔案時間戳
-l ##同步連結檔案
-D ##同步裝置檔案