轉載自:https://www.cnblogs.com/SH-xuliang/p/8422753.html,看這篇博客解決了我許久以來的困惑。
查看用戶
1 whoami #要查看當前登錄用戶的用戶名 2 who am i #表示打開當前偽終端的用戶的用戶名 3 who mom likes
who 命令其它常用參數
1 參數 說明 2 -a 打印能打印的全部 3 -d 打印死掉的進程 4 -m 同am i,mom likes 5 -q 打印當前登錄用戶數及用戶名 6 -u 打印當前登錄用戶登錄信息 7 -r 打印運行等級
1. 創建用戶
adduser這個命令,我們很容易理解其作用,因為完全可以顧名思義:add是英語“添加”的意思,user是英語“用戶”的意思,因此adduser就是用於添加用戶。
1 adduser newname // 新建用戶newname
useradd 只創建用戶,創建完了用 passwd lilei 去設置新用戶的密碼。
adduser 會創建用戶,創建目錄,創建密碼(提示你設置),做這一系列的操作。
其實 useradd、userdel 這類操作更像是一種命令,執行完了就返回。而 adduser 更像是一種程序,需要你輸入、確定等一系列操作
刪除用戶
deluser是delete和user的縮寫,delete是英語“刪除”的意思,user是“用戶”的意思。
1 userdel newname
單單用deluser命令,不加參數的話,只會刪除用戶,但是不會刪除在/home目錄中的用戶家目錄。如果你想要連此用戶的家目錄也一並刪除,可以加上 –remove-home 這個參數,如下:
deluser –remove-home newname
這樣,不僅刪除了newname這個用戶,連/home/newname這個目錄也會刪除。
注意:adduser和deluser命令只是Debian一族(包括Ubuntu)才有的命令。其他的LInux發行版,一般來說,添加用戶和刪除用戶是用useradd和userdel命令。
而且,用useradd添加用戶之后,在默認的情況下,該賬號是暫時被封鎖的, 也就是說,該賬號是無法登錄,須要用passwd命令來給新創建的用戶設置密碼之后才可以使用。
創建組
addgroup是add和group的縮寫,add是英語“添加”的意思,group是英語“群組”的意思。所以addgroup命令用於添加一個新的群組。
1 sudo addgroup siatstudent
1 groupadd testgroup
* 修改組*
1 groupmod -n test2group testgroup
刪除組
delgroup是delete和group的縮寫,delete是英語“刪除”的意思,group是英語“群組”的意思。所以delgroup命令用於刪除一個已存在的群組。
1 delgroup happy 2 就刪除了happy這個群組。
1 groupdel test2group
注意:addgroup和delgroup命令只是Debian一族(包括Ubuntu)才有的命令。其他的LInux發行版,一般來說,添加用戶和刪除用戶是用groupadd和groupdel命令。
查看組
1 cd /home 2 ls -l 3 #第三列表示文件或目錄的所有者,第四列表示文件或目錄的所在群組
1 groups #查看當前登陸用戶所在的組 2 groups testnewuser #查看testnewuser 所在的組 3 cat /etc/group #查看所有組
passwd命令:修改密碼
passwd命令是password這個英語單詞的縮寫,表示“密碼”
1 passwd newname
usermod命令:修改用戶賬戶
usermod是user和modify的縮寫,user是英語“用戶”的意思,modify是“修改”的意思。usermod命令用於修改用戶的賬戶。
1 -l:對用戶重命名,但是/home目錄中的用戶家目錄名不會改變,需要手動修改。 2 -g:修改用戶所在群組
1 usermod -g siatstudent newname
當然我們也可以一次將一個用戶添加到多個群組,就用 -G 參數(大寫的G)。用法如下:
1 usermod -G friends,happy,funny newname
以上命令把newname添加到friends,happy和funny三個群組。記得群組名之間要用逗號分隔,而且沒有空格。
注意:使用usermod時要小心,因為配合-g或-G參數時,它會把用戶從原先的群組里剔除,加入到新的群組。如果你不想離開原先的群組,又想加入新的群組,可以在-G參數的基礎上加上-a參數,a是英語append的縮寫,表示“追加”。例如:
1 usermod -aG happy newname
以上命令就把newname追加到群組happy里了,這樣newname就屬於兩個群組:siatstudent和happy
1 groups newname #查看newname所屬群組
2. 設置文件的權限
1 udo chmod 600 ××× (只有所有者有讀和寫的權限) 2 sudo chmod 644 ××× (所有者有讀和寫的權限,組用戶只有讀的權限) 3 sudo chmod 700 ××× (只有所有者有讀和寫以及執行的權限) 4 sudo chmod 666 ××× (每個人都有讀和寫的權限) 5 sudo chmod 777 ××× (每個人都有讀和寫以及執行的權限)
chmod命令詳細用法
chmod命令:修改文件的訪問權限
chmod是change和mode的縮寫,change是英語“改變”的意思,mode是“模式”的意思。chmod命令用於修改文件的各種訪問權限。
指令名稱 : chmod
使用權限 : 所有使用者
使用方式 : chmod [-cfvR] [–help] [–version] mode file…
說明 : Linux/Unix 的檔案調用權限分為三級 : 檔案擁有者、群組、其他。利用 chmod 可以藉以控制檔案如何被他人所調用。
參數 :
mode : 權限設定字串,格式如下 : [ugoa…][[+-=][rwxX]…][,…],其中
u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬於同一個群體(group)者,o表示其他以外的人,a 表示這三者皆是。
+ 表示增加權限、- 表示取消權限、= 表示唯一設定權限。
r 表示可讀取,w 表示可寫入,x 表示可執行。
1 d:是英語directory的縮寫,表示“目錄”。就是說這是一個目錄。 2 l:是英語link的縮寫,表示“鏈接”。就是說這是一個鏈接。 3 r:是英語read的縮寫,表示“讀”。就是說可以讀這個文件。 4 w:是英語write的縮寫,表示“寫”。就是說可以寫這個文件,也就是可以修改。 5 x:是英語execute的縮寫,表示“執行,運行”。就是說可以運行這個文件
訪問權限是按照用戶來划分的
如上圖,除開第一個表示文件或目錄屬性的符號(此處是d,表示目錄。如果是l,則是鏈接。如果是短橫-,那么是普通文件。),其他的9個符號被划分為三組,從左到右分別
1 第一組rwx表示文件的所有者對於此文件的訪問權限。 2 第二組rwx表示文件所屬的群組的其他用戶對於此文件的訪問權限。 3 第三組rwx表示除前兩組之外的其他用戶對於此文件的訪問權限。
舉例分析
1 ls -l file.txt 2 -rw-r--r--
我們從左到右來分析這些符號都表示什么:
1 -:第一個短橫表示這是一個普通文件。如果此處是d,那么表示目錄;如果是l,那么表示鏈接,等等。 2 rw-:表明了文件的所有者(此處是newname)對文件有讀,寫的權限,但是沒有運行的權限。也很好理解,因為這是一個普通文件,默認沒有可執行的屬性。記住:如果有w權限(寫的權限),那么表明也有刪除此文件的權限。 3 r--:表明文件所在的群組(此處是newname)的其他用戶(除了newname之外)只可以讀此文件,但不能寫也不能執行。“可遠觀而不可褻玩焉”。 4 r--:表示其他用戶(除去newname這個群組的用戶)只可以讀此文件,但不能寫也不能執行。
綜上所述,file.txt 這個文件是一個普通文件,不是一個目錄,也不是鏈接文件,它的所有者newname可以讀寫它,但不能執行;其他的用戶只能讀。
記住:root是超級管家,它有所有權限,”只有它想不到的,沒有它做不到的”。
它可以讀、寫、運行任意文件。
用數字來分配權限:chmod的絕對用法
事實上,Linux系統對每種權限(r,w和x)分配了對應的數字:
1 權限 數字 2 r 4 3 w 2 4 x 1
所以,如果我們要合並這些權限,就需要做簡單的加法了:將對應的數字相加。
假如我們要分配讀,寫權限,那么我們就要用4+2,就等於6。數字6表示具有讀和寫權限。
以下是可能的組合形式:
1 權限 數字 計算 2 --- 0 0 + 0 + 0 3 r-- 4 4 + 0 + 0 4 -w- 2 0 + 2 + 0 5 --x 1 0 + 0 + 1 6 rw- 6 4 + 2 + 0 7 -wx 3 0 + 2 + 1 8 r-x 5 4 + 0 + 1 9 rwx 7 4 + 2 + 1
所以,對於訪問權限的三組(所有者的權限,群組用戶的權限,其他用戶的權限),我們只要分別做加法就可以了,然后把三個和連起來。
1 chmod 600 file.txt
例如:640分別表示:
1 文件的所有者有讀和寫的權限。 2 文件所在群組的其他用戶具有讀的權限。 3 除此之外的其他用戶沒有任何權限。
因此,我們可以給的最寬泛的權限就是 777:所有者,群組用戶,其他用戶都有讀,寫和運行的權限。這樣,所有人就都可以對此文件“為所欲為”了。
相反,如果權限是000,那么沒有人能對此文件做什么。當然,除了root,root可以做任何事。
用字母來分配權限:chmod的相對用法
我們需要知道不同的字母代表什么:
1 u:user的縮寫,是英語“用戶”的意思。表示所有者。 2 g:group的縮寫,是英語“群組”的意思。表示群組用戶。 3 o:other的縮寫,是英語“其他”的意思。表示其他用戶。 4 a:all的縮寫,是英語“所有”的意思。表示所有用戶。
當然了,和這些字母配合的還有幾個符號:
1 +:加號,表示添加權限。 2 -:減號,表示去除權限。 3 =:等號,表示分配權限。
接下來,我們舉例說明如何使用:
1 #文件file.txt的所有者增加讀和運行的權限。 2 chmod u+rx file.txt 3 4 #文件file.txt的群組其他用戶增加讀的權限。 5 chmod g+r file.txt 6 7 #文件file.txt的其他用戶移除讀的權限。 8 chmod o-r file.txt 9 10 #文件file.txt的群組其他用戶增加讀的權限,其他用戶移除讀的權限。 11 chmod g+r o-r file.txt 12 13 #文件file.txt的群組其他用戶和其他用戶均移除讀的權限。 14 chmod go-r file.txt 15 16 #文件file.txt的所有用戶增加運行的權限。 17 chmod +x file.txt 18 19 #文件file.txt的所有者分配讀,寫和執行的權限;群組其他用戶分配讀的權限,不能寫或執行;其他用戶沒有任何權限。 20 chmod u=rwx,g=r,o=- file.txt
-R參數:遞歸地修改訪問權限
chmod配合-R參數可以遞歸地修改文件訪問權限。
假如我要只允許newname這個用戶能讀,寫,運行/home/newname這個目錄的所有文件(當然,root不算,root可以做任何事),該怎么做呢?
1 chmod -R 700 /home/newname
chown命令
chown是change和owner的縮寫,change是英語“改變”的意思,owner是英語“所有者”的意思。
因此chown命令用於改變文件的所有者。
chown命令:改變文件的所有者
后接新的所有者的用戶名,再接文件名。例如:
1 chown newname file.txt
chown命令也可以改變文件的群組,用法如下:
1 chown newname:friends file.txt
這句命令就把file.txt這個文件的所有者改為newname,群組改為friends了。用法也很簡單,就是在所有者和群組之間用冒號隔開。
-R參數:遞歸設置子目錄和子文件
R是recursive的縮寫,表示“遞歸”。所以如果chown命令配上-R參數,就會使得被修改的目錄的所有子目錄和子文件都改變所有者(或者連群組也改變,如果用上述冒號的方法來同時修改所有者和群組)。
想要把用戶newname的家目錄的所有子目錄和文件都占為己有。我可以這么做:
1 chown -R bids:bids /home/newname
這樣不但使/home/newname這個目錄的所有者和群組都變成bids,而且其子目錄和子文件也都是如此。
chmod命令:修改訪問權限
在Linux系統里,每個文件和目錄都有一列權限屬性。這一列訪問權限指明了誰有讀的權利,誰有修改的權利,誰有運行的權利。
chgrp命令:改變文件的群組
chgrp是change和group的縮寫,change是英語“改變”的意思,group是英語“群組”的意思。
chgrp命令用於改變文件的群組。
后接新的群組名,再接文件名。例如:
1 chgrp newname file.txt
-----------------------
舉例說明:Linux系統新掛載了一個硬盤,命名為publicspace。
設置一個公共盤publicshare,所有用戶都可以訪問該文件夾來分享文件
1 chmod 777 publicshare -R
若在該文件夾新建文件夾newname,只能讓用戶newname有權限對文件夾newname
1 #更改文件的所有者和組 2 sudo chown newname:newname newname
1 #更改文件的讀寫權限 2 sudo chmod go-rw newname
————————————————————————————
3. /etc/skel 目錄
/etc/skel目錄一般是存放用戶啟動文件的目錄,這個目錄是由root權限控制,當我們添加用戶時,這個目錄下的文件自動復制到新添加的用戶的家目錄下;/etc/skel 目錄下的文件都是隱藏文件,也就是類似.file格式的;我們可通過修改、添加、刪除/etc/skel目錄下的文件,來為用戶提供一個統一、標准的、默認的用戶環境;
/etc/skel 目錄下的文件,一般是我們用useradd 和adduser 命令添加用戶(user)時,系統自動復制到新添加用戶(user)的家目錄下;如果我們通過修改 /etc/passwd 來添加用戶時,我們可以自己創建用戶的家目錄,然后把/etc/skel 下的文件復制到用戶的家目錄下,然后要用chown 來改變新用戶家目錄的屬主;
————————————————————————————
4. 新建用戶的獨立性
修改目錄權限,使得Linux 每個賬戶只能查看自己的根目錄,無法查看其它賬戶的目錄。
首先要進入Linux系統下所有用戶所在的文件夾
1 cd /home/
然后
1 chmod go-rw XXX.XXX
表示刪除 XXX.XXX中組群和其他人的讀和寫的權限。
例如
1 chmod go-rw lili
這就是說設置lili這個目錄只有lili可以查看,Linux下的其它賬戶無法查看。