這篇文章將為大家詳細(xì)講解有關(guān)linux中如何做好賬戶管理,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!專注中小微企業(yè)官網(wǎng)定制,成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì),塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。
大家都知道,linux操作系統(tǒng)是典型的多用戶多任務(wù)操作系統(tǒng),即同一時(shí)間內(nèi),允許由多個(gè)用戶同時(shí)登錄同一臺計(jì)算機(jī),運(yùn)行各自的一個(gè)或多個(gè)任務(wù),各個(gè)用戶之間并不一定能明確的感知到其他用戶的登錄操作。linux上存在一個(gè)超級用戶,就是root,root賬戶幾乎無所不能,可以用來創(chuàng)建和配置非root賬戶。
關(guān)于賬戶管理,有兩個(gè)概念必須理解,用戶(User)和用戶組(Group)。
用戶(User):一臺計(jì)算機(jī)允許程序或人登錄并在一定權(quán)限范圍之內(nèi)運(yùn)行任務(wù)的賬戶配置信息。
用戶組(Group):Linux允許把一類用戶(多個(gè))劃分到一個(gè)組里,這一組的用戶擁有相同的操作權(quán)限,當(dāng)然一個(gè)用戶也可以只對應(yīng)一個(gè)組,同時(shí)也支持將一個(gè)賬戶添加到多個(gè)組里。
創(chuàng)建group:
groupadd group1
創(chuàng)建group時(shí)指定GID(group ID):
groupadd -g 100 group2
創(chuàng)建user:
useradd user1
創(chuàng)建user 時(shí)指定初始的group,如果不指定group,linux會默認(rèn)創(chuàng)建同名的group:
useradd user1 -g group1
創(chuàng)建user時(shí),指定UID(user ID):
useradd user2 -u 100 -g group2
Linux 按照使用場景不同,可以將用戶分為系統(tǒng)賬戶和普通賬戶,系統(tǒng)賬戶主要作為系統(tǒng)進(jìn)程或程序的賬戶,普通賬戶也可以稱之交互賬戶,普通賬戶主要用于操作系統(tǒng)使用者,跟某個(gè)使用人相關(guān),通過該賬戶,使得使用者具有一定的權(quán)限使用該計(jì)算機(jī)資源,比如登錄,瀏覽網(wǎng)頁,運(yùn)行程序,閱讀文檔等等。除了使用上的不同外,系統(tǒng)賬戶和普通賬戶的UID、GID范圍是不同的,系統(tǒng)賬戶通過SYS_UID_MIN、SYS_UID_MAX和SYS_GID_MIN、SYS_GID_MAX定義,普通賬戶通過GID_MIN、GID_MAX和UID_MIN、UID_MAX,這些參數(shù)的定義可以在/etc/login.defs中找到:
# # Min/max values for automatic uid selection in useradd # UID_MIN 1000 UID_MAX 60000 # System accounts SYS_UID_MIN 201 SYS_UID_MAX 999 # # Min/max values for automatic gid selection in groupadd # GID_MIN 1000 GID_MAX 60000 # System accounts SYS_GID_MIN 201 SYS_GID_MAX 999
創(chuàng)建系統(tǒng)賬戶和系統(tǒng)組:
groupadd -r -g 100 group2 useradd -r user2 -u 100 -g group2
還可以將一個(gè)user添加到兩個(gè)不同的group中來:
groupadd -r -g 100 group2 useradd -r user2 -u 100 -g group2 -G group1
創(chuàng)建普通賬戶時(shí)指定home目錄,指定登錄的交互程序:
useradd user2 -u 100 -g group2 -d /home/user2 -s /bin/bash
創(chuàng)建系統(tǒng)賬戶時(shí)禁止登錄及home目錄:
useradd user2 -u 100 -g group2 -d /dev/null -s /sbin/nologin
修改group的GID和 group name,將gid修改為10000,名稱充group2修改為group3:
groupmod –g 10000 -n group3 group2
刪除group:
groupdel group2
修改賬戶屬性,此命令將用戶user1的登錄Shell修改為ksh,主目錄改為/home/test,用戶組改為group3。
usermod -s /bin/ksh -d /home/test –g group3 user1
刪除賬戶:
userdel user1
如果一個(gè)用戶同時(shí)屬于多個(gè)group時(shí),可以在不同group之間進(jìn)行切換,以使同一賬戶具有不同group的權(quán)限:
newgrp root
參考幫助 useradd ,groupadd,usermod,groupmod,userdel,groupdel,
密碼是賬戶訪問的一把鑰匙,不管使用何種方式登錄賬戶,用戶必須輸入密碼來使用計(jì)算機(jī)資源,一般交互式賬戶必須設(shè)定密碼,設(shè)置用戶密碼有兩種方式,一種是在創(chuàng)建賬戶時(shí)使用-p參數(shù)設(shè)定初始密碼,一種是使用passwd命令修改賬戶密碼。普通用戶只能修改自己賬戶的密碼,root用戶可以修改任意賬戶的密碼。
創(chuàng)建賬戶時(shí)指定密碼:
useradd user2 -u 100 -g group2 -d /home/user2 -s /bin/bash -p jlkdakfdf
創(chuàng)建賬戶時(shí)指定的密碼是明文,雖然Linux最終會加密,但是這種方式還是不安全,建議使用第二種方式。
修改賬戶密碼:
(svnenv)user2@d076cf119be7:/mnt/share$ passwd Current password: New password: Retype new password: passwd: password updated successfully
首先會提示用戶輸入當(dāng)前密碼,然后設(shè)定新密碼并再次確認(rèn)。密碼應(yīng)包含6到8個(gè)字符,包括一個(gè)或多個(gè)字符來自以下每個(gè)集合的字符:
小寫字母
數(shù)字0到9
標(biāo)點(diǎn)符號
必須注意不要包括系統(tǒng)默認(rèn)擦除或終止字符。 passwd將拒絕任何不合適的密碼。
參考幫助passwd。
如果你想通過某種方式知道系統(tǒng)中所有的用戶及group信息時(shí),最簡單的方式就是查看用戶管理相關(guān)的數(shù)據(jù)文件,一般這些文件對所有用戶都是可讀的,這些文件包括/etc/passwd, /etc/shadow, /etc/group等。
不要被該文件的命名迷惑,以前的確會保存密碼,但是現(xiàn)在主要保存用戶配置信息,你可以通過該文件查詢系統(tǒng)所有的賬戶信息,包括系統(tǒng)賬戶和普通賬戶:
# cat /etc/passwd root: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: sam:x:200:50:Sam san:/usr/sam:/bin/sh user2:x:1007:1007::/home/user2:/bin/bash user1:x:1008:1008::/home/user1:/bin/bash
每條記錄都對應(yīng)于一個(gè)賬戶及其屬性,通常被冒號“:”分割成7個(gè)字段,分別對應(yīng):
用戶名:口令:用戶標(biāo)識號:組標(biāo)識號:注釋:主目錄:登錄Shell
用戶名:用戶賬號的字符串,由大小寫字母和數(shù)字組成。登錄名中不能有冒號(:),因?yàn)槊疤栐谶@里是分隔符。為了兼容起見,登錄名中最好不要包含點(diǎn)字符(.),并且不使用連字符(-)和加號(+)打頭。
口令:雖然這個(gè)字段存放的只是用戶口令的加密串,不是明文,但是由于/etc/passwd文件對所有用戶都可讀,所以這仍是一個(gè)安全隱患。因此,現(xiàn)在許多Linux 系統(tǒng)(如SVR4)都使用了shadow技術(shù),把真正的加密后的用戶口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一個(gè)特殊的字符,例如“x”或者“*”。
用戶標(biāo)識號:即UID,用來標(biāo)識用戶,系統(tǒng)用戶和普通用戶的UID大小范圍在配置文件/etc/login.defs中定義。它與用戶名是一一對應(yīng)的,使用useradd添加賬戶時(shí),如果指定的UID已經(jīng)被使用,則會提示用戶"UID 1008 is not unique"。
組標(biāo)識符:該字段標(biāo)識該用戶初始的group,對應(yīng)/etc/group中的一條記錄,擴(kuò)展group不會在這里記錄。
注釋:例如用戶的真實(shí)姓名、電話、地址等,這個(gè)字段并沒有什么實(shí)際的用途。在不同的Linux 系統(tǒng)中,這個(gè)字段的格式并沒有統(tǒng)一。在許多Linux系統(tǒng)中,這個(gè)字段存放的是一段任意的注釋性描述文字。
主目錄:用戶的初始工作目錄,它是用戶在登錄到系統(tǒng)之后所處的目錄。在大多數(shù)系統(tǒng)中,各用戶的主目錄都被組織在同一個(gè)特定的目錄下,而用戶主目錄的名稱就是該用戶的登錄名。各用戶對自己的主目錄有讀、寫、執(zhí)行(搜索)權(quán)限,其他用戶對此目錄的訪問權(quán)限則根據(jù)具體情況設(shè)置。當(dāng)使用useradd添加新的賬戶時(shí),默認(rèn)會在/home目錄下創(chuàng)建于賬戶名稱相同的目錄,如若用戶指定了(-d 參數(shù))主目錄,則會以指定的目錄為準(zhǔn)。
登錄shell:Linux 用戶登錄后,要啟動一個(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)等。用戶的登錄Shell也可以指定為某個(gè)特定的程序(此程序不是一個(gè)命令解釋器)。利用這一特點(diǎn),我們可以限制用戶只能運(yùn)行指定的應(yīng)用程序,在該應(yīng)用程序運(yùn)行結(jié)束后,用戶就自動退出了系統(tǒng)。
該文件保存所有用戶群組的信息,每個(gè)用戶都屬于某個(gè)用戶組;一個(gè)組中可以有多個(gè)用戶,一個(gè)用戶也可以屬于不同的組。當(dāng)一個(gè)用戶同時(shí)是多個(gè)組中的成員時(shí),在/etc/passwd文件中記錄的是用戶所屬的主組,也就是登錄時(shí)所屬的默認(rèn)組,而其他組稱為附加組。用戶要訪問屬于附加組的文件時(shí),必須首先使用newgrp命令使自己成為所要訪問的組中的成員。
$ cat /etc/group root:x:0: bin:x:1: daemon:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: user2:x:1007: user1:x:1008: user3:x:1009: user4:x:1010: user5:x:1011:user1,user2
該文件中記錄的每條記錄使用冒號“:”分割成3個(gè)字段:
組名:口令:組標(biāo)識號:組內(nèi)用戶列表
組名:group名稱,由字母和數(shù)字組成,規(guī)則類似于用戶名,組名不能重復(fù)。
口令:group不會設(shè)置口令,因此該字段為空、x或者*。
組標(biāo)識號:即GID,系統(tǒng)組合普通組的大小范圍在文件/etc/login.defs中定義。
組內(nèi)用戶列表:屬于這個(gè)組的所有用戶的列表,不同用戶之間用逗號“,”分隔。這個(gè)用戶組可能是用戶的主組,也可能是附加組。
/etc/shadow中的記錄行與/etc/passwd中的一一對應(yīng),它由pwconv命令根據(jù)/etc/passwd中的數(shù)據(jù)自動產(chǎn)生。它的文件格式與/etc/passwd類似,由若干個(gè)字段組成,字段之間用":"隔開。這些字段是:
登錄名:加密密碼:上次更改密碼的日期:最低密碼年齡:最長密碼年齡:密碼警告期:密碼不活動期:賬戶到期日:保留字段
登錄名:即用戶賬號。
加密密碼:加密后的用戶密碼,該字段可能為空,在這種情況下不需要密碼進(jìn)行驗(yàn)證登錄。
上次更改密碼的日期:上次密碼更改的日期,以數(shù)字表示,自1970年1月1日以來的幾天,空字段表示禁用密碼時(shí)效功能。
最低密碼年齡:密碼最小使用期限是用戶擁有的天數(shù)。
最長密碼年齡:密碼最長使用期限是之后的天數(shù),用戶必須更改她的密碼。經(jīng)過這幾天后,密碼可能仍然是有效。應(yīng)該要求用戶在下一次更改密碼她將登錄的時(shí)間??兆侄伪硎緵]有最大密碼期限,沒有密碼警告期,沒有密碼不活動期,如果密碼最長使用期限低于最小密碼年齡,用戶無法更改密碼。
密碼警告期:表示的是從系統(tǒng)開始警告用戶到用戶密碼正式失效之間的天數(shù)。
密碼不活動期:表示的是用戶沒有登錄活動但賬號仍能保持有效的最大天數(shù)。
賬戶到期日:字段給出的是一個(gè)絕對的天數(shù),如果使用了這個(gè)字段,那么就給出相應(yīng)賬號的生存期。期滿后,該賬號就不再是一個(gè)合法的賬號,也就不能再用來登錄了。
$ cat /etc/shadow root:$1$eWL4wrs5$W.HzKJ24HVGTyADdFYsOd1vO1:17637:0:99999:7::: lp:*:13510:0:99999:7::: nobody:*:13509:0:99999:7::: tc::13646:0:99999:7::: dockremap:!:17085:0:99999:7::: docker:$1$VdAIBSrn$Sx/A85NaQsIYib1JlZex61:17566:0:99999:7::: user2:$6$pNjbuPVU.FFx56xoQCx$NGfUX/u.h.WssFSLOKH.pgbWNdHldKKFalKL6BNHZIFs9.alunrNuQhatNXl/lk0:17721:0:99999:7::: user1:!!:17722:0:99999:7::: user3:!!:17722:0:99999:7::: user4:!!:17722:0:99999:7::: user5:!!:17722:0:99999:7:::
關(guān)于“l(fā)inux中如何做好賬戶管理”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。