Linux系統中的用戶是分角色的,用戶的角色是由UID和GID來識別的(也就是說系統是識別的是用戶的UID、GID,而非用戶用戶名),一個UID是唯一(系統中唯一如同身份證一樣)用來標識系統的用戶賬號(用戶名)。
文件的用戶與用戶組分為超級管理員,普通用戶和系統用戶。
1)超級管理員的UID=0,GID=0,也可以這么說系統只要是識別出某個用戶的UIDGID都為0時,那麼這個用戶系統就認為是超級管理員。
2)普通用戶(管理員添加的),默認它的UIDGID是從500-65535,許可權很小,只能操作自己的家目錄中文件及子目錄(註:nobody它的UIDGID是65534)。
3)系統用戶,也稱虛擬用戶,也就是安裝系統時就默認存在的且不可登陸系統,它們的UIDGID是1-499。
我們可以通過cat /etc/passwd命令來查看所有的用戶信息,例如下圖,第三列是UID,第四列是GID:
創建用戶
useradd user1 創建用戶user1
useradd -e 12/30/2021 user2 創建用戶user2,有效期到2021-12-30
設置用戶密碼
passwd user1 設置密碼,有設置密碼的用戶不能用
這里設置密碼時可能會碰到密碼保護機制問題,這里需要注釋掉保護機制的問題
這個時候需要在編輯/etc/pam.d/system-auth文件,將其中的password requisite
和password sufficient兩行注釋掉,如下圖:
創建用戶組
groupadd –g 888 users 創建一個組users,其GID為888
groupadd users 不用g參數,使用默認的組ID
命令 gpasswd為組添加用戶
只有root和組管理員能夠改變組的成員:
gpasswd –a user1 users 把 user1加入users組
gpasswd –d user1 users 把 user1退出users組
命令groupmod修改組
groupmod –n user2 user1 修改組名user1為user2
groupdel刪除組
groupdel users 刪除組users
真正從安全性角度上來考慮的話,是要控制用戶一定執行命令的許可權,也就是哪些用戶可以執行哪些命令,不可以執行哪些命令,因此也就有了sudo這個應用,對於sudo提權,也就是修改/etc/sudoers的配置文件。
2. Linux中的uid和gid是什麼呢
Linux系統中,每個用戶的ID都有兩種,即用戶ID(User ID,簡稱UID)和組ID(Group
ID,簡稱GID),這與文件擁有者和擁有群組兩種屬性所對應。
文章開頭也提到了,Linux系統並不認識我們的用戶名和密碼,那問題來了,文件是如何判別它的擁有者名稱及群組名稱的呢?
每個文件都有自己的擁有者ID和群組ID,在顯示文件屬性時,系統會根據/etc/passwd和/etc/group文件中的內容,分別找到UID和GID所對應的用戶名和群組名,最終顯示出來。
在/etc/passwd文件中,利用UID可以找到所對應的用戶名,在/etc/group文件中,利用GID可以找到所對應的群組名。
可以做個小實驗,在Linux操作系統中,常用的有兩個賬戶,分別為root超級管理員賬戶和普通賬戶,我們可以先使用root賬號登錄並執行命令vim
/etc/passwd,在該文件中找到普通用戶並將其UID隨意改一個數字,這是你會發現,當你查看普通賬戶所擁有的文件時,你會發現所有文件的擁有者並不是普通用戶,而是數字。
一般情況下,當登錄Linux操作系統後,會先尋找/etc/passwd是否有輸入賬號,如果沒有,則跳出,如果有,則讀取對應的UID與GID,隨後進入/etc/shadow核對密碼,一切完成後,則進入shell管控。
由此可見,UID與GID在日常的賬戶管理中,發揮著非常重要的作用,因為一不小心就可能訪問不了自己的文件,所以溫馨提示大家,不要隨便改動自己的/etc/passwd與/etc/group文件。
3. linux修改用戶屬組命令
Linux修改用戶所屬組
1、設置某個用戶所在組
usermod -g 用戶組 用戶名
註:-g|--gid,修改用戶的gid,該組一定存在
2、把用戶添加進入某個組(s)
usermod -a -G 用戶組 用戶名
註:
-a|--append,把用戶追加到某些組中,僅與-G選項一起使用
-G|--groups,把用戶追加到某些組中,僅與-a選項一起使用
內容擴展
用戶管理命令
useradd 註:添加用戶
adser 註:添加用戶
passwd 註:為用戶設置密碼
usermod 註:修改用戶命令,可以通過usermod 來修改登錄名、用戶的家目錄等等;
pwcov 註:同步用戶從/etc/passwd 到/etc/shadow
pwck 註:pwck是校驗用戶配置文件/etc/passwd 和/etc/shadow 文件內容是否合法或完整;
pwunconv 註:是pwcov 的立逆向操作,是從/etc/shadow和 /etc/passwd 創建/etc/passwd ,然後會刪除 /etc/shadow 文件;
finger 註:查看用戶信息工具
id 註:查看用戶的UID、GID及所歸屬的用戶組
chfn 註:更改用戶信息工具
su 註:用戶切換工具
sudo 註:sudo 是通過另一個用戶來執行命令(execute a command as another user),su 是用來切換用戶,然後通過切換到的用戶來完成相應的任務,但sudo 能後面直接執行命令,比如sudo 不需要root 密碼就可以執行root 賦與的執行只有root才能執行相應的命令;但得通過visudo 來編輯/etc/sudoers來實現;
visudo 註:visodo 是編輯 /etc/sudoers 的命令;也可以不用這個命令,直接用vi 來編輯 /etc/sudoers 的效果是一樣的;
sudoedit 註:和sudo 功能差不多;
4. 怎樣更改linux的用戶名
Linux中可以使用usermod命令更改用戶名,具體的操作方法如下:
1、首先打開linux的終端,輸入指令修改用戶名,簡單的用戶名修改是usermod加參數l,後面跟新用戶名,最後是舊用戶名。
5. linux怎樣修改用戶許可權
看你是要給用戶本身修改許可權,還是修改文件的許可權讓其它用戶可以訪問執行。
一般如果你修改用戶本身的許可權,也沒有太多好改的,一般用戶創建用戶(useradd)之後,用戶就會有一個默認或指定的
userid和groupid.
一般對UNIX系統下的文件,都分為「user自己、usergroup、其它user」可以「讀、寫、執行」三類,用ls
-la可以看到,如:
#
ls
-l
-rwxr-xr-x
1
root
bin
62528
Jan
23
2005
zip
其中r表示可以
read/讀,w表示可以
write/寫,x表示可以
execute/執行。
userid一般都是唯一的,但你可以修改自己user的group信息,以加入需要的用戶組裡面訪問特定的文件。
groupadd
:添加用戶組;
groupdel
:刪除用戶組;
groupmod
:修改用戶組信息
一般我們日常碰到要修改用戶許可權的,往往是要麼修改一下用戶的gorupid,通過上面命令可以改;要麼是把普通用戶改成具有超級許可權的用戶,這個一般自己不能直接改,只能是root或有root許可權的用戶才能幫你改,在/etc/passwd文件裡面,找到對應userid那一行,將userid那一列你的id改成0,然後強制保存退出。這時候你的這個用戶就有超級用戶許可權了。改用戶的groupid也可以這樣改。
如果是改某個文件的屬性,就比較簡單了,直接用chmod命令就可以了,我一般直接後面接數字,如果要給rwx的許可權,就給7,rw-,就是6,r--就是4(二進制的,對應x
-1,w-2,r
-4),比如要給某個文件用戶自己rwx許可權,用戶group內
r-x的許可權,其它人r--只讀,那麼用chmod命令就可以:
#
chomd
754
上面都是自己根據以往經驗總結寫的,鼓勵一下原創吧,呵呵。