linux-03-Vim使用+账号用户管理
什么是Vim編輯器
Vim是從 vi 發(fā)展出來的一個(gè)文本編輯器。代碼補(bǔ)完、編譯及錯(cuò)誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用。
簡單的來說, vi 是老式的字處理器,不過功能已經(jīng)很齊全了,但是還是有可以進(jìn)步的地方。
vim 則可以說是程序開發(fā)者的一項(xiàng)很好用的工具。
所有的 Unix Like 系統(tǒng)都會(huì)內(nèi)建 vi 文書編輯器,其他的文書編輯器則不一定會(huì)存在。
連 vim 的官方網(wǎng)站 (http://www.vim.org) 自己也說 vim 是一個(gè)程序開發(fā)工具而不是文字處理軟件。
vim 鍵盤圖:
三種使用模式
基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。這三種模式的作用分別是:
命令模式:
用戶剛剛啟動(dòng) vi/vim,便進(jìn)入了命令模式。
此狀態(tài)下敲擊鍵盤動(dòng)作會(huì)被Vim識別為命令,而非輸入字符。比如我們此時(shí)按下i,并不會(huì)輸入一個(gè)字符,i被當(dāng)作了一個(gè)命令。
以下是常用的幾個(gè)命令:
- i 切換到輸入模式,以輸入字符。
- x 刪除當(dāng)前光標(biāo)所在處的字符。
- : 切換到底線命令模式,以在最底一行輸入命令。
若想要編輯文本:啟動(dòng)Vim,進(jìn)入了命令模式,按下i,切換到輸入模式。
命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令。
輸入模式:
在命令模式下按下i就進(jìn)入了輸入模式。
在輸入模式中,可以使用以下按鍵:
- 字符按鍵以及Shift組合,輸入字符
- ENTER,回車鍵,換行
- BACK SPACE,退格鍵,刪除光標(biāo)前一個(gè)字符
- DEL,刪除鍵,刪除光標(biāo)后一個(gè)字符
- 方向鍵,在文本中移動(dòng)光標(biāo)
- HOME/END,移動(dòng)光標(biāo)到行首/行尾
- Page Up/Page Down,上/下翻頁
- Insert,切換光標(biāo)為輸入/替換模式,光標(biāo)將變成豎線/下劃線
- ESC,退出輸入模式,切換到命令模式
底線命令模式
在命令模式下按下:(英文冒號)就進(jìn)入了底線命令模式。
底線命令模式可以輸入單個(gè)或多個(gè)字符的命令,可用的命令非常多。
在底線命令模式中,基本的命令有(已經(jīng)省略了冒號):
- q 退出程序
- w 保存文件
按ESC鍵可隨時(shí)退出底線命令模式。
簡單的說,我們可以將這三個(gè)模式想成底下的圖標(biāo)來表示:
上手體驗(yàn)一下,在home目錄下測試
如果你想要使用 vi 來建立一個(gè)名為 kuangstudy.txt 的文件時(shí),你可以這樣做:
[root@kuangshen home]# vim kuangstudy.txt然后就會(huì)進(jìn)入文件
按下 i 進(jìn)入輸入模式(也稱為編輯模式),開始編輯文字
在一般模式之中,只要按下 i, o, a 等字符就可以進(jìn)入輸入模式了!
在編輯模式當(dāng)中,你可以發(fā)現(xiàn)在左下角狀態(tài)欄中會(huì)出現(xiàn) –INSERT- 的字樣,那就是可以輸入任意字符的提示。
這個(gè)時(shí)候,鍵盤上除了 Esc 這個(gè)按鍵之外,其他的按鍵都可以視作為一般的輸入按鈕了,所以你可以進(jìn)行任何的編輯。
按下 ESC 按鈕回到一般模式
好了,假設(shè)我已經(jīng)按照上面的樣式給他編輯完畢了,那么應(yīng)該要如何退出呢?是的!沒錯(cuò)!就是給他按下 Esc 這個(gè)按鈕即可!馬上你就會(huì)發(fā)現(xiàn)畫面左下角的 – INSERT – 不見了!
在一般模式中按下 :wq 儲(chǔ)存后離開 vim!
OK! 這樣我們就成功創(chuàng)建了一個(gè) kuangstudy.txt 的文件。
Vim 按鍵說明
除了上面簡易范例的 i, Esc, :wq 之外,其實(shí) vim 還有非常多的按鍵可以使用。
第一部分:一般模式可用的光標(biāo)移動(dòng)、復(fù)制粘貼、搜索替換等
| h 或 向左箭頭鍵(←) | 光標(biāo)向左移動(dòng)一個(gè)字符 |
| j 或 向下箭頭鍵(↓) | 光標(biāo)向下移動(dòng)一個(gè)字符 |
| k 或 向上箭頭鍵(↑) | 光標(biāo)向上移動(dòng)一個(gè)字符 |
| l 或 向右箭頭鍵(→) | 光標(biāo)向右移動(dòng)一個(gè)字符 |
| [Ctrl] + [f] | 屏幕『向下』移動(dòng)一頁,相當(dāng)于 [Page Down]按鍵 (常用) |
| [Ctrl] + [b] | 屏幕『向上』移動(dòng)一頁,相當(dāng)于 [Page Up] 按鍵 (常用) |
| [Ctrl] + [d] | 屏幕『向下』移動(dòng)半頁 |
| [Ctrl] + [u] | 屏幕『向上』移動(dòng)半頁 |
| + | 光標(biāo)移動(dòng)到非空格符的下一行 |
| - | 光標(biāo)移動(dòng)到非空格符的上一行 |
| n< space> | 那個(gè) n 表示『數(shù)字』,例如 20 。按下數(shù)字后再按空格鍵,光標(biāo)會(huì)向右移動(dòng)這一行的 n 個(gè)字符。 |
| 0 或功能鍵[Home] | 這是數(shù)字『 0 』:移動(dòng)到這一行的最前面字符處 (常用) |
| $ 或功能鍵[End] | 移動(dòng)到這一行的最后面字符處(常用) |
| H | 光標(biāo)移動(dòng)到這個(gè)屏幕的最上方那一行的第一個(gè)字符 |
| M | 光標(biāo)移動(dòng)到這個(gè)屏幕的中央那一行的第一個(gè)字符 |
| L | 光標(biāo)移動(dòng)到這個(gè)屏幕的最下方那一行的第一個(gè)字符 |
| G | 移動(dòng)到這個(gè)檔案的最后一行(常用) |
| nG | n 為數(shù)字。移動(dòng)到這個(gè)檔案的第 n 行。例如 20G 則會(huì)移動(dòng)到這個(gè)檔案的第 20 行(可配合 :set nu) |
| gg | 移動(dòng)到這個(gè)檔案的第一行,相當(dāng)于 1G 啊!(常用) |
| n< Enter> | n 為數(shù)字。光標(biāo)向下移動(dòng) n 行(常用) |
| /word | 向光標(biāo)之下尋找一個(gè)名稱為 word 的字符串。例如要在檔案內(nèi)搜尋 vbird 這個(gè)字符串,就輸入 /vbird 即可!(常用) |
| ?word | 向光標(biāo)之上尋找一個(gè)字符串名稱為 word 的字符串。 |
| n | 這個(gè) n 是英文按鍵。代表重復(fù)前一個(gè)搜尋的動(dòng)作。舉例來說, 如果剛剛我們執(zhí)行 /vbird 去向下搜尋 vbird 這個(gè)字符串,則按下 n 后,會(huì)向下繼續(xù)搜尋下一個(gè)名稱為 vbird 的字符串。如果是執(zhí)行 ?vbird 的話,那么按下 n 則會(huì)向上繼續(xù)搜尋名稱為 vbird 的字符串! |
| N | 這個(gè) N 是英文按鍵。與 n 剛好相反,為『反向』進(jìn)行前一個(gè)搜尋動(dòng)作。例如 /vbird 后,按下 N 則表示『向上』搜尋 vbird 。 |
| x, X | 在一行字當(dāng)中,x 為向后刪除一個(gè)字符 (相當(dāng)于 [del] 按鍵), X 為向前刪除一個(gè)字符(相當(dāng)于 [backspace] 亦即是退格鍵) (常用) |
| nx | n 為數(shù)字,連續(xù)向后刪除 n 個(gè)字符。舉例來說,我要連續(xù)刪除 10 個(gè)字符, 『10x』。 |
| dd | 刪除游標(biāo)所在的那一整行(常用) |
| ndd | n 為數(shù)字。刪除光標(biāo)所在的向下 n 行,例如 20dd 則是刪除 20 行 (常用) |
| d1G | 刪除光標(biāo)所在到第一行的所有數(shù)據(jù) |
| dG | 刪除光標(biāo)所在到最后一行的所有數(shù)據(jù) |
| d$ | 刪除游標(biāo)所在處,到該行的最后一個(gè)字符 |
| d0 | 那個(gè)是數(shù)字的 0 ,刪除游標(biāo)所在處,到該行的最前面一個(gè)字符 |
| yy | 復(fù)制游標(biāo)所在的那一行(常用) |
| nyy | n 為數(shù)字。復(fù)制光標(biāo)所在的向下 n 行,例如 20yy 則是復(fù)制 20 行(常用) |
| y1G | 復(fù)制游標(biāo)所在行到第一行的所有數(shù)據(jù) |
| yG | 復(fù)制游標(biāo)所在行到最后一行的所有數(shù)據(jù) |
| y0 | 復(fù)制光標(biāo)所在的那個(gè)字符到該行行首的所有數(shù)據(jù) |
| y$ | 復(fù)制光標(biāo)所在的那個(gè)字符到該行行尾的所有數(shù)據(jù) |
| p, P | p 為將已復(fù)制的數(shù)據(jù)在光標(biāo)下一行貼上,P 則為貼在游標(biāo)上一行!舉例來說,我目前光標(biāo)在第 20 行,且已經(jīng)復(fù)制了 10 行數(shù)據(jù)。則按下 p 后, 那 10 行數(shù)據(jù)會(huì)貼在原本的 20 行之后,亦即由 21 行開始貼。但如果是按下 P 呢?那么原本的第 20 行會(huì)被推到變成 30 行。(常用) |
| J | 將光標(biāo)所在行與下一行的數(shù)據(jù)結(jié)合成同一行 |
| c | 重復(fù)刪除多個(gè)數(shù)據(jù),例如向下刪除 10 行,[ 10cj ] |
| u | 復(fù)原前一個(gè)動(dòng)作。(常用) |
| [Ctrl]+r | 重做上一個(gè)動(dòng)作。(常用) |
第二部分:一般模式切換到編輯模式的可用的按鈕說明
| i, I | 進(jìn)入輸入模式(Insert mode):i 為『從目前光標(biāo)所在處輸入』, I 為『在目前所在行的第一個(gè)非空格符處開始輸入』。(常用) |
| a, A | 進(jìn)入輸入模式(Insert mode):a 為『從目前光標(biāo)所在的下一個(gè)字符處開始輸入』, A 為『從光標(biāo)所在行的最后一個(gè)字符處開始輸入』。(常用) |
| o, O | 進(jìn)入輸入模式(Insert mode):這是英文字母 o 的大小寫。o 為『在目前光標(biāo)所在的下一行處輸入新的一行』;O 為在目前光標(biāo)所在處的上一行輸入新的一行!(常用) |
| r, R | 進(jìn)入取代模式(Replace mode):r 只會(huì)取代光標(biāo)所在的那一個(gè)字符一次;R會(huì)一直取代光標(biāo)所在的文字,直到按下 ESC 為止;(常用) |
| [Esc] | 退出編輯模式,回到一般模式中(常用) |
第三部分:一般模式切換到指令行模式的可用的按鈕說明
| :w | 將編輯的數(shù)據(jù)寫入硬盤檔案中(常用) |
| :w! | 若文件屬性為『只讀』時(shí),強(qiáng)制寫入該檔案。不過,到底能不能寫入, 還是跟你對該檔案的檔案權(quán)限有關(guān)啊! |
| :q | 離開 vi (常用) |
| :q! | 若曾修改過檔案,又不想儲(chǔ)存,使用 ! 為強(qiáng)制離開不儲(chǔ)存檔案。 |
| 注意一下啊,那個(gè)驚嘆號 (!) 在 vi 當(dāng)中,常常具有『強(qiáng)制』的意思~ | |
| :wq | 儲(chǔ)存后離開,若為 :wq! 則為強(qiáng)制儲(chǔ)存后離開 (常用) |
| ZZ | 這是大寫的 Z 喔!若檔案沒有更動(dòng),則不儲(chǔ)存離開,若檔案已經(jīng)被更動(dòng)過,則儲(chǔ)存后離開! |
| :w [filename] | 將編輯的數(shù)據(jù)儲(chǔ)存成另一個(gè)檔案(類似另存新檔) |
| :r [filename] | 在編輯的數(shù)據(jù)中,讀入另一個(gè)檔案的數(shù)據(jù)。亦即將 『filename』 這個(gè)檔案內(nèi)容加到游標(biāo)所在行后面 |
| :n1,n2 w [filename] | 將 n1 到 n2 的內(nèi)容儲(chǔ)存成 filename 這個(gè)檔案。 |
| :! command | 暫時(shí)離開 vi 到指令行模式下執(zhí)行 command 的顯示結(jié)果!例如 『:! ls /home』即可在 vi 當(dāng)中看 /home 底下以 ls 輸出的檔案信息! |
| :set nu | 顯示行號,設(shè)定之后,會(huì)在每一行的前綴顯示該行的行號 |
| :set nonu | 與 set nu 相反,為取消行號! |
賬號管理
簡介
Linux系統(tǒng)是一個(gè)多用戶多任務(wù)的分時(shí)操作系統(tǒng),任何一個(gè)要使用系統(tǒng)資源的用戶,都必須首先向系統(tǒng)管理員申請一個(gè)賬號,然后以這個(gè)賬號的身份進(jìn)入系統(tǒng)。
用戶的賬號一方面可以幫助系統(tǒng)管理員對使用系統(tǒng)的用戶進(jìn)行跟蹤,并控制他們對系統(tǒng)資源的訪問;另一方面也可以幫助用戶組織文件,并為用戶提供安全性保護(hù)。
每個(gè)用戶賬號都擁有一個(gè)唯一的用戶名和各自的口令。
用戶在登錄時(shí)鍵入正確的用戶名和口令后,就能夠進(jìn)入系統(tǒng)和自己的主目錄。
實(shí)現(xiàn)用戶賬號的管理,要完成的工作主要有如下幾個(gè)方面:
- 用戶賬號的添加、刪除與修改。
- 用戶口令的管理。
- 用戶組的管理。
用戶賬號的管理
用戶賬號的管理工作主要涉及到用戶賬號的添加、修改和刪除。
添加用戶賬號就是在系統(tǒng)中創(chuàng)建一個(gè)新賬號,然后為新賬號分配用戶號、用戶組、主目錄和登錄Shell等資源。
添加賬號
添加賬號 useradd
useradd 選項(xiàng) 用戶名參數(shù)說明:
-
選項(xiàng) :
-
- -c comment 指定一段注釋性描述。
- -d 目錄 指定用戶主目錄,如果此目錄不存在,則同時(shí)使用-m選項(xiàng),可以創(chuàng)建主目錄。
- -g 用戶組 指定用戶所屬的用戶組。
- -G 用戶組,用戶組 指定用戶所屬的附加組。
- -m 使用者目錄如不存在則自動(dòng)建立。
- -s Shell文件 指定用戶的登錄Shell。
- -u 用戶號 指定用戶的用戶號,如果同時(shí)有-o選項(xiàng),則可以重復(fù)使用其他用戶的標(biāo)識號。
-
用戶名 :
-
- 指定新賬號的登錄名。
測試:
# 此命令創(chuàng)建了一個(gè)用戶kuangshen,其中-m選項(xiàng)用來為登錄名kuangshen產(chǎn)生一個(gè)主目錄 /home/kuangshen [root@kuangshen home]# useradd -m kuangshen增加用戶賬號就是在/etc/passwd文件中為新用戶增加一條記錄,同時(shí)更新其他系統(tǒng)文件如/etc/shadow, /etc/group等。
Linux下如何切換用戶
1.切換用戶的命令為:su username 【username是你的用戶名哦】
2.從普通用戶切換到root用戶,還可以使用命令:sudo su
3.在終端輸入exit或logout或使用快捷方式ctrl+d,可以退回到原來用戶,其實(shí)ctrl+d也是執(zhí)行的exit命令
4.在切換用戶時(shí),如果想在切換用戶之后使用新用戶的工作環(huán)境,可以在su和username之間加-,例如:【su - root】
$表示普通用戶
#表示超級用戶,也就是root用戶
刪除賬號
刪除帳號
如果一個(gè)用戶的賬號不再使用,可以從系統(tǒng)中刪除。
刪除用戶賬號就是要將/etc/passwd等系統(tǒng)文件中的該用戶記錄刪除,必要時(shí)還刪除用戶的主目錄。
刪除一個(gè)已有的用戶賬號使用userdel命令,其格式如下:
userdel 選項(xiàng) 用戶名常用的選項(xiàng)是 -r,它的作用是把用戶的主目錄一起刪除。
[root@kuangshen home]# userdel -r kuangshen此命令刪除用戶kuangshen在系統(tǒng)文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的記錄,同時(shí)刪除用戶的主目錄。
修改賬號
修改帳號
修改用戶賬號就是根據(jù)實(shí)際情況更改用戶的有關(guān)屬性,如用戶號、主目錄、用戶組、登錄Shell等。
修改已有用戶的信息使用usermod命令,其格式如下:
usermod 選項(xiàng) 用戶名常用的選項(xiàng)包括-c, -d, -m, -g, -G, -s, -u以及-o等,這些選項(xiàng)的意義與useradd命令中的選項(xiàng)一樣,可以為用戶指定新的資源值。
例如:
# usermod -s /bin/ksh -d /home/z –g developer kuangshen此命令將用戶kuangshen的登錄Shell修改為ksh,主目錄改為/home/z,用戶組改為developer。
用戶口令的管理(修改密碼)
用戶口令的管理
用戶管理的一項(xiàng)重要內(nèi)容是用戶口令的管理。用戶賬號剛創(chuàng)建時(shí)沒有口令,但是被系統(tǒng)鎖定,無法使用,必須為其指定口令后才可以使用,即使是指定空口令。
指定和修改用戶口令的Shell命令是passwd。超級用戶可以為自己和其他用戶指定口令,普通用戶只能用它修改自己的口令。
命令的格式為:
passwd 選項(xiàng) 用戶名可使用的選項(xiàng):
- -l 鎖定口令,即禁用賬號。
- -u 口令解鎖。
- -d 使賬號無口令。
- -f 強(qiáng)迫用戶下次登錄時(shí)修改口令。
如果默認(rèn)用戶名,則修改當(dāng)前用戶的口令。
例如,假設(shè)當(dāng)前用戶是kuangshen,則下面的命令修改該用戶自己的口令:
$ passwd Old password:****** New password:******* Re-enter new password:*******如果是超級用戶,可以用下列形式指定任何用戶的口令:
# passwd kuangshen New password:******* Re-enter new password:*******普通用戶修改自己的口令時(shí),passwd命令會(huì)先詢問原口令,驗(yàn)證后再要求用戶輸入兩遍新口令,如果兩次輸入的口令一致,則將這個(gè)口令指定給用戶;而超級用戶為用戶指定口令時(shí),就不需要知道原口令。
為了系統(tǒng)安全起見,用戶應(yīng)該選擇比較復(fù)雜的口令,例如最好使用8位長的口令,口令中包含有大寫、小寫字母和數(shù)字,并且應(yīng)該與姓名、生日等不相同。
為用戶指定空口令時(shí),執(zhí)行下列形式的命令:
# passwd -d kuangshen此命令將用戶 kuangshen的口令刪除,這樣用戶 kuangshen下一次登錄時(shí),系統(tǒng)就不再允許該用戶登錄了。
passwd 命令還可以用 -l(lock) 選項(xiàng)鎖定某一用戶,使其不能登錄,例如:
# passwd -l kuangshen用戶組管理
每個(gè)用戶都有一個(gè)用戶組,系統(tǒng)可以對一個(gè)用戶組中的所有用戶進(jìn)行集中管理。不同Linux 系統(tǒng)對用戶組的規(guī)定有所不同,如Linux下的用戶屬于與它同名的用戶組,這個(gè)用戶組在創(chuàng)建用戶時(shí)同時(shí)創(chuàng)建。
用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實(shí)際上就是對/etc/group文件的更新。
groupadd
增加一個(gè)新的用戶組使用groupadd命令
groupadd 選項(xiàng) 用戶組可以使用的選項(xiàng)有:
- -g GID 指定新用戶組的組標(biāo)識號(GID)。
- -o 一般與-g選項(xiàng)同時(shí)使用,表示新用戶組的GID可以與系統(tǒng)已有用戶組的GID相同。
實(shí)例1:
# groupadd group1此命令向系統(tǒng)中增加了一個(gè)新組group1,新組的組標(biāo)識號是在當(dāng)前已有的最大組標(biāo)識號的基礎(chǔ)上加1。
實(shí)例2:
# groupadd -g 101 group2此命令向系統(tǒng)中增加了一個(gè)新組group2,同時(shí)指定新組的組標(biāo)識號是101。
groupdel
如果要?jiǎng)h除一個(gè)已有的用戶組,使用groupdel命令
groupdel 用戶組例如:
# groupdel group1此命令從系統(tǒng)中刪除組group1。
groupmod
修改用戶組的屬性使用groupmod命令
groupmod 選項(xiàng) 用戶組常用的選項(xiàng)有:
- -g GID 為用戶組指定新的組標(biāo)識號。
- -o 與-g選項(xiàng)同時(shí)使用,用戶組的新GID可以與系統(tǒng)已有用戶組的GID相同。
- -n新用戶組 將用戶組的名字改為新名字
切換組
如果一個(gè)用戶同時(shí)屬于多個(gè)用戶組,那么用戶可以在用戶組之間切換,以便具有其他用戶組的權(quán)限。
用戶可以在登錄后,使用命令newgrp切換到其他用戶組,這個(gè)命令的參數(shù)就是目的用戶組。例如:
$ newgrp root這條命令將當(dāng)前用戶切換到root用戶組,前提條件是root用戶組確實(shí)是該用戶的主組或附加組。
/etc/passwd
完成用戶管理的工作有許多種方法,但是每一種方法實(shí)際上都是對有關(guān)的系統(tǒng)文件進(jìn)行修改。
與用戶和用戶組相關(guān)的信息都存放在一些系統(tǒng)文件中,這些文件包括/etc/passwd, /etc/shadow, /etc/group等。
下面分別介紹這些文件的內(nèi)容。
/etc/passwd文件是用戶管理工作涉及的最重要的一個(gè)文件。
Linux系統(tǒng)中的每個(gè)用戶都在/etc/passwd文件中有一個(gè)對應(yīng)的記錄行,它記錄了這個(gè)用戶的一些基本屬性。
這個(gè)文件對所有用戶都是可讀的。它的內(nèi)容類似下面的例子:
# cat /etc/passwdroot:x:0:0:Superuser:/: daemon:x:1:1:System daemons:/etc: bin:x:2:2:Owner of system commands:/bin: sys:x:3:3:Owner of system files:/usr/sys: adm:x:4:4:System accounting:/usr/adm: uucp:x:5:5:UUCP administrator:/usr/lib/uucp: auth:x:7:21:Authentication administrator:/tcb/files/auth: cron:x:9:16:Cron daemon:/usr/spool/cron: listen:x:37:4:Network daemon:/usr/net/nls: lp:x:71:18:Printer administrator:/usr/spool/lp:從上面的例子我們可以看到,/etc/passwd中一行記錄對應(yīng)著一個(gè)用戶,每行記錄又被冒號(:)分隔為7個(gè)字段,其格式和具體含義如下:
用戶名:口令:用戶標(biāo)識號:組標(biāo)識號:注釋性描述:主目錄:登錄Shell1)"用戶名"是代表用戶賬號的字符串。
通常長度不超過8個(gè)字符,并且由大小寫字母和/或數(shù)字組成。登錄名中不能有冒號(😃,因?yàn)槊疤栐谶@里是分隔符。
為了兼容起見,登錄名中最好不要包含點(diǎn)字符(.),并且不使用連字符(-)和加號(+)打頭。
2)“口令”一些系統(tǒng)中,存放著加密后的用戶口令字。
雖然這個(gè)字段存放的只是用戶口令的加密串,不是明文,但是由于/etc/passwd文件對所有用戶都可讀,所以這仍是一個(gè)安全隱患。因此,現(xiàn)在許多Linux 系統(tǒng)(如SVR4)都使用了shadow技術(shù),把真正的加密后的用戶口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一個(gè)特殊的字符,例如“x”或者“*”。
3)“用戶標(biāo)識號”是一個(gè)整數(shù),系統(tǒng)內(nèi)部用它來標(biāo)識用戶。
一般情況下它與用戶名是一一對應(yīng)的。如果幾個(gè)用戶名對應(yīng)的用戶標(biāo)識號是一樣的,系統(tǒng)內(nèi)部將把它們視為同一個(gè)用戶,但是它們可以有不同的口令、不同的主目錄以及不同的登錄Shell等。
通常用戶標(biāo)識號的取值范圍是0~65 535。0是超級用戶root的標(biāo)識號,1~99由系統(tǒng)保留,作為管理賬號,普通用戶的標(biāo)識號從100開始。在Linux系統(tǒng)中,這個(gè)界限是500。
4)“組標(biāo)識號”字段記錄的是用戶所屬的用戶組。
它對應(yīng)著/etc/group文件中的一條記錄。
5)“注釋性描述”字段記錄著用戶的一些個(gè)人情況。
例如用戶的真實(shí)姓名、電話、地址等,這個(gè)字段并沒有什么實(shí)際的用途。在不同的Linux 系統(tǒng)中,這個(gè)字段的格式并沒有統(tǒng)一。在許多Linux系統(tǒng)中,這個(gè)字段存放的是一段任意的注釋性描述文字,用作finger命令的輸出。
6)“主目錄”,也就是用戶的起始工作目錄。
它是用戶在登錄到系統(tǒng)之后所處的目錄。在大多數(shù)系統(tǒng)中,各用戶的主目錄都被組織在同一個(gè)特定的目錄下,而用戶主目錄的名稱就是該用戶的登錄名。各用戶對自己的主目錄有讀、寫、執(zhí)行(搜索)權(quán)限,其他用戶對此目錄的訪問權(quán)限則根據(jù)具體情況設(shè)置。
7)用戶登錄后,要啟動(dòng)一個(gè)進(jìn)程,負(fù)責(zé)將用戶的操作傳給內(nèi)核,這個(gè)進(jìn)程是用戶登錄到系統(tǒng)后運(yùn)行的命令解釋器或某個(gè)特定的程序,即Shell。
Shell是用戶與Linux系統(tǒng)之間的接口。Linux的Shell有許多種,每種都有不同的特點(diǎn)。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。
系統(tǒng)管理員可以根據(jù)系統(tǒng)情況和用戶習(xí)慣為用戶指定某個(gè)Shell。如果不指定Shell,那么系統(tǒng)使用sh為默認(rèn)的登錄Shell,即這個(gè)字段的值為/bin/sh。
用戶的登錄Shell也可以指定為某個(gè)特定的程序(此程序不是一個(gè)命令解釋器)。
利用這一特點(diǎn),我們可以限制用戶只能運(yùn)行指定的應(yīng)用程序,在該應(yīng)用程序運(yùn)行結(jié)束后,用戶就自動(dòng)退出了系統(tǒng)。有些Linux 系統(tǒng)要求只有那些在系統(tǒng)中登記了的程序才能出現(xiàn)在這個(gè)字段中。
8)系統(tǒng)中有一類用戶稱為偽用戶(pseudo users)。
這些用戶在/etc/passwd文件中也占有一條記錄,但是不能登錄,因?yàn)樗鼈兊牡卿汼hell為空。它們的存在主要是方便系統(tǒng)管理,滿足相應(yīng)的系統(tǒng)進(jìn)程對文件屬主的要求。
常見的偽用戶如下所示:
偽 用 戶 含 義 bin 擁有可執(zhí)行的用戶命令文件 sys 擁有系統(tǒng)文件 adm 擁有帳戶文件 uucp UUCP使用 lp lp或lpd子系統(tǒng)使用 nobody NFS使用/etc/shadow
1、除了上面列出的偽用戶外,還有許多標(biāo)準(zhǔn)的偽用戶,例如:audit, cron, mail, usenet等,它們也都各自為相關(guān)的進(jìn)程和文件所需要。
由于/etc/passwd文件是所有用戶都可讀的,如果用戶的密碼太簡單或規(guī)律比較明顯的話,一臺(tái)普通的計(jì)算機(jī)就能夠很容易地將它破解,因此對安全性要求較高的Linux系統(tǒng)都把加密后的口令字分離出來,單獨(dú)存放在一個(gè)文件中,這個(gè)文件是/etc/shadow文件。有超級用戶才擁有該文件讀權(quán)限,這就保證了用戶密碼的安全性。
2、/etc/shadow中的記錄行與/etc/passwd中的一一對應(yīng),它由pwconv命令根據(jù)/etc/passwd中的數(shù)據(jù)自動(dòng)產(chǎn)生
它的文件格式與/etc/passwd類似,由若干個(gè)字段組成,字段之間用":"隔開。這些字段是:
登錄名:加密口令:最后一次修改時(shí)間:最小時(shí)間間隔:最大時(shí)間間隔:警告時(shí)間:不活動(dòng)時(shí)間:失效時(shí)間:標(biāo)志/etc/group
用戶組的所有信息都存放在/etc/group文件中。
將用戶分組是Linux 系統(tǒng)中對用戶進(jìn)行管理及控制訪問權(quán)限的一種手段。
每個(gè)用戶都屬于某個(gè)用戶組;一個(gè)組中可以有多個(gè)用戶,一個(gè)用戶也可以屬于不同的組。
當(dāng)一個(gè)用戶同時(shí)是多個(gè)組中的成員時(shí),在/etc/passwd文件中記錄的是用戶所屬的主組,也就是登錄時(shí)所屬的默認(rèn)組,而其他組稱為附加組。
用戶要訪問屬于附加組的文件時(shí),必須首先使用newgrp命令使自己成為所要訪問的組中的成員。
用戶組的所有信息都存放在/etc/group文件中。此文件的格式也類似于/etc/passwd文件,由冒號(:)隔開若干個(gè)字段,這些字段有:
組名:口令:組標(biāo)識號:組內(nèi)用戶列表但賬號仍能保持有效的最大天數(shù)。
/etc/group
用戶組的所有信息都存放在/etc/group文件中。
將用戶分組是Linux 系統(tǒng)中對用戶進(jìn)行管理及控制訪問權(quán)限的一種手段。
每個(gè)用戶都屬于某個(gè)用戶組;一個(gè)組中可以有多個(gè)用戶,一個(gè)用戶也可以屬于不同的組。
當(dāng)一個(gè)用戶同時(shí)是多個(gè)組中的成員時(shí),在/etc/passwd文件中記錄的是用戶所屬的主組,也就是登錄時(shí)所屬的默認(rèn)組,而其他組稱為附加組。
用戶要訪問屬于附加組的文件時(shí),必須首先使用newgrp命令使自己成為所要訪問的組中的成員。
用戶組的所有信息都存放在/etc/group文件中。此文件的格式也類似于/etc/passwd文件,由冒號(:)隔開若干個(gè)字段,這些字段有:
組名:口令:組標(biāo)識號:組內(nèi)用戶列表總結(jié)
以上是生活随笔為你收集整理的linux-03-Vim使用+账号用户管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: top、postop、scrolltop
- 下一篇: 分享自己写的一个贪吃蛇的游戏(Linux