前段時間牧嫉,實驗室買了新服務器驱犹,老板也是說了不止一次要把實驗室服務器給管理起來槐壳,俗話說好奇心是最好的老師缩歪。趁此機會,我學習了一下Linux的用戶管理箫柳。在本地袖牙,我一般都會記錄到OneNote朽缎,現(xiàn)在再次記錄一下续滋,方便今后查找翰守。
前期準備
首先是要了解Linux系統(tǒng)的文件權限分為所有者、同組的人以及其他人疲酌,所以在新建用戶的時候蜡峰,要指定該用戶屬于哪個組或者哪些組。為什么會有哪些組呢朗恳?一般來說湿颅,一個組不就行了嘛?其實不行粥诫,我們可以這么想油航,在大一剛?cè)雽W的時候,會有很多社團怀浆,那每個人加入社團的數(shù)量是沒有限制的劝堪。這里,大一新生就代表“Ubuntu系統(tǒng)用戶”揉稚,社團就代表“組”。到這里熬粗,應該都能理解用戶和組之間的關系了搀玖。在Ubuntu系統(tǒng)里,需要設定一個組為主組驻呐,其余的為附屬組灌诅,主組與附屬組之間的區(qū)別我現(xiàn)在還不是很清楚芳来,在實際使用中還沒有遇到需要區(qū)別主組與附屬組的情況。
介紹完基本情況后猜拾,就可以敲命令了即舌,首先查看系統(tǒng)中有哪些組以及這些組包含哪些用戶:(這里顯示的用戶指的是把該組作為附屬組的用戶,無法顯示把該組作為主組的用戶)
cat /etc/group
運行上面這個命令挎袜,就可以得到類似下圖的結(jié)果:
上圖中的docker即代表docker組顽聂,組id是998,該組中有ubuntu這個用戶盯仪,其中紊搪,ubuntu用戶的附屬組是docker,主組是什么這里看不到全景。如果想看主組耀石,可以用下面的命令:
cat /etc/passwd
一般情況下,Ubuntu系統(tǒng)是沒有nosu組爸黄,如果我們想要建普通用戶滞伟,那么就要有一個nosu組。我第一次聽到nosu組這個名字是從我室友那得知的炕贵,不過當時他認為“nosu”這個名字是自定義的梆奈,事實并非如此。為什么呢鲁驶?從系統(tǒng)文件中就可以看出來鉴裹。我們要啟動nosu組的話,就得編輯一下系統(tǒng)文件:
vim /etc/pam.d/su
看到的界面類似于下圖:
如果沒有經(jīng)過任何修改的話钥弯,圖中第23行應該是被注釋掉的(或者其他不能被讀取到的情況)径荔,但是這一行中出現(xiàn)了“nosu”這個名詞,所以說明這是系統(tǒng)指定的組名脆霎,而不是自定義的总处。那么為了達到我們的目的,我們只需要改成如圖所示就行睛蛛。修改完上面這個文件后鹦马,我們可以再次查看group,核實下是否多了一個nosu組忆肾,如果沒有的話荸频,重啟服務器再看看。
正式新建用戶
準備了這么多客冈,接下去可以正式新建用戶了旭从,建用戶反而簡單,如果/home目錄夠用的話,可以不指定新用戶的/home目錄:
sudo useradd -s /bin/bash -g nosu -m 用戶名
其中和悦,-g nosu代表將新用戶的主組指定為nosu退疫。如果需要指定新用戶的/home目錄:
sudo useradd -s /bin/bash -g nosu -d /data/account/用戶名 -m 用戶名
這樣就把新用戶的家目錄改到“/data/account/用戶名”下了。
然后鸽素,如果新用戶需要用到docker的話褒繁,就得把新用戶加到docker組。那么馍忽,好奇的同學就會問:這個docker組怎么來的呢棒坏?我一開始也有這個問題,我第一次得到結(jié)果是問的我室友舵匾,第二次俊抵,我是自己重裝了Ubuntu系統(tǒng),再裝了docker坐梯,從而驗證了一下徽诲。當遇到問題時,問別人是最快的方式吵血,但是如果自己動手加以驗證谎替,那就更好了。
此時蹋辅,還需要設置一下新用戶的登錄密碼:
sudo passwd 用戶名
至此钱贯,新用戶就可以登錄了。
補充
修改新用戶的主組為docker:
sudo usermod -g docker 用戶名
刪除用戶在系統(tǒng)文件中的記錄(以及用戶家目錄):
sudo userdel (-r) 用戶名