一、Linux用戶管理
Linux是一個可以實現(xiàn)多用戶登陸的操作系統(tǒng),比如“李雷”和“韓梅梅”都可以同時登陸同一臺主機(jī),他們共享一些主機(jī)的資源,但他們也分別有自己的用戶空間,用于存放各自的文件。但實際上他們的文件都是放在同一個物理磁盤上的甚至同一個邏輯分區(qū)或者目錄里,但是由于Linux的用戶管理和權(quán)限機(jī)制,不同用戶不可以輕易地查看、修改彼此的文件。
1、查看用戶
輸出的第一列表示打開當(dāng)前偽終端的用戶的用戶名(要查看當(dāng)前登錄用戶的用戶名,去掉空格直接使用whoami即可),第二列的pts/0中pts表示偽終端,所謂偽是相對于/dev/tty設(shè)備而言的,七個使用[Ctrl]+[Alt]+[F1]~[F7]進(jìn)行切換的/dev/tty設(shè)備是“真終端”,偽終端就是當(dāng)你在圖形用戶界面使用/dev/tty7時每打開一個終端就會產(chǎn)生一個偽終端,pts/0后面那個數(shù)字就表示打開的偽終端序號,你可以嘗試再打開一個終端,然后在里面輸入who am i,看第二列是不是就變成pts/1了,第三列則表示當(dāng)前偽終端的啟動時間。
who命令其它常用參數(shù)
-a打印能打印的全部
-d打印死掉的進(jìn)程
-m同am i,momlikes
-q打印當(dāng)前登錄用戶數(shù)及用戶名
-u打印當(dāng)前登錄用戶登錄信息
-r打印運行等級
2、創(chuàng)建用戶
在Linux系統(tǒng)里,root賬戶擁有整個系統(tǒng)至高無上的權(quán)利,比如新建/添加用戶。
root權(quán)限,系統(tǒng)權(quán)限的一種,與SYSTEM權(quán)限可以理解成一個概念,但高于Administrator權(quán)限,root是Linux和UNIX系統(tǒng)中的超級管理員用戶帳戶,該帳戶擁有整個系統(tǒng)至高無上的權(quán)力,所有對象他都可以操作(黑客在入侵系統(tǒng)的時候,都要把權(quán)限提升到root權(quán)限,用Windows的方法理解也就是將自己的非法帳戶添加到Administrators用戶組)。更比如安卓操作系統(tǒng)中(基于Linux內(nèi)核)獲得root權(quán)限之后就意味著已經(jīng)獲得了手機(jī)的最高權(quán)限,這時候你可以對手機(jī)中的任何文件(包括系統(tǒng)文件)執(zhí)行所有增、刪、改、查的操作。
要創(chuàng)建用戶需要root權(quán)限,要用到sudo這個命令。使用這個命令有兩個大前提,一是要知道當(dāng)前登錄用戶的密碼,二是當(dāng)前用戶必須在sudo用戶組。shiyanlou用戶也屬于sudo用戶組。
su,su-與sudo
su可以切換到用戶user,執(zhí)行時需要輸入目標(biāo)用戶的密碼,sudo可以以特權(quán)級別運行cmd命令,需要當(dāng)前用戶屬于sudo組,且需要輸入當(dāng)前用戶的密碼。su -命令也是切換用戶,同時環(huán)境變量也會跟著改變成目標(biāo)用戶的環(huán)境變量。
已經(jīng)創(chuàng)建好一個用戶,并且可以使用創(chuàng)建的用戶登錄了,使用如下命令切換登錄用戶:
退出當(dāng)前用戶跟退出終端一樣可以使用exit命令或者使用快捷鍵Ctrl+d。
3、用戶組
在Linux里面每個用戶都有一個歸屬(用戶組),用戶組就是一組用戶的集合,它們共享一些資源和權(quán)限,同時擁有私有資源,就跟家的形式差不多,兄弟姐妹(不同的用戶)屬于同一個家(用戶組),共同擁有這個家(共享資源),爸媽的對待都一樣(共享權(quán)限),偶爾寫寫日記,其他人未經(jīng)允許不能查看(私有資源和權(quán)限)。當(dāng)然一個用戶是可以屬于多個用戶組的,正如既屬于家庭,又屬于學(xué)校或公司。
在Linux里面如何知道自己屬于哪些用戶組呢?
方法一:使用groups命令
冒號之前表示用戶,后面表示該用戶所屬的用戶組。每次新建用戶如果不指定用戶組的話,默認(rèn)會自動創(chuàng)建一個與用戶名相同的用戶組(相當(dāng)于家長或者老總)。默認(rèn)情況下在sudo用戶組里的可以使用sudo命令獲得root權(quán)限。shiyanlou用戶也可以使用sudo命令,為什么這里沒有顯示在sudo用戶組里呢?可以查看下/etc/sudoers.d/shiyanlou文件,在/etc/sudoers.d目錄下創(chuàng)建了這個文件,從而給shiyanlou用戶賦予了sudo權(quán)限:
方法二:查看/etc/group文件
cat命令用于讀取指定文件的內(nèi)容并打印到終端輸出,| sort表示將讀取的文本進(jìn)行一個字典排序再輸出。可以在最下面看到shiyanlou的用戶組信息:
可以使用命令過濾掉一些不想看到的結(jié)果:
etc/group文件格式說明
/etc/group的內(nèi)容包括用戶組(Group)、用戶組口令、GID及該用戶組所包含的用戶(User),每個用戶組一條記錄。格式如下:
group_name:password:GID:user_list
password字段為一個x并不是密碼就是它,只是表示密碼不可見。
將其它用戶加入sudo用戶組
默認(rèn)情況下新創(chuàng)建的用戶是不具有root權(quán)限的,也不在sudo用戶組,可以讓其加入sudo用戶組從而獲取root權(quán)限:
會提示lilei不在sudoers文件中,意思就是lilei不在sudo用戶組中,至于sudoers文件(/etc/sudoers)不明后果時慎用。
使用usermod命令可以為用戶添加用戶組,同樣使用該命令必須有root權(quán)限,可以直接使用root用戶為其它用戶添加用戶組,或者用其它已經(jīng)在sudo用戶組的用戶使用sudo命令獲取權(quán)限來執(zhí)行該命令。
這里用shiyanlou用戶執(zhí)行sudo命令將lilei添加到sudo用戶組,讓它也可以使用sudo命令獲得root權(quán)限:
再切換回lilei用戶,現(xiàn)在就可以使用sudo獲取root權(quán)限了。
$ su shiyanlou #此處需要輸入shiyanlou用戶密碼,可以點擊右側(cè)工具欄中的“SSH直連”查看
4、刪除用戶
二、Linux文件權(quán)限
1、查看文件權(quán)限
ls命令,用它來列出并顯示當(dāng)前目錄下的文件,這是在不帶任何參數(shù)的情況下,它還可以查看文件權(quán)限。
使用較長格式列出文件:
?文件類型
Linux里面一切皆文件,正因為這一點才有了設(shè)備文件(/dev目錄下有各種設(shè)備文件,大都跟具體的硬件設(shè)備相關(guān))這一說。socket:網(wǎng)絡(luò)套接字,pipe管道,軟鏈接文件:鏈接文件是分為兩種,另一種是“硬鏈接”(硬鏈接不常用),軟鏈接等同于Windows上的快捷方式。
?文件權(quán)限
讀權(quán)限,表示你可以使用cat之類的命令來讀取某個文件的內(nèi)容;寫權(quán)限,表示你可以編輯和修改某個文件;執(zhí)行權(quán)限,通常指可以運行的二進(jìn)制程序文件或者腳本文件,如同Windows上的exe后綴的文件,不過Linux上不是通過文件后綴名來區(qū)分文件的類型。一個目錄同時具有讀權(quán)限和執(zhí)行權(quán)限才可以打開并查看內(nèi)部文件,而一個目錄要有寫權(quán)限才允許在其中創(chuàng)建其它文件,這是因為目錄文件實際保存著該目錄里面的文件的列表等信息。所有者權(quán)限,自行體會,不必多說。所屬用戶組權(quán)限,是指所在的用戶組中的所有其它用戶對于該文件的權(quán)限,比如,你有一個iPad,那么這個用戶組權(quán)限就決定了你的兄弟姐妹有沒有權(quán)限使用它破壞它和占有它。
?鏈接數(shù)
鏈接到該文件所在的inode結(jié)點的文件名數(shù)目(這個概念涉及到Linux文件系統(tǒng)的相關(guān)概念知識)。
?文件大小
以inode結(jié)點大小為單位來表示的文件大小,可以給ls加上-lh參數(shù)來更直觀的查看文件的大小。
ls命令的一些其它常用的用法:
顯示除了.(當(dāng)前目錄)和..(上一級目錄)之外的所有文件,包括隱藏文件(Linux下以.開頭的文件為隱藏文件)。
可以同時使用-A和-l參數(shù):
$ ls -dl <目錄名>
顯示所有文件大小,并以普通人類能看懂的方式呈現(xiàn):
$ ls -AsSh
其中小s為顯示文件大小,大S為按文件大小排序,若需要知道如何按其它方式排序,請使用“man”命令查詢。
2、變更文件所有者
假設(shè)目前是lilei用戶登錄,新建一個文件,命名為“ iphone6 ”:
$ touch iphone6
可見文件所有者是lilei:
換回到shiyanlou用戶身份,使用以下命令變更文件所有者為shiyanlou:
$ cd /home/lilei
$ ls iphone6
$ sudo chown shiyanlou iphone6
現(xiàn)在查看,發(fā)現(xiàn)文件所有者成功修改為shiyanlou:
3、修改文件權(quán)限
?方式一:二進(jìn)制數(shù)字表示
每個文件的三組權(quán)限(擁有者,所屬用戶組,其他用戶,順序是一定的)對應(yīng)一個" rwx ",也就是一個“ 7 ”,如果要將文件“ iphone6 ”的權(quán)限改為只有自己可以用那么就這樣:
為了演示,先在文件里加點內(nèi)容:
$ echo "echo \"hello shiyanlou\"" > iphone6
修改權(quán)限:
$ chmod 700 iphone6
現(xiàn)在,其他用戶已經(jīng)不能讀這個“ iphone6 ”文件了:
?方式二:加減賦值操作
$ chmod go-rw iphone6
g、o還有u分別表示group、others和user,+和-分別表示增加和去掉相應(yīng)的權(quán)限。
三、adduser和useradd的區(qū)別是什么?
useradd只創(chuàng)建用戶,創(chuàng)建完了用passwd lilei去設(shè)置新用戶的密碼。adduser會創(chuàng)建用戶,創(chuàng)建目錄,創(chuàng)建密碼(提示你設(shè)置),做這一系列的操作。其實useradd、userdel這類操作更像是一種命令,執(zhí)行完了就返回。而adduser更像是一種程序,需要你輸入、確定等一系列操作。
四、作業(yè)
圖片版詳見http://t.cn/RaWoQAT