用戶、組和權限的管理
Linux如何像Windows系統那樣,可以不輸入密碼直接進入圖形界面?那么如何如何自動登錄圖形界面呢?這就要用到編輯配置文件:
nano /etc/gdm/custom.cof ,在里面加上
automaticLoginEnable=true
automaticLogin=root
退出之后重啟系統會自動登錄圖形界面
上述的操作不可能自發的進行下去,還需要靠用戶來進行操作。用戶也就是user:擁有token,identity等權限令牌。Linux用戶身份的識別,即為用戶(username)的id號,用UID來表示;系統的管理員默認為:root,ID=0;但是ID=0就一定是管理員,而root并不一定是管理員,系統給予管理員的定義是ID=0(也就是一個看身份證來判別,而不是看臉識別)。至于普通用戶的UID:1-65535
在默認情況下系統用戶UID:1-499(CentOS6);1-999(CentOS7);這些ID是給系統中的一些進程,程序來使用的 ,對守護進程獲取資源進行權限分配。
而普通的登錄用戶UID:500+(CentOS6),1000+(CentOS7)
組group:組也有自己的id,即所謂的groupname/GID,組中的用戶可以繼承組的權限(加入組織,對里面的統一授權,獲取執行或者其他權限)
注意: Windows不允許組和用戶重名,linux可以
每個用戶在創建的時候必然有一個組,這個組就是主組,并且只有一個(和windows一樣),而在主組中又有給組分配的id號
管理員組GID:root,0
系統組GID:1-499;1-999 普通組:500+,1000+
Linux組的類別
用戶的主組:有且僅有一個,若組名同用戶名,且只包含一個用戶則是私有組
用戶的附加組(輔助組):一個用戶可以屬于0或多個輔助組(身兼數職)
命令:getent group 查看用戶組的信息 getent passwd USER只看用戶信息
getent gshadow 查看用戶組的密碼信息
Linux 用戶和組的主要配置文件:
①/etc/passwd(文本文件):用戶及其屬性信息(名稱、UID主組ID)
cat /etc/passwd:
上面的root:x:0:0:,mage,110,119:/root:/bin/bash,分別對應下面的:
用戶帳號名稱:密碼:UID:主組GID:描述信息(用chfn可以修改描述信息,finger可以看描述信息):家目錄:shell類型(chsh –s /bin/csh 用戶名,可以該用戶的shell為csh ,也可改為系統賬號nologin)
注意:若把其中用戶ID改為0,root改成其他,那這個用戶就成為管理員,但是沒有管理員的話系統就無法啟動了(沒有用戶ID為0)
插入查幫助的命令:比如說查passwd ,用man就要知道查幫助的章節,而用whatis passwd可以查passwd的章節,在用man就可以查到passwd的相關信息。
②/etc/group:組及其屬性信息
cat /etc/group:
上面的bin:x:1:bin,daemon,gentoo,分別對應下面的:
用戶的主組名:主組的密碼:主組的GID號:附加組的所有成員(可以用 groupmems -l -g GROUPNAME,來查看組的其他成員;groups USERNAME 查詢用戶屬于什么附加組;id USERNAME也可以查看用戶的ID信息)
③/etc/shadow:用戶密碼及其相關屬性
cat /etc/shadow:
上面的natasha:$6$pCnil/79r2d/$wm8vNDPbg2.FKXepRjvgKvEy7JKJJeCsY9uHxuC/QvPa6p4Bj9f/rhkEUGsmlltsKpQnMlVANt8sE2SU25auN.:17096:0:99999:7:::,分別對應下面的:
用戶的帳號名稱:用戶密碼:最近更改密碼的日期:密碼不可被更改的天數:密碼的使用期限:密碼需要更改期限前的警告天數:密碼過期后的寬限天數:帳號失效日期:保留用以更新的??梢园严聢D作為參考
注意:后面關于密碼的天數都是相對于最近更改密碼的日期,密碼是亂碼,$6表示sha512加密算法 $1表示md5加密算法已經被破解了 $5表示sha256的加密算法,因為加鹽了,所以即便是相同的密碼也顯示密碼項的亂碼不同。
其中的??!表示禁止登錄(可以用usermod –U USERNAME來解鎖,去掉!,默認為!!,如果只有一個!,可能用戶誤打誤撞的解鎖了;usermod –L USERNAME來鎖定用戶)
④/etc/gshadow:組密碼及其相關屬性
cat /etc/gshadow:
上面的admins:!::natasha,harry,分別對應下面的:
用戶組的名稱:用戶組密碼:用戶主組GID:輔助組
命令:pwunconv:密碼不轉換,早期可以看到用戶密碼的加密亂碼狀態
Pwconv:密碼轉換,以x的方式顯現
cat /etc/default/useradd
可以顯現默認家目錄;默認口令有效期;過期后口令的寬限期;默認的shell類型;默認創建郵箱(郵箱是一個文本文件);默認skel,創建用戶時默認家目錄下創建的文件是從/etc/skel 下拷貝過來的)
注意:有復制/etc/skel 下的所有配置文件的話不能用 cp -r /etc/skel/.* . (因為.*包含..這樣的結果就會是把/etc/下的所有文件都復制過來了,所以要用cp -r /etc/skel/.[^.]* .復制。
用戶和組的管理命令
useradd :adduser的指向文件(鏈接文件) 【選項】 用戶帳號名
-u:指定UID 可以為0 ,也可擁有root權限,登錄拿著管理員的令牌(ID=0),只要沒注銷就有root權限 ;
-s :后接shell的實際文件,如/bin/bash ;/bin/csh ,改變shell類型
-c:描述信息,用雙引號,可用finger USERNAME查看描述信息。
-g group1:把新增用戶加入group1組,這個group1也就成了用戶的主組
-d dir1 E :把新增用戶的家目錄指定在dir1(原不存在的)中;
-G GROUP1,GROUP2…:用戶加入到自己的輔助組GROUP1,GROUP2…中
給服務用一般用useradd –s /sbin/nologin (默認不登陸) –r(給服務的系統帳號)服務名
usermod 【選項】 用戶帳號名
-u #:更改用戶UID為#
-g group1:把新增用戶加入group1組,這個group1也就成了用戶的主組
-G GROUP1:更改輔助組為GROUP1 -aG GROUP2:增加一個輔助組 -G “”:清空家目錄
-d dir1 –m:把用戶家目錄指定為dir1(原不存在),并把家目錄里的數據一同復制到dir1里
-l NEWNAME OLDNAME:僅更改為新名字;
-L:鎖定用戶,在/etc/shadow密碼欄增加! -U:解鎖用戶,把/etc/shadow密碼欄!拿掉;
userdel:不刪除用戶的家目錄和郵箱
-r:刪除用戶的家目錄和郵箱
組帳號維護命令
groupadd
-g GID:指定用戶的組ID ;-r:創建系統組<500
groupmod
-n GROUPNAME:改新名字 ;-g GID:指定新的GID
groupdel 刪除組
簡單應用:由于系統更新需要把用戶帳號遷移到一個新的主機,如何批量創建帳號?
如從6到7 :只要是/etc/passwd的文件格式定義,就只需使用newuser user.txt來創建,但是創建的user.txt 中用戶的密碼是隨機生成的,需要自己修改;批量修改口令nano p.txt 編輯對應 |(管道)chpasswd 這樣批量改密碼,這樣也就自己創建了家目錄,但是沒有/etc/skel拷貝過來的配置文件,需要自己配置。
su切換賬戶的方式:
su USERNAME:非登錄式交換,即不會讀取目標用戶的配置文件,不改變當前工作目錄; su – USERNAME:登錄式交換,會讀取用戶的配置文件,切換至家目錄,完全切換。
passwd修改自己的密碼
-l:鎖定用戶 ; -u解鎖用戶 ;-e強制用戶下次登錄修改密碼;
newgrp GROUP1臨時切換主組GROUP1,但是創建的文件的主組是GROUP1,即使是登出后,登出后恢復主組。如果用戶本不屬于此組,則需要密碼(口令為空直接不能進去)
gpasswd
-a User GROUP:將User添加到指定組中
-d User GROUP:將User從指定組中刪除
-A User1,User2…設置有管理權限的用戶列表
其它命令
chage 【選項】帳號名; 可以更改/etc/shadow的最長時間,最短時間,警告時間的選項
-l:列出帳號的詳細密碼參數
-d:最近一次更改密碼的時間 ,格式 YYYY-MM-DD
-m:密碼的最短保留天數
-M:密碼的最長使用天數
-W:密碼過期前的警告天數
-I(大ai):密碼的失效日期
-E:賬戶失效日期 ,格式 YYYY-MM-DD
vigr =vi /etc/group,修改組的相關屬性
vipw=vi /etc/passwd,修改用戶的相關屬性
pwck:檢查用戶的相關屬性是否有問題
grpck:檢查組的相關屬性是否有問題
原創文章,作者:lyx,如若轉載,請注明出處:http://www.www58058.com/53859
師哥寫的不錯,師弟佩服得五體投地