- Linux系統(tǒng)命令及Shell腳本實(shí)踐指南
- 王軍
- 90字
- 2019-01-01 00:09:58
2.2 Linux賬號管理
Linux賬號管理是Linux系統(tǒng)管理員的一個(gè)重要工作,具體來說,涉及賬號的添加、刪除和修改等操作。從賬號類型來說,Linux用戶按照使用方式分為三種:一是根用戶,二是系統(tǒng)用戶,三是普通用戶。
2.2.1 新增和刪除用戶
1.新增用戶:useradd
useradd命令用于添加新的用戶。其使用方式很簡單,通常情況下可直接在該命令后跟上新增的用戶名。比如,需要新建一個(gè)叫john的用戶,直接輸入命令useradd john即可。但是對于系統(tǒng)來說,完成這個(gè)命令需要在后臺執(zhí)行很多對用戶來說毫無感知的行為。
[root@localhost ~]# useradd john
首先,系統(tǒng)需要將用戶信息記錄在/etc/passwd中,一般會(huì)在/etc/passwd和/etc/shadow末尾追加一條記錄,同時(shí)會(huì)分配給該用戶一個(gè)UID。
接著,要為該用戶自動(dòng)創(chuàng)建家目錄。家目錄以創(chuàng)建的用戶名為目錄名,創(chuàng)建的路徑在/home目錄中。比如,在上述案例中,創(chuàng)建的目錄將是/home/john。
然后,復(fù)制/etc/skel下所有的文件至/home/john。說明一下,如果你使用ls-l /etc/skel命令查看,可以發(fā)現(xiàn)這個(gè)目錄下“什么都沒有”,但事實(shí)上,該目錄下面有很多隱藏文件,使用命令ls-la /etc/skel就可以看到其中還是有好幾個(gè)文件的。
最后,新建一個(gè)與該用戶名一樣的用戶組,也就是說當(dāng)創(chuàng)建用戶john的時(shí)候,也同時(shí)創(chuàng)建了一個(gè)叫john的用戶組,而用戶john默認(rèn)屬于john用戶組(關(guān)于用戶組的概念將在下一節(jié)中講到)。
這里需要對/etc/skel目錄做一些說明。系統(tǒng)在添加用戶時(shí),需要預(yù)先為這個(gè)用戶創(chuàng)建一些默認(rèn)的“配置文件”,而默認(rèn)配置的就是/etc/skel目錄下的幾個(gè)隱藏文件。可以說,/etc/skel實(shí)際上是創(chuàng)建用戶時(shí)的“模板”。
做一個(gè)小實(shí)驗(yàn),實(shí)驗(yàn)過程如下所示:
[root@localhost ~]# cd /etc/skel/ [root@localhost skel]# touch TempFile [root@localhost skel]# useradd john01 [root@localhost skel]# cd /home/john01/ [root@localhost john]# ls-l total 0 -rw-r--r-- 1 john john 0 Oct 25 23:41 TempFile
也就是說,手工在/etc/skel中創(chuàng)建一個(gè)文件TempFile(touch命令就是創(chuàng)建文件的命令),然后再添加用戶john01時(shí),在家目錄/home/john01中也會(huì)同樣發(fā)現(xiàn)這個(gè)文件。這說明其實(shí)在創(chuàng)建用戶后,會(huì)將/etc/skel中的所有文件直接復(fù)制過來。
在使用useradd添加用戶時(shí),系統(tǒng)會(huì)給該用戶自動(dòng)分配一個(gè)UID,但是也可以通過使用-u參數(shù)實(shí)現(xiàn)指定UID,當(dāng)然,必須要指定的UID不與其他用戶沖突才可以。下面的例子就創(chuàng)建了一個(gè)UID為555的賬號:
[root@localhost skel]# useradd-u 555 user1
既然可以指定新創(chuàng)建用戶的UID,也應(yīng)該可以指定GID吧?答案是肯定的,使用-g參數(shù)可以做到這點(diǎn)。下面就是創(chuàng)建用戶user2時(shí),指定了該用戶所屬的Group是user1。
[root@localhost skel]# useradd-g user1 user2
還可以使用-d參數(shù)指定該用戶的家目錄,而不是使用系統(tǒng)默認(rèn)創(chuàng)建的家目錄。像下面這樣就可以指定/home/mydir3作為user3用戶的家目錄:
[root@localhost skel]# useradd-d /home/mydir3 user3
useradd命令還有很多其他一些并不常用的參數(shù),具體的參數(shù)和說明可以使用命令man useradd獲得幫助。
2.修改密碼:passwd
創(chuàng)建用戶后,該用戶實(shí)際上還沒有登錄系統(tǒng)的權(quán)限,因?yàn)樵诓辉O(shè)置密碼的情況下,在/etc/shadow中該用戶記錄中以冒號分隔的第二列將顯示為兩個(gè)感嘆號“!!”,這說明不允許該用戶登錄系統(tǒng)。因此,需要同時(shí)設(shè)置用戶的密碼才行,設(shè)置命令是passwd后接用戶名,如下所示:
[root@localhost skel]# passwd john Changing password for user john. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
這里輸入兩遍需要設(shè)置的密碼即可。如果不輸入密碼而是直接按回車鍵兩次,密碼會(huì)設(shè)置失敗,如果輸入了太過簡單的密碼,系統(tǒng)將會(huì)顯示“BAD PASSWORD: it is too simplistic/systematic”。雖然系統(tǒng)會(huì)提示密碼太過簡單,但還是會(huì)接受其作為該用戶的密碼。
普通用戶也可以使用passwd來修改自己的密碼,但是需要提供當(dāng)前用戶的密碼才可以,并且密碼不能太過簡單,因?yàn)橄到y(tǒng)會(huì)拒絕普通用戶設(shè)置過于簡單的密碼。命令如下所示:
[john@localhost ~]$ passwd Changing password for user john. Changing password for john (current) UNIX password: New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
與root用戶使用這個(gè)命令的方式不同,普通用戶在運(yùn)行這個(gè)命令時(shí),后面不能跟參數(shù),哪怕是自己的用戶名也不行。比如說使用john登錄,然后采用passwd john命令,系統(tǒng)就會(huì)立刻報(bào)錯(cuò),提示只有root用戶才可以在后面跟上用戶名,如下所示:
[john@localhost ~]$ passwd john passwd: Only root can specify a user name.
3.修改用戶:usermod
有時(shí)候可能會(huì)由于某些具體的場景,而需要對已存在的用戶進(jìn)行修改,這時(shí)候就需要使用usermod命令了。比如說,下面創(chuàng)建了一個(gè)用戶并設(shè)置了密碼:
[root@localhost ~]# useradd alice [root@localhost ~]# passwd alice Changing password for user alice. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
現(xiàn)在看一下用戶alice在/etc/passwd中的記錄:
[root@localhost ~]# cat /etc/passwd | grep alice alice:x:503:503::/home/alice:/bin/bash
冒號隔開的第五列是用戶alice的家目錄,如果希望修改家目錄為/home/alice_new,可使用以下命令對alice的家目錄做修改:
[root@localhost ~]# usermod-d /home/alice_new-m alice
其中,-m參數(shù)的作用是,如果指定用戶的家目錄存在,就自動(dòng)創(chuàng)建新目錄/home/alice_new,并使用該目錄作為alice的新家目錄。如果沒有這個(gè)參數(shù),系統(tǒng)會(huì)報(bào)一個(gè)錯(cuò)誤:usermod: user /home/alice_new does not exist。再看一下alice在/etc/passwd中的記錄,大家可以發(fā)現(xiàn),第五列的家目錄發(fā)生了變化:
[root@localhost ~]# cat /etc/passwd | grep alice alice:x:503:503::/home/alice_new:/bin/bash
也許會(huì)因?yàn)槟承┰颍~號alice現(xiàn)在還不適合使用(如發(fā)現(xiàn)賬號異常),需要暫時(shí)將這個(gè)賬號凍結(jié)起來,這時(shí),可以使用-L參數(shù)實(shí)現(xiàn)此目的。在操作之前先看一下/etc/shadow中關(guān)于alice的內(nèi)容,然后再進(jìn)行凍結(jié)操作,最后再看一下/etc/shadow,看看有什么不同。
[root@localhost ~]# cat /etc/shadow | grep alice alice:$1$Doi70VUY$Gmjq6HijgNLsm7xnys4Lw/:15642:0:99999:7::: [root@localhost ~]# usermod-L alice [root@localhost ~]# cat /etc/shadow | grep alice alice:!$1$Doi70VUY$Gmjq6HijgNLsm7xnys4Lw/:15642:0:99999:7:::
你可能已注意到,在冒號隔開的第二列,也就是密碼處多了一個(gè)感嘆號,這表示該賬號已被凍結(jié)。使用-U參數(shù)可以解鎖,而且可以看到密碼又恢復(fù)如從前了。
[root@localhost ~]# usermod-U alice [root@localhost ~]# cat /etc/shadow | grep alice alice:$1$Doi70VUY$Gmjq6HijgNLsm7xnys4Lw/:15642:0:99999:7:::
其實(shí)usermod命令就是在對/etc/passwd和/etc/shadow文件做一些修改而已。明白了這個(gè)道理之后,就算不使用這個(gè)命令依然可以手工對用戶進(jìn)行修改操作。usermod還有其他一些不常用的參數(shù),具體的參數(shù)和說明可以使用man usermod命令獲得幫助。
4.刪除用戶:userdel
用戶管理除了創(chuàng)建、修改用戶之外,有時(shí)候也需要?jiǎng)h除用戶。對應(yīng)的命令是userdel。例如現(xiàn)在需要?jiǎng)h除alice用戶:
[root@localhost ~]# userdel alice
使用這個(gè)命令會(huì)將刪除alice在/etc/passwd和/etc/shadow中的記錄。但是從數(shù)據(jù)安全方面考慮,默認(rèn)情況下,刪除用戶時(shí)并不會(huì)刪除原來用戶的家目錄和郵件信息。可以使用-r參數(shù)同時(shí)刪除用戶家目錄和該用戶的郵件。注意,一旦執(zhí)行了這條命令,該用戶的相關(guān)文件就會(huì)被全部刪除。
2.2.2 新增和刪除用戶組
1.增加用戶組:groupadd
上一節(jié)中我們知道,在添加用戶的時(shí)候系統(tǒng)默認(rèn)會(huì)創(chuàng)建一個(gè)與用戶名一樣的用戶組。其實(shí)也可以直接創(chuàng)建用戶組,新增用戶組的命令是groupadd,后接用戶組名稱作為其參數(shù)。在Linux中,使用/etc/group文件來記錄用戶組。如下所示為使用groupadd命令增加一個(gè)group1組:
[root@localhost ~]# groupadd group1
按回車鍵后,注意看/etc/group的最后一行,在本例中,添加的用戶組group1的GID為503。
[root@localhost ~]# cat /etc/group ......(略去內(nèi)容)...... group1:x:503:
在/etc/group文件中,每一行就代表一個(gè)用戶組,其格式是使用3個(gè)分隔號“:”隔開的4列。第一列是用戶組名,第二列代表密碼(但是并不使用),第三列代表用戶組的數(shù)字ID,第四列是組成員,這里為空說明還沒有任何用戶屬于這個(gè)組。
2.刪除用戶組:groupdel
刪除用戶組的命令是groupdel,后接要被刪除的用戶組名作為其參數(shù)。這里需要注意的是,如果已有用戶屬于這個(gè)試圖刪除的組,該操作會(huì)失敗。groupdel命令的使用方式如下:
[root@localhost ~]# groupdel group1
2.2.3 檢查用戶信息
1.查看用戶:users、who、w
使用命令users可以查看當(dāng)前系統(tǒng)有哪些用戶。比如,在當(dāng)前的系統(tǒng)中運(yùn)行users命令,就會(huì)發(fā)現(xiàn)有兩個(gè)root在當(dāng)前機(jī)器上登錄。實(shí)際上,Linux會(huì)把所有來自不同終端的活動(dòng)定義為一個(gè)會(huì)話,從who命令的輸出,可以看出root用戶是通過不同的終端登錄到系統(tǒng)中的。users命令相對比較簡單,所以列出的信息也比較少,可以使用命令who來看到更多信息,如下所示:
[root@localhost ~]# users root root [root@localhost ~]# who root tty1 2012-11-01 23:00 root pts/0 2012-11-01 22:56 (192.168.179.1)
命令顯示的結(jié)果有3列,第一列是登錄用戶的用戶名,第二列是用戶登錄的終端,第三列是用戶登錄的時(shí)間。如果是通過遠(yuǎn)程網(wǎng)絡(luò)登錄,則同時(shí)會(huì)顯示遠(yuǎn)程主機(jī)的主機(jī)名或IP地址。還可以使用命令w看到更詳細(xì)的信息,如下所示:
[root@localhost ~]# w 23:21:30 up 27 min,2 users,load average: 0.00,0.00,0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - 23:00 7.00s 0.02s 0.02s-bash root pts/0 192.168.179.1 22:56 0.00s 0.03s 0.00s w
w命令的第一行會(huì)顯示當(dāng)前時(shí)間、系統(tǒng)運(yùn)行時(shí)間、已登錄的用戶數(shù)量和系統(tǒng)負(fù)載。下面顯示的信息分為8列,每一列解釋如下。
第一列:登錄用戶的用戶名。
第二列:用戶登錄終端。
第三列:如果用戶從網(wǎng)絡(luò)登錄,則顯示遠(yuǎn)程主機(jī)的主機(jī)名或IP地址。
第四列:用戶登錄時(shí)間。
第五列:用戶閑置時(shí)間。
第六列:與終端相關(guān)的當(dāng)前所有運(yùn)行進(jìn)程消耗的CPU時(shí)間總量。
第七列:當(dāng)前WHAT列所對應(yīng)的進(jìn)程所消耗的CPU時(shí)間總量。
第八列:用戶當(dāng)前運(yùn)行的進(jìn)程。
2.調(diào)查用戶:finger
finger命令在不加任何參數(shù)的情況下,同樣會(huì)顯示系統(tǒng)的登錄用戶,如下所示:
[root@localhost ~]# finger Login Name Tty Idle Login Time Office Office Phone root root tty1 22 Nov 1 23:00 root root pts/0 Nov 1 22:56 (192.168.179.1)
如果在finger后跟上某個(gè)用戶名,則顯示該用戶更詳細(xì)的信息,如下所示:
[root@localhost ~]# finger user1 Login: user1 Name: (null) Directory: /home/user1 Shell: /bin/bash Never logged in. #顯示用戶最近一次登錄到系統(tǒng)中的時(shí)間 No mail. #顯示郵件信息 No Plan. #顯示計(jì)劃信息
- 綜合布線實(shí)訓(xùn)教程(第3版)
- 響應(yīng)式網(wǎng)頁開發(fā)基礎(chǔ)教程(jQuery+Bootstrap)
- 大東話安全之網(wǎng)絡(luò)病毒篇
- Axure RP 7.0從入門到精通:Web + APP產(chǎn)品經(jīng)理原型設(shè)計(jì)
- 網(wǎng)絡(luò)規(guī)劃與設(shè)計(jì)實(shí)用教程
- 深入集群:大型數(shù)據(jù)中心資源調(diào)度與管理
- 分析信息:香農(nóng)、維特根斯坦、圖靈和喬姆斯基對信息的兩次分離
- PWA實(shí)戰(zhàn):面向下一代的Progressive Web APP
- 計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ):基于案例與實(shí)訓(xùn) 第2版
- 網(wǎng)絡(luò)基礎(chǔ)
- CSS新世界
- DIV+CSS網(wǎng)頁布局實(shí)用教程
- Dreamweaver CS6實(shí)例教程(第3版)
- Mastering SaltStack
- 新手易學(xué):黑客攻防入門