linux溫故知新五

Linux批量創建用戶、passwd、shadow、組管理、group、gshadow、默認配置文件login.defs、切換用戶su、提升權限


在Linux中用戶運行某個程序時,該程序的權限屬於當前用戶,進程所能夠訪問資源的權限取決於進程的運行者的身份。如果用戶的id號爲0,即使不叫root,他也是管理員;就算名字叫root它也可能是普通用戶。當有多個不同名字的管理員時他們的id號都是0,不同名字管理員的操作也會分開記錄,便於查閱。設置id號的另一便捷之處在於用戶文件的交接,即管理員刪除原用戶名並且創建一個id號相同的新用戶,原用戶的文件就屬於新用戶了。在工作中時常要管理用戶信息與部門信息,如批量創建用戶,批量修改密碼等,如果直接修改配置文件則有可能出錯,因爲配置文件都有相應的格式,許多配置文件必須Tab鍵打頭才能被識別,因此最好使用專屬命令修改配置文件。



用戶組合權限管理


資源分配的安全3A 

Authentication:認證

Authorization:授權

Accouting|Audition:審計

用戶(user) 

令牌token

管理員:root id=0

普通用戶:系統用戶:1-499(cent6),1-999(守護進程獲取資源進行權限分配,是爲某些系統服務準備的),nologin的類型

登錄用戶:(centos6)500+,(centos7)1000+,交互式登錄

創建新建用戶時,自動建立一個同名的私有組(private group),但必須要加入到一個主組(primary group)中

組(Group) 

管理員組:root,0

id user #查看用戶uid與名字、gid與名字與groups與所屬組名

groups user #查看用戶所屬組名,無id號

普通組:-499,1-999;普通組:500+,1000+

Linux組名可與用戶名相同,windows不可以#

主組(primary group):一個用戶只有一個,並且必須有一個

輔助組(secondary group):一個用戶可加入多個

私有組(private group):新建用戶自動創建的組

若創建文件的用戶被刪除了,該文件的擁有者和所屬組不顯示創建者。如果新建一個同id的用戶,則該文件將屬於新建用戶,所以方便在工作中給新用戶交接文件。

Linux中識別文件的歸屬不是看用戶名與組名,識別是否管理員不是依據名字,而是依據id號#

用戶信息的配置文件 

whatis passwd | man 5 passwd #一般配置文件的幫助信息都在man 5

/etc/passwd#:是一個有特定格式的用戶及其屬性信息文件(名字、UID、GID(primary group號)、描述信息、HOME目錄、Shell類型)

pwconv:用戶密碼被轉換到了/etc/shadow下,只有superuser才能read

pwunconv:不轉換用戶密碼,直接顯示在/etc/passwd的:x:位,此時沒有shadow文件

/etc/shadow#:用戶密碼及其相關屬性(名字、(加密算法.salt.密碼)、改口令時間(從1970到今的日數,如果設置爲0,下次登入時必須改密碼)、最短允許用戶更改密碼時間、最長允許不更改時間(小於最短時間表示永不允許更改密碼),寬限期,賬戶有效期。

不設密碼時爲!!,此時不允許登錄

wKioL1gZwEfAFvx9AAB_klEM9VA357.jpg-wh_50



passwd -e fz #馬上失效密碼,強制用戶登錄時修改

chage -d0 fz #馬上失效密碼,強制用戶登錄時修改

pwck #檢查passwd的錯誤

usermod -U fz #解除:!!:“空密碼”,解除兩次之後可直接login,無需密碼

usermod -L fz #鎖定賬號,不能登錄,root能切換

getent passwd fz #只顯示fz用戶的信息

getent shadow fz #只顯示fz的密碼信息

$6:sha-512 最新的sha512加密算法 $1:md5-128 #已經不安全了 $5sha-256 #哈希算法是單向加密的

authconfig --passalgo=md5 --update #更換加密算法,新用戶生效

chfn fz #增加第五列的描述信息

finger fz #查看fz用戶的信息,包括shell類型和登錄信息

echo jasonmc |passwd --stdin fz #設置密碼,明文的,在history中有記錄

chsh -s /bin/bash fz #更改fz的shell類型

/sbin/nologin #是一個可執行文件,shell類型指定爲nologin將不可登錄

touch /etc/nologin  #系統維護,普通用戶不能登錄。在centos7上可 touch /run/nologin

vipw = vi /etc/passwd

組的配置文件 

*/etc/group#:組及其屬性信息 

*/etc/gshadow#:組密碼及其相關屬性 

gpasswd fz #設置組密碼,如果組外用戶知道密碼則可自己加入該組,不安全,一般由root操作

新建文件默認屬於當前用戶的主組

groups user #查看用戶所屬的組

newgrp tom #臨時切換當前用戶的主組,此時新建文件的組屬於tom

grpck #檢查group文件的錯誤

vigr = vi /etc/group

創建用戶 

useradd fz

useradd -u 503 fz #創建一個指定uid的用戶

useradd -u 0 -o fz #忽略檢查uid唯一性

useradd -g newgroup fz #指定主組

useradd -G bin,root,ftp #多個輔助組 fz #指定新的輔助組,覆蓋

useradd -aG bin,root,ftp fz #追加輔助組,不覆蓋

useradd -d /home/newhome fz #指定新的家目錄,父目錄必須有,子目錄必須沒有

useradd -c “haha” #添加註釋信息

useradd -N fz #不創建同名的主組,加入到id=100的user組

useradd -D 來自於 /etc/default/useradd文件 #創建普通用戶時的默認選項,如shell類型,密碼期限等,家目錄及其一堆的文件,這些文件從/etc/skel拷貝,還會創建郵箱。創建系統用戶時默認不會創建家目錄與郵箱#。

useradd -r  #創建系統用戶

/etc/login.defs# #定義了所有的組與用戶默認信息,包括郵箱、家目錄、密碼有效期、UID、加密算法。實質上通過authconfig –passalgo=sha6 –update修改的密碼就是改了這個文件的信息。

cat <<EOF |newusers #用cat命令逐行輸入,非常好用,EOF是多行重定向,或者這樣:

newusers abc.txt #文件格式fz1:x:3001:3001::/home/fz1:/bin/bash #批量創建用戶,注意不要用空行

cat <<EOF |chpasswd #cat多行重定向,逐行輸入,非常方便,或者這樣:

cat abc_pass.txt |chpasswd #fz1:lanfazong #批量密碼,注意不要又空行

cp /etc/skel/.[^.]* /home/fz #複製skel下的文件到手動創建用戶的家目錄下,否則無法正常登錄

usermod -u 20000 -g root -G bin,tom -s /bin/csh -d /home/new1 -m -c “hehe test” -l

newhehe -f 10 hehe #改了id,組,複製新家,新名字,最後期限(失效通牒)

userdel -r fz #刪除用戶,家目錄,郵箱

組管理 

groupmems -l -g root #查看root組的成員

groupmems -a fz -g root #增加fz到root組

groupmems -d fz -g root #刪除

groupmod -G “ ” fz #刪除所有輔助組

id -u fz #uid

id -g fz #gid

id -G fz #輔助組groups id

groups fz #用戶所屬的組

su切換用戶 

su user #不完全切換,非登錄式切換,造成無法訪問原來用戶目錄的情況,who am i顯示登錄用戶,而不是切換用戶

su - user #完全切換,登錄式切換

su - root -c ‘cat /etc/passwd’ #方便普通用戶完成root的命令,不必切換

如果普通用戶編程管理員(usermod -og 0 fz)再 改回普通用戶就會出錯#

安全上下文 

用戶運行某個程序時,該程序的權限屬於當前用戶,進程所能夠訪問資源的權限取決於進程的運行者的身份。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章