又到了周六,日常寫博客的日子。
上周模模糊糊的寫了第一篇博客,大概知道了怎么寫,但是這周就比以往不同了,腦子中已經有了思路,那寫起來就會更加詳細易懂。
這周學了很多知識點,但是我想對Linux 用戶和組進行詳細的描述。
一、用戶(Username/UID)
用戶分為兩種:管理員和普通用戶
管理員root UID:0 (權限最大)
普通用戶UID:1-65535
普通用戶又分為系統用戶和登錄用戶
系統用戶UID:1-499(sentos6系統) 1-999(sentos7系統)
登錄用戶UID:500+(sentos6系統) 1000+(sentos7系統)
二、組(Groupname/GID)
組分為兩種:管理員組和普通組
管理員組root GID:0
普通組GID:1-5535
普通組又分為系統組和非系統組
系統組GID:1-499(sentos6系統) 1-999(sentos7系統)
非系統組GID:500+(sentos6系統) 1000+(sentos7系統)
對于一個用戶而言可以有很多個不同的組,分別稱之為用戶的主組和附加組;主組名與用戶名相同,有且只有一個主組,附加組可以很多也可以沒有。
三、linux用戶和組的相關配置文件都在一下文件里面
/etc/passwd:用戶及屬性信息
/etc/group:組及其屬性信息
/etc/shadow:用戶密碼及其相關屬性
/etc/gshadow:組密碼及其相關屬性
四、/etc/passwd
我們查看/etc/passwd時顯示所有用戶的信息,其中詳細信息有七點
用戶名:密碼:UID:GID:用戶的詳細說明信息:用戶的家目錄:用戶默認的shell
其中有一些命令:
pwunconv 將密碼保存到/etc/passwd中,并刪除/etc/shadow文件
pwconv (默認)將密碼映射到/etc/shadow中
此命令可以直接在/etc/passwd中查詢加密后的密碼
cat /etc/shells查看所有的shell
echo $SHELL查看當前所使用的shell 常用的shell(/bin/bash /sbin/nologin不可交換式登錄)
chfn username 設置用戶的描述(默認沒有安裝)
如果需要用chfn則需要安裝finger 安裝如下
cd /media/CentOS_6.9_Final/Packages/
rpm -ivh finger-0.17-40.el6.x86_64.rpm 之后就可以用chfn
五、/etc/group
使用 cat /etc/group 或者 getent group (groupname)都可以查詢組信息
其中有四點
組名:組密碼:組id:將該組作為輔助組的成員列表。當成員先把該組當作輔助組,再轉成主要組時,不改變。當成員離開該組時,被刪除。
groupmems -g groupname -a groupname 可以添加組成員(僅能一次加一個用戶到組中)
groupmems -g groupname -d groupname 可以刪除組成員
groupmems -g groupname-l 列出指定組的成員列表(輔助組)
groupmems -p groupname消除指定組的所有成員。
六、/etc/shadow
使用cat /etc/shadow 或者getent shadow (username)查看用戶的密碼信息
顯示了九點
用戶名:加密的密碼:最近一次更改密碼的日期:密碼的最小使用權限:密碼的最大使用權限:密碼的警告時間段:密碼的禁用期:賬戶的過期日期:保留字段
加密的算法一共有
以前最常用MD5,從sentos6,sentos7開始使用SHA-256,或者SHA-512。因為王小云破解了MD5。
authconfig —passalgo=sha512 (md5,sha256) —update 將密碼加密設置位SHA-512
設置了需要從新設置一下密碼才能顯示SHA-512的加密內容(密碼在加密過程當中存在著雪崩效應,所謂雪崩效應是指初始條件的微笑變動,將會引起結果的巨大改變)
chage -l magedu 查看賬號密碼信息
-d 指定密碼的上次修改時間(yyyy-mm-dd)
-E 指定賬戶的過期時間
-I 密碼過期之后多少天帳戶過期
-m 設置最小存活時間
-M 設置最大存活時間
-W 設置密碼過期前的提醒時間
或者vim(nano) /etc/shadow 進里面進行更改
七、/etc/gshadow
使用cat /etc/gshadow 或者getent gshadow查看組密碼及其相關你屬性
一共顯示了四點
組名:密碼位:管理員列表:組成員(將該組作為輔助組的成員列表。當成員先把該組當作輔助組,再轉成主要組時,不改變。當成員離開該組時,被刪除。)
其中的一些修改命令如下:
gpasswd groupname設置組密碼
newgrp groupname(普通用戶以臨時以主要的身份加入改組)
當用戶不是該groupname的輔助組成員時,則需要輸入密碼,成功后臨時以主要組的身份加入該組。
當用戶是該groupname的輔助組成員時,無需輸入密碼,將臨時以主要組的身份 加入該組,而其原有的主要組,臨時變為輔助組。
管理員只能由root任命,他們的權限是可以修改組密碼,可以將用戶從該組中刪除或者添加(可以理解為我們的QQ群,只能群主任命管理員,管理員可以T人或者加人)
gpasswd -A daqiao,xiaoqiao admin 任命xiaoqiao ,daqiao為admin管理員
gpasswd -A “” admin 撤銷所有管理員
gpasswd -a libai admin 往組中增加用戶
gpasswd -d libai admin 將用戶從組中刪除
gpasswd -r admin 刪除組密碼
gpasswd -R admin 限制非輔助組用戶可以通過newgrp admin獲取主組權限。當前密碼被刪除替換為!
gpasswd -M redhat,libai admin 設置輔助組的成員列表。
八、創建用戶
-u uid username 創建用戶時指定uid
-o -u uid username 創建用戶時指定uid(可以與已存在用戶的uid相同)
-g groupname username 創建用戶時候如果沒有指定的組。則使用與用戶相同的組名。
-c … username 創建用戶時指定描述信息。
chfn … username 也是修改用戶的描述信息
-d path username 指定用戶的家目錄(確保指定的家目錄所在的上級目錄要存在,且家 目錄本身不能存在)
-s /sbin/nologin username 指定用戶的默認shell
-G group1[,group2] username 指定用戶的輔助組
-N username 設置用戶的主要組為默認組(users,uid=100)
-r username 創建系統用戶
九、創建組
groupadd groupname
十、修改用戶信息
usermod
usermod -u newuid username 修改用戶的UID
-o -u newuid username 修改用戶的uid(可以與已存在用戶的uid相同)
-aG 加組名,可以追加輔助組而不用覆蓋之前的組
-G “” username 或 usermod -G primarygroup username 清空用戶所有的輔助組
-g groupname username 修改用戶的主組
-s /sbin/nologin username 修改用戶的默認shell
-d /…/path username 修改用戶的家目錄(不會創建,只修改/etc/passwd當中的家目錄信息)
-m -d /…/path username 修改用戶的家目錄信息,并將家目錄移動到目的目錄并改名
-l newname oldname 修改用戶名
-L 給用戶/etc/shadow中的密碼位加!使用戶被鎖定
-U 把!拿掉
-e yyyy-mm-dd 設置一個帳戶過期時間
-f days 指定密碼過期之后多少天帳戶過期
最后注釋:一條命令就能解決創建一個用戶的信息。但是創建了如果想改需要用到usermod 。
刪除一個用戶用userdel username只刪除用戶名,不刪除家目錄和文件,再創建時會出現錯誤信息,此時需要把家目錄下的/etc/default/useradd /etc/login.defs刪除即可。而userdel -r username直接刪除一切。
到此為止,以上內容是我對Linux中的用戶和組的一些簡單認識,我相信通過以后的學習,查漏補缺,對Linux中的用戶和組會了解的更加透徹。(以上的內容是我花了一天的時間特別用心的寫出來的,望大家能認真的看下去,您閱讀出來不足的地方,就是我還需要學習的地方。謝謝)
原創文章,作者:In summer,如若轉載,請注明出處:http://www.www58058.com/82191