Linux 新建用戶、用戶組,給用戶分配權限(chown、useradd、groupadd、userdel、usermod、passwd、groupdel)


Linux 系統是一個多用戶多任務的分時操作系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統。用戶的賬號一方面可以幫助系統管理員對使用系統的用戶進行跟蹤,並控制他們對系統資源的訪問;另一方面也可以幫助用戶組織文件,並為用戶提供安全性保護。每個用戶賬號都擁有一個惟一的用戶名和各自的密碼。用戶在登錄時鍵入正確的用戶名和密碼后,就能夠進入系統和自己的主目錄。

實現用戶賬號的管理,要完成的工作主要有如下幾個方面:

  • 用戶賬號的添加、刪除與修改。
  • 用戶密碼的管理。
  • 用戶組的管理。

一、Linux系統用戶賬號的管理 

用戶賬號的管理工作主要涉及到用戶賬號的添加、修改和刪除。

添加用戶賬號就是在系統中創建一個新賬號,然后為新賬號分配用戶號、用戶組、主目錄和登錄Shell等資源。剛添加的賬號是被鎖定的,無法使用。

1、添加新的用戶賬號使用 useradd 命令,其語法如下:

useradd 選項 用戶名

其中各選項含義如下:

-c comment 指定一段注釋性描述。
-d 目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄。
-g 用戶組 指定用戶所屬的用戶組。
-G 用戶組,用戶組 指定用戶所屬的附加組。
-s Shell文件 指定用戶的登錄Shell。
-u 用戶號 指定用戶的用戶號,如果同時有-o選項,則可以重復使用其他用戶的標識號。

用戶名 指定新賬號的登錄名。

例1:

# useradd –d /usr/sam -m sam

此命令創建了一個用戶sam,

其中-d和-m選項用來為登錄名sam產生一個主目錄/usr/sam(/usr為默認的用戶主目錄所在的父目錄)。

例2:

# useradd -s /bin/sh -g group –G adm,root gem

此命令新建了一個用戶gem,該用戶的登錄Shell是/bin/sh,它屬於group用戶組,同時又屬於adm和root用戶組,其中group用戶組是其主組。

這里可能新建組:

#groupadd group 及 groupadd adm

增加用戶賬號就是在 /etc/passwd 文件中為新用戶增加一條記錄,同時更新其他系統文件如 /etc/shadow, /etc/group等。

Linux提供了集成的系統管理工具userconf,它可以用來對用戶賬號進行統一管理。

2、刪除帳號 

如果一個用戶的賬號不再使用,可以從系統中刪除。刪除用戶賬號就是要將/etc/passwd等系統文件中的該用戶記錄刪除,必要時還刪除用戶的主目錄。刪除一個已有的用戶賬號使用userdel命令,其格式如下:

userdel 選項 用戶名

常用的選項是 -r,它的作用是把用戶的主目錄一起刪除。

例如:

# userdel sam

此命令刪除用戶sam在系統文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的記錄,同時刪除用戶的主目錄。

3、修改帳號 

修改用戶賬號就是根據實際情況更改用戶的有關屬性,如用戶號、主目錄、用戶組、登錄Shell等。

修改已有用戶的信息使用usermod命令,其格式如下:

usermod 選項 用戶名

常用的選項包括-c, -d, -m, -g, -G, -s, -u以及-o等,這些選項的意義與useradd命令中的選項一樣,可以為用戶指定新的資源值。另外,有些系統可以使用如下選項:

-l 新用戶名

這個選項指定一個新的賬號,即將原來的用戶名改為新的用戶名。

例如:

# usermod -s /bin/ksh -d /home/z –g developer sam

此命令將用戶sam的登錄Shell修改為ksh,主目錄改為/home/z,用戶組改為developer。

4、用戶密碼的管理

用戶管理的一項重要內容是用戶密碼的管理。用戶賬號剛創建時沒有密碼,但是被系統鎖定,無法使用,必須為其指定密碼后才可以使用,即使是指定空密碼。

指定和修改用戶密碼的Shell命令是passwd。超級用戶可以為自己和其他用戶指定密碼,普通用戶只能用它修改自己的密碼。命令的格式為:

passwd 選項 用戶名

可使用的選項:

-l 鎖定密碼,即禁用賬號。
-u 密碼解鎖。
-d 使賬號無密碼。
-f 強迫用戶下次登錄時修改密碼。

如果默認用戶名,則修改當前用戶的密碼。

例如,假設當前用戶是sam,則下面的命令修改該用戶自己的密碼:

$ passwd
Old password:******
New password:*******
Re-enter new password:*******

如果是超級用戶,可以用下列形式指定任何用戶的密碼:

# passwd sam
New password:*******
Re-enter new password:*******

普通用戶修改自己的密碼時,passwd命令會先詢問原密碼,驗證后再要求用戶輸入兩遍新密碼,如果兩次輸入的密碼一致,則將這個密碼指定給用戶;而超級用戶為用戶指定密碼時,就不需要知道原密碼。

為了系統安全起見,用戶應該選擇比較復雜的密碼,例如最好使用8位長的密碼,密碼中包含有大寫、小寫字母和數字,並且應該與姓名、生日等不相同。

為用戶指定空密碼時,執行下列形式的命令:

# passwd -d sam

此命令將用戶sam的密碼刪除,這樣用戶sam下一次登錄時,系統就不再詢問密碼。

passwd命令還可以用-l(lock)選項鎖定某一用戶,使其不能登錄,例如:

# passwd -l sam

新建用戶異常:

useradd -d /usr/hadoop -u 586 -m hadoop -g hadoop

1  Creating mailbox file: 文件已存在,刪除即可

rm -rf /var/spool/mail/用戶名

2 useradd: invalid numeric argument 'hadoop'
   這是由於hadoop組不存在 請先建hadoop組

通過cat /etc/passwd 可以查看用戶的pass

cat /etc/shadow 可以查看用戶名

cat /etc/group  可以查看 組

 

二、Linux系統用戶組的管理

每個用戶都有一個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理。不同Linux 系統對用戶組的規定有所不同,如Linux下的用戶屬於與它同名的用戶組,這個用戶組在創建用戶時同時創建。
用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實際上就是對/etc/group文件的更新。

1、增加一個新的用戶組使用groupadd命令。 其格式如下:

groupadd 選項 用戶組

可以使用的選項有:

-g GID 指定新用戶組的組標識號(GID)。
-o 一般與-g選項同時使用,表示新用戶組的GID可以與系統已有用戶組的GID相同。

例1:

# groupadd group1

此命令向系統中增加了一個新組group1,新組的組標識號是在當前已有的最大組標識號的基礎上加1。

例2:

#groupadd -g 101 group2

此命令向系統中增加了一個新組group2,同時指定新組的組標識號是101。

2、如果要刪除一個已有的用戶組,使用groupdel命令, 其格式如下:

groupdel 用戶組

例如:

#groupdel group1

此命令從系統中刪除組group1。

3、修改用戶組的屬性使用groupmod命令。 其語法如下:

groupmod 選項 用戶組

常用的選項有:

-g GID 為用戶組指定新的組標識號。
-o 與-g選項同時使用,用戶組的新GID可以與系統已有用戶組的GID相同。
-n新用戶組 將用戶組的名字改為新名字

例1:

# groupmod -g 102 group2

此命令將組group2的組標識號修改為102。

例2:

# groupmod –g 10000 -n group3 group2

此命令將組group2的標識號改為10000,組名修改為group3。

4、如果一個用戶同時屬於多個用戶組,那么用戶可以在用戶組之間切換,以便具有其他用戶組的權限。用戶可以在登錄后,使用命令newgrp切換到其他用戶組,這個命令的參數就是目的用戶組。

例如:

$ newgrp root

這條命令將當前用戶切換到root用戶組,前提條件是root用戶組確實是該用戶的主組或附加組。類似於用戶賬號的管理,用戶組的管理也可以通過集成的系統管理工具來完成。

 


 

權限分配

分配權限

chown -R hadoop:hadoop /usr/hadoop/

讓普通用戶擁有root的權限

1.root登錄
2.adduser 用戶名
3.passwd 用戶名
  確定密碼
4.修改/etc/passwd即可,把用戶名的ID和ID組修改成0。

 

新建用戶,且不讓用戶直接登錄:

#添加nginx用戶組及用戶
groupadd www
useradd -g www -s /usr/sbin/nologin www #不讓www用戶直接登錄

 


 

Linux修改用戶所在組方法

1、強行設置某個用戶所在組

usermod -g 用戶組 用戶名

 

2、把某個用戶改為 group(s) 

usermod -G 用戶組 用戶名

 

3、把用戶添加進入某個組(s),注意:原來的用戶組還存在

usermod -a -G 用戶組 用戶名

 

usermod使用說明:

修改用戶帳號

語 法:usermod [-LU][-c <備注>][-d <登入目錄>][-e <有效期限>][-f <緩沖天數>][-g <群組>][-G <群組>][-l <帳號名稱>][-s <shell>][-u <uid>][用戶帳號]

補充說明:usermod可用來修改用戶帳號的各項設定。

參  數

-c<備注>      修改用戶帳號的備注文字。 
-d登入目錄>   修改用戶登入時的目錄。 
-e<有效期限>  修改帳號的有效期限。 
-f<緩沖天數>  修改在密碼過期后多少天即關閉該帳號。 
-g<群組>      修改用戶所屬的群組。 
-G<群組>      修改用戶所屬的附加群組。 
-l<帳號名稱>  修改用戶帳號名稱。 
-L            鎖定用戶密碼,使密碼無效。 
-s<shell>    修改用戶登入后所使用的shell。 
-u<uid>      修改用戶ID。 
-U           解除密碼鎖定。

 


 

查看 所有用戶 及 所有用戶組

groups 查看當前登錄用戶的組內成員

groups 52php 查看52php用戶所在的組,以及組內成員

whoami 查看當前登錄用戶名 

/etc/group 文件包含所有組

/etc/shadow/etc/passwd 系統存在的所有用戶名 

1、/etc/group 解說

/etc/group 文件是用戶組的配置文件,內容包括用戶和用戶組,並且能顯示出用戶是歸屬哪個用戶組或哪幾個用戶組,因為一個用戶可以歸屬一個或多個不同的用戶組;同一用戶組的用戶之間具有相似的特征。比如我們把某一用戶加入到 root 用戶組,那么這個用戶就可以瀏覽 root 用戶家目錄的文件,如果 root 用戶把某個文件的讀寫執行權限開放,root 用戶組的所有用戶都可以修改此文件,如果是可執行的文件(比如腳本),root 用戶組的用戶也是可以執行的;

用戶組的特性在系統管理中為系統管理員提供了極大的方便,但安全性也是值得關注的,如某個用戶下有對系統管理有最重要的內容,最好讓用戶擁有獨立的用戶組,或者是把用戶下的文件的權限設置為完全私有;另外 root 用戶組一般不要輕易把普通用戶加入進去。

2、/etc/group 內容具體分析

/etc/group 的內容包括用戶組(Group)、用戶組口令、GID及該用戶組所包含的用戶(User),每個用戶組一條記錄,格式如下: 

group_name:passwd:GID:user_list

在 /etc/group 中的每條記錄分四個字段:

第一字段:用戶組名稱;

第二字段:用戶組密碼;

第三字段:GID

第四字段:用戶列表,每個用戶之間用,號分割;本字段可以為空;如果字段為空表示用戶組為GID的用戶名。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM