linux用戶(hù)管理部分主要介紹5個(gè)內(nèi)容,用戶(hù)管理配置文件,用戶(hù)管理命令,用戶(hù)組管理命令,批量添加用戶(hù),用戶(hù)授權(quán)。一、用戶(hù)配置文件 上圖就是我們需要掌握的一些配置文件,下面我們一一來(lái)解讀:(1)/etc/passwd 用戶(hù)信息文件在學(xué)習(xí)這個(gè)配置文件的時(shí)候,我們可以通過(guò)man 5 passwd來(lái)查看下這個(gè)配置文件的幫助,其中參數(shù)5是用來(lái)區(qū)分命令與配置文件的。從幫助文檔中可以看到這個(gè)配置文件的每一行的一個(gè)統(tǒng)一格式:然后我們more 一下這個(gè)配置文件,看到這個(gè)與man得到的格式是匹配的,這樣我們就一個(gè)一個(gè)弄清每一位的作用。1.用戶(hù)名與UID linux用戶(hù)類(lèi)型分為三種:超級(jí)用戶(hù)(UID=0),偽用戶(hù)(UID=1-499),普通用戶(hù)(UID=500-60000)。可以看到通過(guò)用戶(hù)名和用戶(hù)的UID就可以確認(rèn)一個(gè)用戶(hù)的類(lèi)型。root用戶(hù)正是因?yàn)槠銾ID為0,才獲得了超級(jí)用戶(hù)的權(quán)限,倘若你把你自己添加的用戶(hù)的用戶(hù)的UID也改為0,那便同樣擁有的超級(jí)用戶(hù)的權(quán)限。 那偽用戶(hù)什么呢?其實(shí)這些用戶(hù)是并不能實(shí)際登陸的。偽用戶(hù)有如下特征: 總之,偽用戶(hù)的出現(xiàn)是為了安全,防止壞人在獲得某些程序或者服務(wù)的控制權(quán)以后。進(jìn)行破壞,所以給了一個(gè)特殊的用戶(hù)。而最后的普通用戶(hù),就是你自己添加的用戶(hù)了。2.密碼 密碼很簡(jiǎn)單,這里其實(shí)并不是真正的密碼,只是一個(gè)密碼位。其實(shí)這里本來(lái)是密碼的,只不過(guò)后來(lái)被轉(zhuǎn)移到其他的地方去了(轉(zhuǎn)移到/etc/shadow)。當(dāng)然我們也可以把密碼移回來(lái),通過(guò)pwunconv與pwconv實(shí)現(xiàn)互操作。 可以看到密碼其實(shí)是被md5算法加密過(guò)的密文,并不是明文(md5sum)3.GID 用戶(hù)組ID用戶(hù)組是許多用戶(hù)的集合。添加一個(gè)新用戶(hù),必須給予這個(gè)用戶(hù)一個(gè)用戶(hù)組,一般linux給新用戶(hù)分配組有兩種策略:要么是給所有新用戶(hù)默認(rèn)分配一個(gè)統(tǒng)一的組,要么創(chuàng)建一個(gè)與用戶(hù)名想同名字的用戶(hù)組,讓該用戶(hù)成為改組成員。centOS就是用的后一種。4.注釋性描述 宿主目錄 命令解釋器 (略)(2)/etc/shadow 用戶(hù)密碼文件同樣man 5 shadow獲得格式說(shuō)明:1.用戶(hù)名和密碼 這個(gè)文件就是保存用戶(hù)真正密碼的文件,如果把這個(gè)配置文件的某些用戶(hù)的密碼刪掉,(ps:普通用戶(hù)對(duì)這個(gè)配置文件是沒(méi)有w權(quán)限的,只有用root用戶(hù)修改),那么這些用戶(hù)無(wú)需密碼就可以登錄系統(tǒng)。2.最后一次修改時(shí)間 這個(gè)是計(jì)算修改密碼的那天與1970.1.1相差的天數(shù)3.最小時(shí)間間隔和最大時(shí)間間隔、警告時(shí)間 最小時(shí)間間隔設(shè)置的是兩次更改密碼的最小時(shí)間間隔(0是不限定)。最大的時(shí)間間隔就是如果在這個(gè)時(shí)間之內(nèi)不改密碼將無(wú)法登陸系統(tǒng)。當(dāng)然我們不可能去計(jì)算還差多少天就要更改密碼了,所以通過(guò)警告時(shí)間來(lái)告知用戶(hù),距離最大時(shí)間間隔還差多少天。4.賬號(hào)閑置時(shí)間、失效時(shí)間、標(biāo)志 (略)(3)/etc/skel 新用戶(hù)配置文件目錄 這個(gè)目錄中,全是隱藏的文件,大都是用來(lái)給用戶(hù)登錄時(shí)候使用的配置文件,如果你新添加一個(gè)用戶(hù),系統(tǒng)會(huì)把該目錄中的文件拷貝到用戶(hù)默認(rèn)的宿主目錄中去,以幫助新添加的用戶(hù)此后登錄系統(tǒng)。(4)/etc/login.defs與/etc/useradd 用戶(hù)默認(rèn)配置文件 通過(guò)查看這兩個(gè)文件,我們發(fā)現(xiàn),這其中描述的是關(guān)于/etc/passwd、/etc/shadow中默認(rèn)配置的內(nèi)容設(shè)定。也就是說(shuō)/etc/passwd、/etc/shadow、還有登錄的缺省信息是哪里來(lái)的呢?就是從這兩個(gè)文件來(lái)的。我們可以通過(guò)修改這兩個(gè)文件里面的內(nèi)容來(lái)修改一些默認(rèn)的設(shè)置。(5)/etc/issue和/etc/motd 這兩個(gè)文件是用來(lái)設(shè)置每日消息的,但有什么不同呢?通過(guò)一個(gè)例子來(lái)說(shuō)明。首先修改兩個(gè)文件里的內(nèi)容。 可以看到效果,issue的每日消息,是在用戶(hù)尚未成功登錄系統(tǒng)時(shí)候時(shí)候就會(huì)顯示的。而motd中的消息是在成功登錄系統(tǒng)以后才會(huì)顯示。(6)手動(dòng)添加用戶(hù)專(zhuān)題 在我們添加用戶(hù)時(shí)候,最常用的方法就是使用useradd 用戶(hù)名 添加一個(gè)用戶(hù),然后再用passwd 用戶(hù)名 給該用戶(hù)設(shè)置密碼。但是useradd指令的原理是什么,背后到底做了什么事情呢?今天我們就手動(dòng)來(lái)添加以下用戶(hù):1.在/etc/passwd配置文件中添加用戶(hù)2.在/etc/shadow配置文件中添加用戶(hù)3.創(chuàng)建宿主目錄(創(chuàng)建的宿主目錄,忘記更改所有者了。。!囧!)4.把/etc/skel目錄下的文件拷貝到宿主目錄中(7)普通用戶(hù)如何改密碼 通過(guò)ls -l /etc/passwd /etc/shadow 查看這兩個(gè)配置文件,我們可以看到,對(duì)于普通用戶(hù)others是沒(méi)有修改權(quán)限W的。那為什么普通用戶(hù)能夠修改密碼呢? 其實(shí)原因在于用戶(hù)改密碼的命令passwd,我們查看下passwd可以看到在這個(gè)用戶(hù)的權(quán)限中,有一個(gè)s標(biāo)記,這不同于我們以往認(rèn)識(shí)的,文件只有rwx這三種權(quán)限,那s到底是什么意思呢?其實(shí)我們把s稱(chēng)作為SetUID。 SetUID只能是針對(duì)文件,針對(duì)目錄無(wú)效。換句話說(shuō),passwd的擁有者是root,那么以后其他用戶(hù)在執(zhí)行passwd這個(gè)文件的時(shí)候,會(huì)突然"穿越時(shí)空"臨時(shí)性的變成root用戶(hù),這樣就可以修改密碼了。那我們?cè)趺唇o文件設(shè)置SetUID的權(quán)限呢?要知道除了SetUID還有SetGID,功能類(lèi)似,只不過(guò)針對(duì)用戶(hù)組。那么SetUID的命令是,chmod 4xxx 或者chmod u+s。SetGID是chmod 2xxx或者chmod g+s。下面我來(lái)做一個(gè)實(shí)驗(yàn): 可以看到我給touch命令了setUID權(quán)限,然后再切換用戶(hù)到mysileng,通過(guò)mysileng用戶(hù)創(chuàng)建了一個(gè)文件,但是我們發(fā)現(xiàn),創(chuàng)建文件的owner即擁有者是root而不是mysileng用戶(hù),這就證明了setUID的功能。其實(shí)SetUID是很危險(xiǎn)的,假若有壞人給VI授予了SetUID,那不是?。。。。。恐怖。。。~~ 為了安全,我們可以定時(shí)對(duì)所有的文件中擁有SetUID或者SetGID的文件進(jìn)行查找,看有什么變化。命令是find / -perm -4000 -o -2000。0代表的是不限制。 我們通過(guò)umask可以查看到缺省最高位是0,這一位除了可以是2,或者4之外,可以設(shè)置為1。那是這什么功能呢?一般我們叫著黏著位。黏著位用t來(lái)表示,這個(gè)功能只能針對(duì)目錄來(lái)設(shè)置,并且是針對(duì)權(quán)限中的ohters用戶(hù),而且這個(gè)目錄權(quán)限一定是777(rwx)。本來(lái)在沒(méi)有黏著位的情況下,如果一個(gè)目錄ohters的權(quán)限是是777,那么所有普通用戶(hù)可以在這個(gè)文件夾中任意創(chuàng)建文件然后任意刪除文件。 但是在設(shè)置了黏著位以后,用戶(hù)們?cè)谠撐募A中,只能刪除自己創(chuàng)建的文件了。下面做一個(gè)實(shí)驗(yàn):(8)/etc/group與/etc/gshadow 用戶(hù)組配置文件與用戶(hù)組密碼文件 基本上與passwd和shadow文件的功能類(lèi)似,以下是具體格式解釋?zhuān)?br />二、用戶(hù)與用戶(hù)組管理命令(1)用戶(hù)管理命令1.添加用戶(hù)2.修改用戶(hù)信息 usermod -l 新用戶(hù)名 -d 新的宿主目錄 -g 用戶(hù)組 -l是更改用戶(hù)名,-d是給更改宿主目錄,-g是分配用戶(hù)組 usermod -G 用戶(hù)名 用戶(hù)組1 用戶(hù)組2... -G把用戶(hù)添加到多個(gè)組作用3.刪除用戶(hù) userdel -r 用戶(hù)名 -r是刪除宿主目錄 如果想手動(dòng)刪除一個(gè)用戶(hù):首先刪除/etc/passwd、/etc/shadow中的用戶(hù)信息,然后再/etc/group與/etc/gshadow中也刪除用戶(hù)信息,然后刪除宿主目錄,再通過(guò)find / -user 用戶(hù)名 -ok rm {}\;刪除以該用戶(hù)是onwer的文件。4.其他命令pwch 可以檢查文件的格式錯(cuò)誤vipw與vi passwd的不同之處在于,可以鎖定文件,避免寫(xiě)混亂。su 用戶(hù)名 與 su -用戶(hù)名的不同之處在于,改變用戶(hù)是否也跟著改變環(huán)境上下文。(2)用戶(hù)組管理命令1.添加用戶(hù)組 groupadd -g gid 組名2.刪除用戶(hù)組 groupdel 組名3.修改用戶(hù)組信息 groupmod -n namm 組名 //修改組名4.用戶(hù)組密碼修改命令 直接gpasswd 用戶(hù)組名就可以設(shè)置和更改組密碼5.其他命令三、批量添加用戶(hù) 介紹兩種方法批量添加:手動(dòng)批量添加,shell腳本批量添加。現(xiàn)在只講前一種,后一張?jiān)趕hell腳本章節(jié)再講。那手動(dòng)批量添加的步驟是:1.通過(guò)vi撰寫(xiě)所需要添加的用戶(hù)信息文件,格式與passwd類(lèi)似(假設(shè)為user.info)2.通過(guò)newusers導(dǎo)入需要添加的用戶(hù)信息文件:newusers < user.info3.再通過(guò)pwunconv取消shadow文件,并寫(xiě)一個(gè)關(guān)于用戶(hù)的密碼文件,假設(shè)為pass.info。格式為:新添加的用戶(hù)名:用戶(hù)密碼4.通過(guò)chpasswd命令導(dǎo)入新添加用戶(hù)的密碼:chpasswd < pass.info5.最后調(diào)用pwconv重新生成shadow文件即可。四、用戶(hù)授權(quán) 給用戶(hù)授權(quán)是很重要的。通常我們使用對(duì)用戶(hù)組的巧妙分配可以達(dá)到某些授權(quán)的目的,比如現(xiàn)在有一個(gè)需求:su命令是用來(lái)切換用戶(hù)的,假若普通用戶(hù)天天沒(méi)事就切換root用戶(hù),那么不是早晚一天能被猜中密碼,所以我們讓一般人不具有執(zhí)行的su命令的權(quán)限,而只有特定人可以su。那我們?cè)趺醋觯?br /> 首先我們創(chuàng)建一個(gè)用戶(hù)組sugroup,然后把su文件給予權(quán)限4550,關(guān)鍵是要把ohers的x權(quán)限去掉。然后通過(guò)chgrp更改su命令的用戶(hù)組,使sugroup變成su的用戶(hù)組,這樣普通的用戶(hù)是沒(méi)有執(zhí)行的權(quán)力的,只有root和進(jìn)入了sugroup的成員才可以執(zhí)行su命令。 當(dāng)然除了通過(guò)用戶(hù)組來(lái)授權(quán)之外,常用的授權(quán)工具sudo是我們要了解的重點(diǎn)。sudo軟件可以讓用戶(hù)使用sudo授權(quán)的命令時(shí)臨時(shí)升級(jí)成root用戶(hù)(類(lèi)似setid)。那么要簡(jiǎn)單學(xué)習(xí)sudo只需要學(xué)習(xí)命令visudo和配置問(wèn)件/etc/sudoers。visudo是對(duì)etc/sudoers進(jìn)行編輯的編輯命令,與vi不同的是,因?yàn)?etc/sudoers是被鎖定的配置文件,所以用vi編輯是無(wú)效的,就必須使用visudo來(lái)編輯。那/etc/sudoers里面每行的格式是什么呢?用戶(hù)名(或用戶(hù)組名) 主機(jī)地址=命令(命令的絕對(duì)路徑)這樣就表示給了這個(gè)用戶(hù)什么命令的權(quán)限,多條命令用,分割。sudo軟件最方便的就是可以把權(quán)限精確到某條命令的某條參數(shù)。比如: 可以當(dāng)?shù)降诙薪o予了csdn2這個(gè)用戶(hù)馬上關(guān)機(jī)的權(quán)限,那么它就只能執(zhí)行這條命令并帶這些參數(shù),如果換了其他參數(shù)是沒(méi)有權(quán)限執(zhí)行的。 執(zhí)行sudo授予的命令要通過(guò)sudo 命令來(lái)調(diào)用,而且調(diào)用后還要求驗(yàn)證當(dāng)前用戶(hù)密碼來(lái)保證安全。其中命令有時(shí)候因?yàn)閜ath問(wèn)題可能要輸入絕對(duì)路徑。例如: 此外可以通過(guò)sudo -l查看當(dāng)前用戶(hù)被sudo授權(quán)了那些命令。
Powered by: C++博客 Copyright © 鑫龍