溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux中如何做好賬戶管理

發(fā)布時(shí)間:2022-01-05 09:38:23 來源:億速云 閱讀:123 作者:小新 欄目:云計(jì)算

這篇文章將為大家詳細(xì)講解有關(guān)linux中如何做好賬戶管理,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

賬戶管理

大家都知道,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)建用戶及用戶組?

創(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)賬戶信息及密碼信息保存在哪里?

如果你想通過某種方式知道系統(tǒng)中所有的用戶及group信息時(shí),最簡單的方式就是查看用戶管理相關(guān)的數(shù)據(jù)文件,一般這些文件對所有用戶都是可讀的,這些文件包括/etc/passwd, /etc/shadow, /etc/group等。

/etc/passwd

不要被該文件的命名迷惑,以前的確會保存密碼,但是現(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)。

/etc/group

該文件保存所有用戶群組的信息,每個(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/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ò),請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI