Linux服務器新建用戶和組,並分配sudo權限 (Ubuntu系統)


新拿到一台服務器后我們一般都是要新建用戶組,用戶,並為其分配權限。

 

 ====================================================

 

賦予用戶組sudo權限:

 

首先,看一下如何為用戶組分配sudo權限:

打開配置文件:

sudo   vim    /etc/sudoers

可以看到:

這個是最原始的配置文件。

 

 

假設系統里面有用戶組名為  wisd  , 我們需要為該用戶組下面的所有用戶都賦予 sudo 權限,需要添加下面代碼:

%wisd ALL=(ALL:ALL) ALL

 

如下圖:

 

保存退出, 這樣變把  wisd  用戶組下面的所有用戶都賦予了sudo權限。

 

 

===============================================================

 

 

下一步就是介紹新建用戶及用戶組(本文的介紹為倒敘,實際操作中是需要先建用戶組和用戶的)

首先看下  系統的用戶配置文件:

sudo  vim    /etc/passwd

 

由圖中可以看到系統用戶  devil 用戶id為1000,所屬用戶組為1000, home目錄為 /home/devil   ,shell的執行為 /bin/bash

sshd  用戶id 為122   用戶組為65534

 

==============================================================

 

新建用戶組:

新建用戶組   xxxxx

sudo addgroup xxxxx

 

 

 

 

 

 

為用戶組 xxxxx  新建用戶  xxx

sudo useradd -d /home/xxx -s /bin/bash -m xxx

 

-d 指定用戶的home目錄為  /home/xxx

-s 指定用戶的shell

-m  表示home目錄即  /home/xxx  不存在則創建

xxx則是我們要創建的用戶名。

可以看到 /home目錄下面已經為用戶xxx創建home目錄。

 

 

 

可以  /home/xxx目錄下需要的文件已經全部創建,如   .bashrc     .profile  等。

 

 

 

為用戶 xxx 設置密碼:

sudo passwd  xxx

 

 

 

 

將新建的用戶 xxx   添加到用戶組   xxxxx   中:

sudo usermod -a -G xxxxx  xxx

 

用戶xxx                       用戶組 xxxxx

 

參考文獻:

http://www.ruanyifeng.com/blog/2014/03/server_setup.html

 

 

 

 

 

以上操作也可以在創建新用戶時直接將其加入到已有的用戶組中, -g 為設置其主組  該方法可以再創建用戶時不創建同名的用戶組,

-G  為設置新建用戶的附屬組,   -a  -G 設置用戶的不唯一的附屬組

 

sudo useradd -d /home/xxx2 -s /bin/bash -m xxx2 -g xxxxx

 

在創建新用戶xxx2時指定其主組為xxxxx ,  不創建和用戶同名的xxx2用戶組。

 

 

============================================================================

 

新發現

采用以下方法,先建立用戶組,再創建用戶,再將用戶加入到用戶組:

sudo addgroup xxxxx

sudo useradd -d /home/xxx -s /bin/bash -m xxx 

sudo usermod -a -G xxxxx  xxx

 

則會出現以下問題:

我們可以發現,其實我們先創建了用戶組 xxxxx, id為1001,  然后我們創建用戶xxx時並沒有指定其所屬的用戶組於是自動創建了它的同名用戶組xxx,  id為1002 。

 

我們可以查看用戶的情況:

可以發現,用戶xxx所屬的主組為1002(xxx),  同時所屬的附屬組為1001(xxxxx) 。

 

 

我們可以將用戶xxx的主用戶組設置為xxxxx, 這時用戶xxx的附屬組為xxx組,於是我們可以刪掉用戶組xxx :

sudo usermod xxx -g xxxxx
sudo groupdel xxx

 

再次查看:

 

 

 

=======================================================================

 

以下內容來源:   https://www.cnblogs.com/654wangzai321/p/8021573.html

 

usermod -G groupname username (這種會把用戶從其他組中去掉,只屬於該組)
如:usermod -G git git (git只屬於git組)

 

usermod -a -G groupname username (把用戶添加到這個組,之前所屬組不影響)
如:usermod -a -G www git (git屬於之前git組,也屬於www組)

 

=============================================引用結束

 

usermod   -G  是指定用戶的附屬組是哪個,  如果 只有  -G  那么就是唯一指定用戶附屬組,該種方式用戶只具備唯一附屬組。

usermod  -a -G  是只將用戶組加入到附屬組, 而不是將附屬組設置為唯一,該種方式可以使用戶具有多個附屬組。

 

所以像上面提到的問題,我們還可以這么解決, 就是在將用戶加入到用戶組的時候這么操作:

sudo usermod  -G xxxxx  xxx    而不是   sudo usermod -a -G xxxxx  xxx   ,

這樣的話直接將 xxxxx 設置為 xxx 的主用戶組和附屬用戶組。

 

從上圖可以看到,  usermod  -a   -G  的確可以將xxx用戶的附屬組添加mysql組。

 

 

 

從上圖可以看到   usemod -G 將用戶xxx的附屬用戶組唯一的設置為mysql 。

 

 

 

 

小技巧:

如上圖:

如果想將用戶的附屬組清空,可以先采用  usemod -G 將用戶的附屬組設置為唯一, 而所指定的唯一附屬組和主組是同一個的話,那么自動就將用戶的附屬組清空了。

 

 

 

 

=========================================================================

 


免責聲明!

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



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