Linux 是一個(gè)可以實(shí)現(xiàn)多用戶(hù)登陸的操作系統(tǒng),他們共享一些主機(jī)的資源绒尊,但他們也分別有自己的用戶(hù)空間篮迎,用于存放各自的文件。
但實(shí)際上他們的文件都是放在同一個(gè)物理磁盤(pán)上的甚至同一個(gè)邏輯分區(qū)或者目錄里锰霜,但是由于 Linux 的 用戶(hù)管理 和 權(quán)限機(jī)制 筹误,不同用戶(hù)不可以輕易地查看、修改彼此的文件癣缅。
1. 查看用戶(hù)
用 who 或 whoami 命令來(lái)查看用戶(hù):
diego@diego-ThinkPad-T540p:~$ whoami
diego
diego@diego-ThinkPad-T540p:~$ who
diego tty7 2017-03-15 22:12 (:0)
diego 是當(dāng)前登錄用戶(hù)名厨剪,tty7 是當(dāng)前等終端。
who 命令其它常用參數(shù):
參數(shù) | 說(shuō)明 |
---|---|
-a | 打印能打印的全部 |
-d | 打印死掉的進(jìn)程 |
-m | 同am i,mom likes |
-q | 打印當(dāng)前登錄用戶(hù)數(shù)及用戶(hù)名 |
-u | 打印當(dāng)前登錄用戶(hù)登錄信息 |
-r | 打印運(yùn)行等級(jí) |
2. 創(chuàng)建用戶(hù)
在 Linux 系統(tǒng)里友存, root 賬戶(hù)擁有整個(gè)系統(tǒng)至高無(wú)上的權(quán)利祷膳,比如 新建/添加 用戶(hù)。
我們一般登錄系統(tǒng)時(shí)都是以普通賬戶(hù)的身份登錄的屡立,要?jiǎng)?chuàng)建用戶(hù)需要 root 權(quán)限直晨,這里就要用到 sudo 這個(gè)命令了。不過(guò)使用這個(gè)命令有兩個(gè)大前提膨俐,一是你要知道當(dāng)前登錄用戶(hù)的密碼勇皇,二是當(dāng)前用戶(hù)必須在 sudo 用戶(hù)組(稍后會(huì)介紹如何查看和添加用戶(hù)組)。
** su焚刺,su- 與 sudo **
su <user> 可以切換到用戶(hù) user儒士,執(zhí)行時(shí)需要輸入目標(biāo)用戶(hù)的密碼。
sudo <cmd> 可以以特權(quán)級(jí)別運(yùn)行 cmd 命令檩坚,需要當(dāng)前用戶(hù)屬于 sudo組着撩,且需要輸入當(dāng)前用戶(hù)密碼。
su - <user> 命令也是切換用戶(hù)匾委,同時(shí)環(huán)境變量也會(huì)跟著改變成目標(biāo)用戶(hù)的環(huán)境變量拖叙。
現(xiàn)在我們新建一個(gè)叫 lilei 的用戶(hù):
$ sudo adduser lilei
結(jié)果:
diego@diego-ThinkPad-T540p:~$ sudo adduser lilei
[sudo] diego 的密碼:
正在添加用戶(hù)"lilei"...
正在添加新組"lilei" (1001)...
正在添加新用戶(hù)"lilei" (1001) 到組"lilei"...
創(chuàng)建主目錄"/home/lilei"...
正在從"/etc/skel"復(fù)制文件...
輸入新的 UNIX 密碼:
重新輸入新的 UNIX 密碼:
passwd:已成功更新密碼
正在改變 lilei 的用戶(hù)信息
請(qǐng)輸入新值,或直接敲回車(chē)鍵以使用默認(rèn)值
全名 []:
房間號(hào)碼 []:
工作電話(huà) []:
家庭電話(huà) []:
其它 []:
這些信息是否正確赂乐? [Y/n] y
這個(gè)命令不但可以添加用戶(hù)到系統(tǒng)薯鳍,同時(shí)也會(huì)默認(rèn)為新用戶(hù)創(chuàng)建 home 目錄:
$ ls /home
結(jié)果:
diego@diego-ThinkPad-T540p:~$ ls /home
diego lilei lost+found
現(xiàn)在你已經(jīng)創(chuàng)建好一個(gè)用戶(hù),使用如下命令切換登錄用戶(hù):
$ su -l lilei
結(jié)果:
diego@diego-ThinkPad-T540p:~$ su -l lilei
密碼:
lilei@diego-ThinkPad-T540p:~$
退出當(dāng)前用戶(hù)跟退出終端一樣可以使用 exit 命令或者使用快捷鍵 Ctrl+d。
3. 用戶(hù)組
在 Linux 里面每個(gè)用戶(hù)都有一個(gè)歸屬(用戶(hù)組)挖滤,用戶(hù)組簡(jiǎn)單地理解就是一組用戶(hù)的集合崩溪,它們共享一些資源和權(quán)限,同時(shí)擁有私有資源斩松。
就跟家的形式差不多伶唯,你的兄弟姐妹(不同的用戶(hù))屬于同一個(gè)家(用戶(hù)組),你們可以共同擁有這個(gè)家(共享資源)惧盹,爸媽對(duì)待你們都一樣(共享權(quán)限)乳幸,你偶爾寫(xiě)寫(xiě)日記,其他人未經(jīng)允許不能查看(私有資源和權(quán)限)钧椰。
當(dāng)然一個(gè)用戶(hù)是可以屬于多個(gè)用戶(hù)組的粹断,正如你既屬于家庭,又屬于學(xué)械障迹或公司瓶埋。
在 Linux 里面如何知道自己屬于哪些用戶(hù)組呢?
方法一:使用 groups 命令
$ groups diego
結(jié)果:
diego@diego-ThinkPad-T540p:~$ groups diego
diego : diego adm cdrom sudo dip plugdev lpadmin sambashare
其中冒號(hào)之前表示用戶(hù)诊沪,后面表示該用戶(hù)所屬的用戶(hù)組养筒。
每次新建用戶(hù)如果不指定用戶(hù)組的話(huà),默認(rèn)會(huì)自動(dòng)創(chuàng)建一個(gè)與用戶(hù)名相同的用戶(hù)組娄徊。我們來(lái)看看 lilei 的用戶(hù)組:
diego@diego-ThinkPad-T540p:~$ groups lilei
lilei : lilei
默認(rèn)情況下在 sudo 用戶(hù)組里的可以使用 sudo 命令獲得 root 權(quán)限。
方法二:查看 /etc/group 文件
cat /etc/group | sort
輸出結(jié)果太多盾戴,我們來(lái)篩選想要的:
$ cat /etc/group | grep -E "diego"
將其它用戶(hù)加入 sudo 用戶(hù)組
默認(rèn)情況下新創(chuàng)建的用戶(hù)是不具有 root 權(quán)限的寄锐,也不在 sudo 用戶(hù)組,可以讓其加入 sudo 用戶(hù)組從而獲取 root 權(quán)限尖啡。
我們現(xiàn)在嘗試讓 lilei 進(jìn)行 sudo 操作橄仆,看看會(huì)有什么后果:
$ su -l lilei
$ sudo ls
結(jié)果:
diego@diego-ThinkPad-T540p:~$ su -l lilei
密碼:
lilei@diego-ThinkPad-T540p:~$ sudo ls
[sudo] lilei 的密碼:
lilei 不在 sudoers 文件中。此事將被報(bào)告衅斩。
會(huì)提示 lilei 不在 sudoers 文件中盆顾,意思就是 lilei 不在 sudo 用戶(hù)組中,至于 sudoers 文件(/etc/sudoers)現(xiàn)在最好不要?jiǎng)铀钒穑僮鞑簧鲿?huì)導(dǎo)致比較麻煩的后果您宪。
使用 usermod 命令可以為用戶(hù)添加用戶(hù)組,同樣使用該命令你必需有 root 權(quán)限奠涌,你可以直接使用 root 用戶(hù)為其它用戶(hù)添加用戶(hù)組宪巨,或者用其它已經(jīng)在 sudo 用戶(hù)組的用戶(hù)使用 sudo 命令獲取權(quán)限來(lái)執(zhí)行該命令
這里我用 diego 用戶(hù)執(zhí)行 sudo 命令將 lilei 添加到 sudo 用戶(hù)組,讓它也可以使用 sudo 命令獲得 root 權(quán)限:
$ su diego
$ groups lilei
$ sudo usermod -G sudo lilei
$ groups lilei
結(jié)果:
# diego 獲取 root 權(quán)限
lilei@diego-ThinkPad-T540p:~$ su diego
密碼:
# 查看 lilei 的用戶(hù)組
diego@diego-ThinkPad-T540p:/home/lilei$ groups lilei
lilei : lilei
# 把 lilei 添加到 sudo 用戶(hù)組
diego@diego-ThinkPad-T540p:/home/lilei$ sudo usermod -G sudo lilei
[sudo] diego 的密碼:
# 查看 lilei 現(xiàn)在等用戶(hù)組
diego@diego-ThinkPad-T540p:/home/lilei$ groups lilei
lilei : lilei sudo
我們嘗試下現(xiàn)在等 lilei 能否執(zhí)行 sudo 操作:
diego@diego-ThinkPad-T540p:/home/lilei$ su - lilei
密碼:
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
lilei@diego-ThinkPad-T540p:~$ sudo ls
[sudo] lilei 的密碼:
examples.desktop
4. 刪除用戶(hù)
$ sudo deluser lilei --remove-home
結(jié)果:
diego@diego-ThinkPad-T540p:~$ sudo deluser lilei --remove-home
[sudo] diego 的密碼:
正在尋找要備份或刪除的文件...
正在刪除用戶(hù) 'lilei'...
警告:組"lilei"沒(méi)有其他成員了溜畅。
完成捏卓。