Linux 新建用戶、用戶組,給用戶分配權限


注:內容來自網絡

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。

 

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

1 #添加nginx用戶組及用戶

2 groupadd www

3 useradd -g www -s /usr/sbin/nologin www #不讓www用戶直接登錄

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

 

Linux修改用戶所在組方法

強行設置某個用戶所在組


usermod -g 用戶組 用戶名

把某個用戶改為 group(s)


usermod -G 用戶組 用戶名

把用戶添加進入某個組(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  解除密碼鎖定。

 

1、添加用戶

首先用adduser命令添加一個普通用戶,命令如下:
#adduser tommy //添加一個名為tommy的用戶
#passwd tommy //修改密碼
Changing password for user tommy.
New UNIX password: //在這里輸入新密碼
Retype new UNIX password: //再次輸入新密碼
passwd: all authentication tokens updated successfully.
2、賦予root權限
方法一:修改 /etc/sudoers 文件,找到下面一行,把前面的注釋(#)去掉
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
然后修改用戶,使其屬於root組(wheel),命令如下:
#usermod -g root tommy
修改完畢,現在可以用tommy帳號登錄,然后用命令 su - ,即可獲得root權限進行操作。
方法二:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
tommy ALL=(ALL) ALL
修改完畢,現在可以用tommy帳號登錄,然后用命令 su - ,即可獲得root權限進行操作。


方法三:修改 /etc/passwd 文件,找到如下行,把用戶ID修改為 0 ,如下所示:
tommy:x:0:33:tommy:/data/webroot:/bin/bash


>>參考2====================================

用useradd新增的用戶不能直接用ssh遠程訪問,需要修改ssh相關配置
如下:
vi /etc/ssh/sshd_config
添加
AllowUsers root@192.168.1.32 admin
多個用戶用空格隔開

>>參考3====================================
如何讓普通用戶獲得root用戶的權限執行操作而不需要知道root用戶的密碼或向root用戶進行切換呢?有一個命令sudo可以實現這個功能.
Sudo的工作流程:
(1)root用戶編輯/etc/sudoers文件,添加要分配的普通用戶記錄,其中有這么一行記錄:root ALL=(ALL) ALL,在這行后面添加:Sam ALL=(ALL) ALL
(2) 那么sam用戶在執行操作時,如果所執行的操作自己沒有權限,則會去/etc/sudoers文件中查找是否有對應的記錄,如果有的話則臨時獲得root權限,執行只有root才能執行的操作.
注意:這里會提示輸入密碼,但是輸入的是sam用戶的密碼,而不是root用戶的密碼.例如:
Shell> sudo mkdir –p a/b/c/d
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
Password: #這里的密碼是sam用戶自己的密碼,而不是root的密碼
幾個操作:
1) 編輯/etc/sudoers文件,使用visudo命令,
Shell> visudo
其實visudo命令也是調用vi去編輯sudoer文件的,但是在保存時會去檢查你修改后文件的語法,如果錯誤是不能保存的,但是如果直接用vi來編輯該文件,強制保存雖然成功,但是如果有語
法錯誤這里並不能給出提示,也就導致了后面sudo命令的不可用.
2) 記錄解析:
Sam ALL=(ALL) ALL
使用者帳戶 登入的主機=(可以變換的身份) 可以下達的命令
上述語句的意思是 sam用戶可以在任何地方登錄,並可切換成任何用戶進行任何操作.這里如果(ALL)不寫,只寫為 sam ALL=ALL,他默認只能切換為root用戶.

 

>>參考4====================================

linux chown命令參數及用法詳解--改變檔案的所有者:

要更改文件 program.c 的所有者: chown jim program.c
program.c 的用戶訪問權限現在應用到 jim。作為所有者,jim 可以使用 chmod 命令允許或拒絕其他用戶訪問 program.c。

要將目錄 /tmp/src 中所有文件的所有者和組更改為用戶 john 和組 build:chown -R john:build /tmp/src

如: tomcat的安裝目錄的所有者修改(#chown -R user:group /usr/java/tomcat5.5)

 


免責聲明!

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



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