Linux 服務器上建立用戶並分配權限


轉載自: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下的其它賬戶無法查看。


免責聲明!

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



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