Linux 中用戶和組設置

Linux 中用戶和組設置

在 Linux 操作系統下,如何添加一個新用戶到一個特定的組中?如何同時將用戶添加到多個組中?又如何將一個已存在的用戶移動到某個組或者給他增加一個組?對於不常用 Linux 的人來講,記憶 Linux 那繁多的命令行操作真是件不容易的事。

在 Linux 中,增加用戶或改變用戶的組屬性可以使用 useradd 或者 usermod 命令。useradd增加一個新用戶或者更新默認新用戶信息。usermod 則是更改用戶帳戶屬性,例如將其添加到一個已有的組中。

在 Linux 用戶系統中存在兩類組。第一類是主要用戶組,第二類是附加用戶組。所有的用戶帳戶及相關信息都存儲在 /etc/passwd 文件中,/etc/shadow 和 /etc/group 文件存儲了用戶信息。

目錄 Contents

1 useradd 示例 – 增加一個新用戶到附加用戶組

2 useradd 示例 – 增加一個新用戶到主要用戶組

3 usermod 示例 – 將一個已有用戶增加到一個已有用戶組中

4 附:管理用戶(user)和用戶組(group)的相關工具或命令

useradd 示例 – 增加一個新用戶到附加用戶組?

新增加一個用戶並將其列入一個已有的用戶組中需要用到 useradd 命令。如果還沒有這個用戶組,可以先創建該用戶組。

命令參數如下:

useradd -G {group-name} username

例如,我們要創建一個新用戶 cnzhx 並將其添加到用戶組 developers 中。首先需要以 root 用戶身份登錄到系統中。先確認一下是否存在 developers 這個用戶組,在命令行輸入:

# grep developers /etc/group

輸出類似於:

developers:x:1124:

如果看不到任何輸出,那麼就需要先創建這個用戶組了,使用 groupadd 命令:

# groupadd developers

然後創建用戶 cnzhx 並將其加入到 developers 用戶組:

# useradd -G developers cnzhx

為用戶 cnzhx 設置密碼:

# passwd cnzhx

為確保已經將該用戶正確的添加到 developers 用戶組中,可以查看該用戶的屬性,使用 id 命令:

# id cnzhx

輸出類似於:

uid=1122(cnzhx) gid=1125(cnzhx) groups=1125(cnzhx),1124(developers)

前面命令中用到的大寫的 G (-G) 參數就是為了將用戶添加到一個附加用戶組中,而同時還會為此用戶創建一個屬於他自己的新組 cnzhx。如果要將該用戶同時增加到多個附加用戶組中,可以使用英文半角的逗號來分隔多個附加組名(不要加空格)。例如,同時將 cnzhx 增加到 admins, ftp, www, 和 developers 用戶組中,可以輸入以下命令:

# useradd -G admins,ftp,www,developers cnzhx

useradd 示例 – 增加一個新用戶到主要用戶組?

要增加用戶 cnzhx 到組 developers,可以使用下面的指令:

# useradd -g developers cnzhx

# id cnzhx

輸出類似於:

uid=1123(cnzhx) gid=1124(developers) groups=1124(developers)

請注意如前面的示例的區別,這裡使用了小寫字母 g (-g)作為參數,此時用戶的主要用戶組不再是 cnzhx 而直接就是 developers。

小寫字母 g (-g)將新增加的用戶初始化為指定為登錄組(主要用戶組)。此組名必須已經存在。組號(gid)即是此已有組的組號。

usermod 示例 – 將一個已有用戶增加到一個已有用戶組中?

將一個已有用戶 cnzhx 增加到一個已有用戶組 apache 中,使此用戶組成為該用戶的附加用戶組,可以使用帶 -a 參數的 usermod 指令。-a 代表 append, 也就是將用戶添加到新用戶組中而不必離開原有的其他用戶組。不過需要與 -G 選項配合使用:

# usermod -a -G apache cnzhx

如果要同時將 cnzhx 的主要用戶組改為 apache,則直接使用 -g 選項:

# usermod -g apache cnzhx

如果要將一個用戶從某個組中刪除,則

gpasswd -d user group

但是這個時候需要保證 group 不是 user 的主組。

附:管理用戶(user)和用戶組(group)的相關工具或命令?

1)管理用戶(user)的工具或命令

useradd 注:添加用戶

adduser 注:添加用戶

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 功能差不多;

2)管理用戶組(group)的工具或命令

groupadd 注:添加用戶組;

groupdel 注:刪除用戶組;

groupmod 注:修改用戶組信息

groups 注:顯示用戶所屬的用戶組

grpck

grpconv 注:通過/etc/group和/etc/gshadow 的文件內容來同步或創建/etc/gshadow ,如果/etc/gshadow 不存在則創建;

grpunconv 注:通過/etc/group 和/etc/gshadow 文件內容來同步或創建/etc/group ,然後刪除gshadow文件;

將一個用戶添加到某個組,即可讓此用戶擁有該組的權限。比如在配置 VPS 上的 LAMP 服務器的時候,運行網站的 apache 用戶修改的文件,如果服務器管理用戶 cnzhx(可以通過 ssh 登錄到服務器)需要修改此文件的話,就可以將 cnzhx 加入到 apache 組中達到目的。

--------------------

一、用戶登錄的時候需要驗證的是這兩個文件

檢測用戶名 Login: root 到該目錄下檢查 /etc/passwd

檢測用密碼 Passwd: 123456 到該目錄下檢查 /etc/shadow

/etc/Passwd下的 字段(每一行為一個用戶)

語法:

root:x:0:0:root:/root:/bin/bash (/etc/passwd)

x是佔位符,代表密碼

root:$1$NV0hQ/3m$nKludCy6gZOJ8WX/zADeU1:15321:0:99999:7::: (/etc/shadow)

用戶名稱:MD5: 加密後的口令:從開始到創建該用戶的時間差:兩次修改口令最小的時間間隔:兩次修改口令最大時間間隔:警告時間:過期 : 空閒時間

超出最大天數不修改該用戶會失效

加密採用默認的MD5

將passwd裡面的密碼轉存到shadow中

pwconv :將passwd文件轉換成shadow

將shadow中加密密碼返回到x位置,執行該命令 pwunconv同時/etc/shadow這個文件將不會存在了。


二、用戶的添加步驟:

第一種方法、用useradd命令

useradd name(lisi)

如果執行以下的命令:

#useradd lisi

造成的影響是:

/etc/passwd 添加一行 保存用戶名

/etc/shadow 保存密碼

/home/lisi 產生同名的目錄

[root@localhost root]# ls -a /home/lisi

. .. .bash_history .bash_logout .bash_profile .bashrc .emacs file1 .gtkrc

/etc/group 增加一行,組。

當用useradd添加用戶時在etc/group下會默認添加一行這一行是該用戶所代表的組,

默認組中是沒有成員的如下所示:

lisi:x:500:

有成員的

lisi:x:503:zhy1,zhy

第二種方法; 手動添加用戶

1)#vi /etc/passwd

Zhy2::504:504:csdnphpstudent:/home/zhy2:/bin/bash

取消shadow pwunconv

恢復shadow pwconv

在home下添加

# mkdir /home/lisi

/etc/skel 該目錄保存新用戶的腳本文件的目錄(/home/u_name中的隱含文件)

將/etc/skel目錄下的文件複製到 /home/lisi(用useradd命令這個複製操作是自動的)

/etc/login.defs---用戶環境的設置

三、手動添加用戶與用useradd添加的區別

用useradd添加的用戶因為是系統自己添加的

通過已經定義好的腳本文件將skel裡的腳本分給每一個

在/home/下新添加的用戶,這裡當讀到/etc/login.defs這個文件時

這裡設定的umask是077,所以最後創建完的目錄的權限就是700

相反手動添加的用戶,在home下添加 與上面同名的用戶目錄

#mkdir /home/zhy2 ,這時創建的該目錄的權限就不會受/etc/login.defs

的影響,它是以它的父目錄的umask值為標準,所以手動添加的用戶的權限就是

777-home的umask所得到的。

四、添加一個組

#groupadd 組名(該組名必須是一個用戶)

打開:這個目錄 /etc/group你可以看到:

組名:口令: gid 改組中的用戶(用,分隔開)如下

zhy4:x:503:zhy1,zhy

向組中添加一個成員

#gpasswd -a user group

刪除成員從組中

#gpasswd -d user group

補充:

1、不加-的切換用戶

[。。。。。lisi] su zhy

當前更換的用戶為zhy 但是目錄不變

2、加-的用戶切換

[。。。。。lisi] su - zhy

當前更換的用戶為lisi 但是目錄變為~

[。。。。。~]

這裡的~表示宿主的工作目錄

如果是 Root /root

如果是 lisi /home/lisi

如果一個目錄沒有x權限,那麼cd就不能用

如果一個目錄沒有r權限,ls無法使用

如果一個目錄沒有w權限,touch mkdir....

--------------------------

Linux 中將用戶添加到組的指令

發表於 2013-03-07 作者 H Zeng

更新於 2016-08-22

在 Linux 操作系統下,如何添加一個新用戶到一個特定的組中?如何同時將用戶添加到多個組中?又如何將一個已存在的用戶移動到某個組或者給他增加一個組?對於不常用 Linux 的人來講,記憶 Linux 那繁多的命令行操作真是件不容易的事。

在 Linux 中,增加用戶或改變用戶的組屬性可以使用 useradd 或者 usermod 命令。useradd 增加一個新用戶或者更新默認新用戶信息。usermod 則是更改用戶帳戶屬性,例如將其添加到一個已有的組中。

在 Linux 用戶系統中存在兩類組。第一類是主要用戶組,第二類是附加用戶組。所有的用戶帳戶及相關信息都存儲在 /etc/passwd 文件中,/etc/shadow 和 /etc/group 文件存儲了用戶信息。

目錄 Contents

1 useradd 示例 – 增加一個新用戶到附加用戶組

2 useradd 示例 – 增加一個新用戶到主要用戶組

3 usermod 示例 – 將一個已有用戶增加到一個已有用戶組中

4 附:管理用戶(user)和用戶組(group)的相關工具或命令

useradd 示例 – 增加一個新用戶到附加用戶組?

新增加一個用戶並將其列入一個已有的用戶組中需要用到 useradd 命令。如果還沒有這個用戶組,可以先創建該用戶組。

命令參數如下:

useradd -G {group-name} username

例如,我們要創建一個新用戶 cnzhx 並將其添加到用戶組 developers 中。首先需要以 root 用戶身份登錄到系統中。先確認一下是否存在 developers 這個用戶組,在命令行輸入:

# grep developers /etc/group

輸出類似於:

developers:x:1124:

如果看不到任何輸出,那麼就需要先創建這個用戶組了,使用 groupadd 命令:

# groupadd developers

然後創建用戶 cnzhx 並將其加入到 developers 用戶組:

# useradd -G developers cnzhx

為用戶 cnzhx 設置密碼:

# passwd cnzhx

為確保已經將該用戶正確的添加到 developers 用戶組中,可以查看該用戶的屬性,使用 id 命令:

# id cnzhx

輸出類似於:

uid=1122(cnzhx) gid=1125(cnzhx) groups=1125(cnzhx),1124(developers)

前面命令中用到的大寫的 G (-G) 參數就是為了將用戶添加到一個附加用戶組中,而同時還會為此用戶創建一個屬於他自己的新組 cnzhx。如果要將該用戶同時增加到多個附加用戶組中,可以使用英文半角的逗號來分隔多個附加組名(不要加空格)。例如,同時將 cnzhx 增加到 admins, ftp, www, 和 developers 用戶組中,可以輸入以下命令:

# useradd -G admins,ftp,www,developers cnzhx

useradd 示例 – 增加一個新用戶到主要用戶組?

要增加用戶 cnzhx 到組 developers,可以使用下面的指令:

# useradd -g developers cnzhx

# id cnzhx

輸出類似於:

uid=1123(cnzhx) gid=1124(developers) groups=1124(developers)

請注意如前面的示例的區別,這裡使用了小寫字母 g (-g)作為參數,此時用戶的主要用戶組不再是 cnzhx 而直接就是 developers。

小寫字母 g (-g)將新增加的用戶初始化為指定為登錄組(主要用戶組)。此組名必須已經存在。組號(gid)即是此已有組的組號。

usermod 示例 – 將一個已有用戶增加到一個已有用戶組中?

將一個已有用戶 cnzhx 增加到一個已有用戶組 apache 中,使此用戶組成為該用戶的附加用戶組,可以使用帶 -a 參數的 usermod 指令。-a 代表 append, 也就是將用戶添加到新用戶組中而不必離開原有的其他用戶組。不過需要與 -G 選項配合使用:

# usermod -a -G apache cnzhx

如果要同時將 cnzhx 的主要用戶組改為 apache,則直接使用 -g 選項:

# usermod -g apache cnzhx

如果要將一個用戶從某個組中刪除,則

gpasswd -d user group

但是這個時候需要保證 group 不是 user 的主組。

附:管理用戶(user)和用戶組(group)的相關工具或命令?

1)管理用戶(user)的工具或命令

useradd 注:添加用戶

adduser 注:添加用戶

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 功能差不多;

2)管理用戶組(group)的工具或命令

groupadd 注:添加用戶組;

groupdel 注:刪除用戶組;

groupmod 注:修改用戶組信息

groups 注:顯示用戶所屬的用戶組

grpck

grpconv 注:通過/etc/group和/etc/gshadow 的文件內容來同步或創建/etc/gshadow ,如果/etc/gshadow 不存在則創建;

grpunconv 注:通過/etc/group 和/etc/gshadow 文件內容來同步或創建/etc/group ,然後刪除gshadow文件;

將一個用戶添加到某個組,即可讓此用戶擁有該組的權限。比如在配置 VPS 上的 LAMP 服務器的時候,運行網站的 apache 用戶修改的文件,如果服務器管理用戶 cnzhx(可以通過 ssh 登錄到服務器)需要修改此文件的話,就可以將 cnzhx 加入到 apache 組中達到目的。


分享到:


相關文章: