1. 程式人生 > >linux ---vim編輯&使用者管理&許可權

linux ---vim編輯&使用者管理&許可權

<0>.vim 編輯器

(1).普通模式:瀏覽檔案,不可以編輯,只能瀏覽
(2)插入模式:對檔案進行編輯

i 在游標所在位置插入	 I 在游標所在行行首插入
a 在游標下一位置插入        A 在游標所在行行尾插入
o 在游標所在行下一行插入     O 在游標所在行上一行插入
s 刪除游標所在字元進行插入   S 刪除游標所在行進行插入

(3)命令模式:臨時更改vim的工作方式,對字元進行批量操作 p--->貼上 u--->撤銷 ctrl+r--->恢復撤銷

 - 調整vim的檔案設定
	:set nu     	---> 設定行號
	:set nonu       ---> 取消行號
	:set cursorline ---> 設定行線標識
	:set mouse=a    ---> 新增滑鼠選擇
注意:以上設定均為臨時設定,永久生效需要修改vim配置檔案/etc/vimrc

在這裡插入圖片描述
2).字元搜尋
/關鍵字 n向下匹配 N向上匹配
在這裡插入圖片描述

3).字元的管理	
         (n)字母   (n)單詞   (n)行   所有檔案  結束 
字元的複製:y(n)l    y(n)w    y(n)y   yG     複製完成後按“P”貼上
字元的刪除:d(n)l    d(n)w    d(n)d   dG     ------
字元的剪下:c(n)l    c(n)w    c(n)c   cG     剪下之後vim會進入插入模式,要貼上需要按[esc]退出插入模式,然後按p貼上  
4).vim的視覺化模式 ----> ----> I
	v	---> 字元視覺化
	V 	---> 行視覺化
	ctrl+v	---> 塊視覺化 (ctrl+v 批量選擇字元; ctrl+v 選中要加入的字元所在的列 ;按大寫的(I)鍵進入插入模式; 按[esc]結束)
5).字元的替換
:%s/要替換的字元/替換成的字元/g  g--->表示全域性變數   eg::%s/westos/redhat/g 
:1,5s/westos/redhat/g       -----> 將1到5行的westos改變成redahat
:%s/原有字元/替換後字元	     -----> 只替換每一行中出現的第一個原有字元

在這裡插入圖片描述

		6).vim 的分屏功能
			ctrl+w s --->上下分屏 	ctrl+w v ---> 左右分屏 	ctrl+w c ---> 關閉游標所在的螢幕
			ctrl+w 上下左右 ---> 游標移動到指定螢幕	:sp file2 ---> 同時編輯當前檔案和file2

在這裡插入圖片描述

7).在命令模式下游標的移動
gg ----> 游標移動到檔案的第一行 ;  G  ---->  游標移動到檔案的最後
8).vim的退出
 vimtutor--------> vim的手冊 
:q  ---> 退出不儲存,在檔案內容沒有改變時使用	        :wq  ---> 退出儲存	
:q! ---> 強制退出不儲存,在改變檔案後不想儲存時使用	:wq! ---> 強制退出儲存,在對只讀檔案編輯時使用; 
	注意:所編輯的只讀檔案必須是當前使用者的檔案(root除外)    

<1>.圖形編輯器gedit

crtl+n //新建視窗		ctrl+s //儲存檔案 	ctrl+o //開啟檔案 	
ctrl+x //剪下		ctrl+v //貼上		ctrl+c //複製
對於giedit軟體幫助的檢視可以用yelp help:gedit

<2>.使用者管理(id)

1檢視當前使用者 whoami
2系統中使用者的檢視

id     username ---> 檢視指定使用者的id所有資訊  id -u  username ---> 檢視使用者的uid 	   
id -g  username ---> 檢視使用者的gid 	   id -G  username ---> 檢視那使用者的所有組id     
id -n  username ---> 顯示名字而不是id數字
注意:-n 的使用必須和 -u|g|G 一起連線使用      eg:id -nu username

在這裡插入圖片描述

<3>.切換使用者(su)

su  -  使用者名稱稱
	su  -  中“-”表示使用者身份切換時同時切換當前使用者環境
	su  -  執行高階使用者切換到低階使用者時不需要密碼,低階使用者切換到高階使用者需要密碼,平級使用者切換也需要
	注意 : 每次su切換到其他使用者操作完成之後退出,在切換到另外使用者操作   退出--->exit | ctrl+d

在這裡插入圖片描述

<4>.使用者在系統中的儲存方式

/etc/passwd    ---> 使用者資訊檔案	root   :   x   : 0 : 0 :  root :/root:/bin/bash
				使用者名稱稱:使用者密碼:uid:gid:說明文字:家目錄:預設shell
/etc/group     ---> 使用者組資訊 	mail:  x  : 12  :postfix
				組名:組密碼:組id:組成員
/etc/shadow    ---> 認證資訊檔案  (共9列)
      使用者名稱稱:使用者密碼:使用者密碼最後一次被更改的時間:使用者密碼最短有效期:使用者密碼最長有效期:密碼警告期限:使用者非活躍天數:使用者到期日:使用者自定義列
/etc/gshadow   ---> 組認證資訊
       是/etc/group的加密資訊檔案
/home/username ---> 使用者的家目錄

<5>.使用者管理命令 (useradd;userdel;usermod;groupadd;groupdel)

使用者和使用者組的監控命令 ---> watch -n 'tail -n 3 /etc/passwd /etc/group;ls -l /home/'

1).使用者的建立 ( useradd )
	useradd -u 8888       username  ---> 建立新使用者並且指定使用者的id--->8888
	useradd -g 21         username  ---> 建立新使用者並且指定使用者的初始組id--->21,“21”使用者組必須是已經存在的
	useradd -G 21         username  ---> 建立新使用者並且指定使用者的附加組id--->21,“21”使用者組必須是已經存在的
	useradd -c “hello”    username  ---> 建立新使用者並且指定使用者的說明
	useradd -d /home/lee  username  ---> 建立新使用者並且指定使用者的家目錄
	useradd -s /sbin/nologin username ---> 建立新使用者並且指定使用者的預設shell ; /etc/shells記錄了使用者能使用shell的名字
	eg: useradd -u 2341 -g 21 -G 21 -c "xiao li zi" -d /home/lee -s /bin/bash xiao

在這裡插入圖片描述

2).使用者的刪除 ( userdel )
	userdel    username ---> 刪除已經存在的使用者但不刪除使用者的配置資訊
	userdel -r username ---> 刪除已經存在的使用者並且刪除使用者的配置資訊

在這裡插入圖片描述

3).更改使用者資訊  ( usermod )
	usermod  -l new_username   old_username  	更改使用者的名稱
	usermod  -u 7865           old_username		更改使用者的uid
	usermod  -g 78		   old _username	更改使用者的初始組
	usermod  -G 78 		   old _username	更改使用者的附加組
	usermod  -aG 78            old _username	新增使用者的附加組
	usermod  -G ""		   old_username		刪除使用者的所有附加組
	usermod  -c "li_zi"        old_username		指定使用者的說明文字
	usermod  -md /home/lee	   old  _username	更改使用者的家目錄
	usermod  -s /sbin/nologin  old_username		更改使用者的shell
	usermod  -L                old_username		凍結使用者,將不能登陸成功
	usernod  -U                old_username		解鎖使用者,將可以登陸

在這裡插入圖片描述

4).使用者組的建立 ( groupadd )
	groupadd  	      new_group_name  ---> 建立新使用者組
	groupadd -g 344       new_group_name  ---> 建立新使用者組並且指定使用者組的組id--->344
5).使用者組的刪除  ( groupdel )
	groupdel  old_group_name     ---> 刪除使用者組

在這裡插入圖片描述

<6>.使用者密碼(passwd)

監控passwd密碼資訊 -----> watch -n 1 passwd -S student

命令	引數	使用者名稱稱
passwd	  	student	        ---> 更改使用者密碼
passwd	-S	student		---> 使用者密碼資訊
passwd	-l	student		---> 鎖定密碼,普通使用者不能登陸帳號,root使用者可以切換過去
passwd	-u	student		---> 解鎖密碼,普通使用者可以登陸帳號
passwd  -e	student		---> 使用者密碼最短有效期限為0;使用者在登陸時會被強制要求修改密碼
passwd	-n 1	student		---> 設定密碼最短有效期為一天,一天之內不能更改密碼
passwd	-x 30	student		---> 設定密碼最長有效期為三十天,三十天之後必須更改密碼
passwd	-w 3	student		---> 警告期-->密碼在過期前兩天有警告輸出
passwd	-i 2	student		---> 設定使用者非活躍天數-->密碼在過期後仍可以登陸系統的天數
passwd	-d	student		---> 清除使用者密碼
chage   -E 2018-09-23(日期) username ----> 使用者在2018-09-23日到期,到期之後使用者將不能登陸
	注意: 普通使用者改密碼時必須知道當前永久原始密碼; 密碼不能個帳號名稱相似; 
	      密碼不能是純數字;   密碼不能是有序的字母和數字的組合

在這裡插入圖片描述
在這裡插入圖片描述

<7>.檔案許可權

檔案的監控: watch -n 1 ls -lR /mnt 監控目錄/mnt裡面的檔案或者目錄的變化,一秒更新一次

1).檔案許可權存在的意義
	系統最底層安全設定方式之一;   保證檔案可以被相應的使用者做相應的操作;linux中一切皆檔案;
2).檔案許可權的檢視
	ls  -l    file	檢視檔案的許可權	ls  -ld   dir   檢視目錄的許可權	
	ll        file  檢視檔案的許可權	ll  -d    dir	檢視目錄的許可權	

在這裡插入圖片描述

3).檔案許可權的讀取
	d | rwxrwxr-x. | 4 | kiosk | kiosk | 32 | Sep 23 16:56 | linux
	- | rwxrwxr-x. | 1 | kiosk | kiosk |287 | Sep 21 18:43 | rht-view-desktop.desktop
	[1]    [2]  	[3]   [4]     [5]   [6]		[7]		[8]
	[1]:檔案型別
		-: 空檔案,或者空文字     d: 目錄          l: 軟連結     
		s:  socket套接字        b:block快裝置    c:字元裝置
	[2]:rwx | rwx | r-x.
	    (1)   (2)   (3)
		(1):[u]---> 檔案擁有者對檔案能做什麼操作  (2):[g]---> 檔案所屬組對檔案做什麼操作  (3):[o]---> 其它人對檔案做什麼操作
	[3]:4
		 對檔案:檔案硬連結個數(檔案內容被記錄的次數)
		 對目錄:目錄中子目錄的個數(不是檔案)
	[4]:kiosk
		檔案所有人
	[5]:kiosk
		檔案所有組
	[6]:287	
		對檔案:檔案大小
		對目錄:目錄中字檔案源資料大小
	[7]:Sep 23 16:56
		檔案內容被修改的時間
	[8]:linux
		檔名稱

<8>.如何修改檔案的所有人個所有組 ( chown | chgrp )

檔案的監控: watch -n 1 ls -lR /mnt

chown       user         file|dir      更改檔案或者目錄的所有人
chown 	    user.group   file|dir      更改檔案或者目錄的所有人和檔案所在組
chown  -R   user.group   dir  	       遞迴更改目錄的所有人和檔案所在組
chgrp       group 	 file|dir      更改檔案或者目錄的檔案所在組
chgrp  -R   group	 dir           遞迴更改目錄的檔案所在組

在這裡插入圖片描述

<9>.如何修改檔案的許可權

檔案的監控: watch -n 1 ls -lR /mnt

1).對許可權的理解
	r : 對檔案---> 是否可以檢視檔案中的內容-->cat
	    對目錄---> 是否可以檢視目錄中有什麼子檔案或子目錄-->ls
	w : 對檔案---> 是否可以改變檔案裡面記錄的字元-->vim; gedit
	    對目錄---> 是否可以對目錄中子目錄或者子檔案源資料進行更改-->touch;mkdir;rm
	x : 對檔案---> 是否可以通過檔名稱呼叫檔案內記錄的程式
	    對目錄---> 是否可以進入目錄-->cd
2).更改方式
chmod [-R] <u|g|o><+|-|=><r|w|x> file|dir	
chmod u-x file1			--->file1擁有者去掉x許可權
chmod g+w file1			--->file1擁有組新增w許可權
chmod u-x,g+w file1		--->file1擁有者去掉x權,file1擁有組新增w許可權
chmod ugo-r file2		--->file2的使用者組其他人去掉r許可權
chmod ug+x,o-r file3		--->file3使用者和組新增x許可權,其他人去掉r許可權
chmod ug+x,o+wx file3		--->file3使用者和組新增x許可權,其他人加上wx許可權
chmod u=rwx,o=rw- file3		--->file3使用者擁有rwx許可權,其他人擁有rw-許可權

在這裡插入圖片描述

3).數字方式修改該檔案許可權(chmod)
	在linux中	r=4	w=2	x=1
檔案許可權數字表示方式	rw-|r--|r--
 			 u   g   o
	u=rw-=4+2+0=6	g=r--=4+0+0=4	o=r--=4+0+0=4
	所以檔案許可權表示為644
檔案中許可權用數字表示
	7=rwx	6=rw-	5=r-x	4=r--	3=-wx	2=-w-	1=--x	0=---
	chmod	修改後許可權值	file
	chmod	777	file

在這裡插入圖片描述