linux-用户和群组-权限配置
linux-用戶和群組
前言:
本篇講解用戶和群組,根據(jù)linux的歷史他的開發(fā)起點就是滿足多個用戶使用同一臺機器的想法,所以linux有一套非常完美的用戶管理系統(tǒng)。
粗解:
linux下會將一個用戶分配到一個用戶組內(nèi),進行統(tǒng)一管理,所以,linux下會建立一個passwd表和group表,這兩個表負責管理用戶和用戶組,并且會將兩個表中的密碼進行單獨提出,分配兩個表分別是shadow負責管理用戶密碼和gshadow負責管理用戶組密碼。
1.passwd:
從上面的例子我們可以看到,/etc/passwd中一行記錄對應(yīng)著一個用戶,每行記錄又被冒號(:)分隔為7個字段,其格式和具體含義如下:
用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell
“用戶名”是代表用戶賬號的字符串。通常長度不超過8個字符,并且由大小寫字母和/或數(shù)字組成。登錄名中不能有冒號(:),因為冒號在這里是分隔符。為了兼容起見,登錄名中最好不要包含點字符(.),并且不使用連字符(-)和加號(+)打頭。
“口令”一些系統(tǒng)中,存放著加密后的用戶口令字。雖然這個字段存放的只是用戶口令的加密串,不是明文,但是由于/etc/passwd文件對所有用戶都可讀,所以這仍是一個安全隱患。因此,現(xiàn)在許多Linux系統(tǒng)(如SVR4)都使用了shadow技術(shù),把真正的加密后的用戶口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一個特殊的字符,例如“x”或者“*”。
“用戶標識號”是一個整數(shù),系統(tǒng)內(nèi)部用它來標識用戶。一般情況下它與用戶名是一一對應(yīng)的。如果幾個用戶名對應(yīng)的用戶標識號是一樣的,系統(tǒng)內(nèi)部將把它們視為同一個用戶,但是它們可以有不同的口令、不同的主目錄以及不同的登錄Shell等。
通常用戶標識號的取值范圍是0~65535。0是超級用戶root的標識號,1~99由系統(tǒng)保留,作為管理賬號,普通用戶的標識號從100開始。在Linux系統(tǒng)中,這個界限是500。
“組標識號”字段記錄的是用戶所屬的用戶組。它對應(yīng)著/etc/group文件中的一條記錄。
“注釋性描述”字段記錄著用戶的一些個人情況,例如用戶的真實姓名、電話、地址等,這個字段并沒有什么實際的用途。在不同的Linux系統(tǒng)中,這個字段的格式并沒有統(tǒng)一。在許多Linux系統(tǒng)中,這個字段存放的是一段任意的注釋性描述文字,用做finger命令的輸出。
“主目錄”,也就是用戶的起始工作目錄,它是用戶在登錄到系統(tǒng)之后所處的目錄。在大多數(shù)系統(tǒng)中,各用戶的主目錄都被組織在同一個特定的目錄下,而用戶主目錄的名稱就是該用戶的登錄名。各用戶對自己的主目錄有讀、寫、執(zhí)行(搜索)權(quán)限,其他用戶對此目錄的訪問權(quán)限則根據(jù)具體情況設(shè)置。
2.group:
1)“組名”是用戶組的名稱,由字母或數(shù)字構(gòu)成。與/etc/passwd中的登錄名一樣,組名不應(yīng)重復(fù)。
2)“口令”字段存放的是用戶組加密后的口令字。一般Linux系統(tǒng)的用戶組都沒有口令,即這個字段一般為空,或者是*。
3)“組標識號”與用戶標識號類似,也是一個整數(shù),被系統(tǒng)內(nèi)部用來標識組。
4)“組內(nèi)用戶列表”是屬于這個組的所有用戶的列表/b],不同用戶之間用逗號(,)分隔。這個用戶組可能是用戶的主組,也可能是附加組。
3.shadow:
(1):用戶名。
(2):密碼(已經(jīng)加密)
(3):UID(用戶標識),操作系統(tǒng)自己用的
(4):GID組標識。
(5):用戶全名或本地帳號
(6):開始目錄
(7):登錄使用的Shell,就是對登錄命令進行解析的工具。
4.gshadow:
組名:口令:組管理者:組內(nèi)用戶列表
1) 組名: 是用戶組的名稱,由字母或數(shù)字構(gòu)成。
2) 口令:用戶組密碼,這個段可以是空的或!,如果是空的或有!,表示沒有密碼
3) 組管理者:這個字段也可為空,如果有多個用戶組管理者,用,號分割
4) 組內(nèi)用戶列表:如果有多個成員,用,號分割;
重心:
關(guān)于組和組列表已經(jīng)講解完了,我們開始通過命令的方式添加一個用戶讓大家做詳細了解。我們要做的就是在最后一行復(fù)制一個進行修改就可以了
以tom為名字
添加passwd中的用戶
[root@bogon /]# vim /etc/passwd
添加shadow中密碼行
[root@bogon /]# vim /etc/shadow
添加一個group組
[root@bogon /]# vim /etc/group
添加一個group組密碼
[root@bogon /]# vim /etc/gshadow
創(chuàng)建一個home文件夾
[root@bogon /]# mkdir /home/tom
拷貝 出事文件到tom文件夾下
[root@bogon /]# cp -r /etc/skel/ /home/tom/
修改所屬用戶和用戶組
[root@bogon /]# chown -R tom:tom /home/tom/
添加一個新文件到mail下
[root@bogon /]# touch /car/spool/mail/tom
修改所屬用戶組
[root@bogon /]# chown tom:mail/car/spool/mail/tom
這樣就做好了
我們可以用userdel tom 刪除這個用戶如果直接刪除就說明完全正確
開拓:
Linux下為目錄和文件設(shè)置權(quán)限,包括子目錄的循環(huán)遞歸設(shè)置
chmod 命令可以改變所有子目錄的權(quán)限,下面有2種方法
改變一個文件的權(quán)限: chmod mode file|dir
改變所有子目錄的權(quán)限: chmod mode dir -R 注意后面加了個-R參數(shù)
參數(shù)就是權(quán)限模式 mode = 777 or 752 ,666,,,
mode 的三個數(shù)字,分別表示owner,group,others所具有的權(quán)限。
1 = x 執(zhí)行 2 = w 寫 4 = r 讀,比如owner具有所有權(quán)限,1+2+4=7,
又比如group 具有讀 和執(zhí)行權(quán)限 1+4 = 5
把目錄/his及其下的所有文件和子目錄的屬主改成wang,屬組改成users。
$ chown –R wang.users /his
上傳了個 Wordpress,在線解壓后發(fā)現(xiàn)文件沒有寫入權(quán)限, 于是用了 chmod 777
filename
但只改了該文件, 文件內(nèi)的文件還是沒有寫入權(quán)限, 網(wǎng)上查了一下,
修改linux文件權(quán)限命令:chmod
用法:chmod XXX filename
×××(所有者組用戶其他用戶)
×=4 讀的權(quán)限
×=2 寫的權(quán)限
×=1 執(zhí)行的權(quán)限
常用修改權(quán)限的命令:
sudo chmod 600 ××× (只有所有者有讀和寫的權(quán)限)
sudo chmod 644 ××× (所有者有讀和寫的權(quán)限,組用戶只有讀的權(quán)限)
sudo chmod 700 ××× (只有所有者有讀和寫以及執(zhí)行的權(quán)限)
sudo chmod 666 ××× (每個人都有讀和寫的權(quán)限)
sudo chmod 777 ××× (每個人都有讀和寫以及執(zhí)行的權(quán)限)
例如:
- rw- r–r–
普通文件 文件主組用戶其他用戶
是文件sobsrc.tgz 的訪問權(quán)限,表示sobsrc.tgz是一個普通文件;sobsrc.tgz
的屬主有讀寫權(quán)限;與sobsrc.tgz屬主同組的用戶只有讀權(quán)限;其他用戶也只有讀權(quán)限。
確定了一個文件的訪問權(quán)限后,用戶可以利用Linux系統(tǒng)提供的chmod命令來重新設(shè)
定不同的訪問權(quán)限。也可以利用chown命令來更改某個文件或目錄的所有者。利用chgrp
命令來更改某個文件或目錄的用戶組。
下面分別對這些命令加以介紹。
chmod 命令
chmod 命令是非常重要的,用于改變文件或目錄的訪問權(quán)限。用戶用它控制文件或目
錄的訪問權(quán)限。
該命令有兩種用法。一種是包含字母和操作符表達式的文字設(shè)定法;另一種是包含數(shù)字
的數(shù)字設(shè)定法。
1. 文字設(shè)定法
chmod [who] [+ | –| =] [mode]文件名?
命令中各選項的含義為:
操作對象who可是下述字母中的任一個或者它們的組合:
u 表示”用戶(user)”,即文件或目錄的所有者。
g 表示”同組(group)用戶”,即與文件屬主有相同組ID的所有用戶。
o 表示”其他(others)用戶”。
a 表示”所有(all)用戶”。它是系統(tǒng)默認值。
操作符號可以是:
+ 添加某個權(quán)限。
- 取消某個權(quán)限。
= 賦予給定權(quán)限并取消其他所有權(quán)限(如果有的話)。
設(shè)置mode所表示的權(quán)限可用下述字母的任意組合:
r 可讀。
w 可寫。
x 可執(zhí)行。
X 只有目標文件對某些用戶是可執(zhí)行的或該目標文件是目錄時才追加x 屬性。
s 在文件執(zhí)行時把進程的屬主或組ID置為該文件的文件屬主。方式”u+s”設(shè)置文件
的用戶ID位,”g+s”設(shè)置組ID位。
t 保存程序的文本到交換設(shè)備上。
u 與文件屬主擁有一樣的權(quán)限。
g 與和文件屬主同組的用戶擁有一樣的權(quán)限。
o 與其他用戶擁有一樣的權(quán)限。
文件名:以空格分開的要改變權(quán)限的文件列表,支持通配符。
在一個命令行中可給出多個權(quán)限方式,其間用逗號隔開。例如:chmod g+r,o+r
example
使同組和其他用戶對文件example 有讀權(quán)限。
2. 數(shù)字設(shè)定法
我們必須首先了解用數(shù)字表示的屬性的含義:0 表示沒有權(quán)限,1 表示可執(zhí)行權(quán)限,2
表示可寫權(quán)限,4 表示可讀權(quán)限,然后將其相加。所以數(shù)字屬性的格式應(yīng)為3個從0 到7
的八進制數(shù),其順序是(u)(g)(o)。
例如,如果想讓某個文件的屬主有”讀/寫”二種權(quán)限,需要把4 (可讀)+2 (可寫)
=6 (讀/寫)。
數(shù)字設(shè)定法的一般形式為:
chmod [mode]文件名?
例子:
(1)文字設(shè)定法:
例1:$ chmod a+x sort
即設(shè)定文件sort 的屬性為:
文件屬主(u)增加執(zhí)行權(quán)限
與文件屬主同組用戶(g)增加執(zhí)行權(quán)限
其他用戶(o)增加執(zhí)行權(quán)限
例2:$ chmod ug+w,o-x text
即設(shè)定文件text的屬性為:
文件屬主(u)增加寫權(quán)限
與文件屬主同組用戶(g)增加寫權(quán)限
其他用戶(o)刪除執(zhí)行權(quán)限
例3:$ chmod u+s a.out
假設(shè)執(zhí)行chmod后a.out 的權(quán)限為(可以用ls –l a.out命令來看):
-rws–x–x 1 inin users 7192 Nov 4 14:22 a.out
并且這個執(zhí)行文件要用到一個文本文件shiyan1.c,其文件存取權(quán)限為”-rw——-”,
即該文件只有其屬主具有讀寫權(quán)限。
當其他用戶執(zhí)行a.out這個程序時,他的身份因這個程序暫時變成inin(由于chmod
命令中使用了s選項),所以他就能夠讀取shiyan1.c這個文件(雖然這個文件被設(shè)定為
其他人不具備任何權(quán)限),這就是s 的功能。
因此,在整個系統(tǒng)中特別是root本身,最好不要過多的設(shè)置這種類型的文件(除非必
要)這樣可以保障系統(tǒng)的安全,避免因為某些程序的bug而使系統(tǒng)遭到入侵。
例4:$ chmod a-x mm.txt
$ chmod -x mm.txt
$ chmod ugo-x mm.txt
以上這三個命令都是將文件mm.txt 的執(zhí)行權(quán)限刪除,它設(shè)定的對象為所有使用者。
(2)數(shù)字設(shè)定法:
例1:$ chmod 644 mm.txt
$ ls -l
即設(shè)定文件mm.txt的屬性為:
-rw-r–r–1 inin users 1155 Nov 5 11:22 mm.txt
文件屬主(u)inin 擁有讀、寫權(quán)限
與文件屬主同組人用戶(g)擁有讀權(quán)限
其他人(o)擁有讀權(quán)限
例2:$ chmod 750 wch.txt
$ ls -l
-rwxr-x— 1 inin users 44137 Nov 12 9:22 wchtxt
即設(shè)定wchtxt這個文件的屬性為:
文件主本人(u)inin 可讀/可寫/可執(zhí)行權(quán)
與文件主同組人(g)可讀/可執(zhí)行權(quán)
其他人(o)沒有任何權(quán)限
chgrp命令
功能:改變文件或目錄所屬的組。
語法:chgrp [選項]group filename?
該命令改變指定指定文件所屬的用戶組。其中 group 可以是用戶組 ID,也可以是
/etc/group 文件中用戶組的組名。文件名是以空格分開的要改變屬組的文件列表,支持
通配符。如果用戶不是該文件的屬主或超級用戶,則不能改變該文件的組。
該命令的各選項含義為:
- R 遞歸式地改變指定目錄及其下的所有子目錄和文件的屬組。
例1:$ chgrp –R book /opt/local /book
改變/opt/local /book/及其子目錄下的所有文件的屬組為book。
chown 命令
功能:更改某個文件或目錄的屬主和屬組。這個命令也很常用。例如root用戶把自己
的一個文件拷貝給用戶xu,為了讓用戶xu能夠存取這個文件,root用戶應(yīng)該把這個文件
的屬主設(shè)為xu,否則,用戶xu無法存取這個文件。
語法:chown [選項]用戶或組文件
說明:chown將指定文件的擁有者改為指定的用戶或組。用戶可以是用戶名或用戶ID。
組可以是組名或組ID。文件是以空格分開的要改變權(quán)限的文件列表,支持通配符。
該命令的各選項含義如下:
- R 遞歸式地改變指定目錄及其下的所有子目錄和文件的擁有者。
- v 顯示chown命令所做的工作。
例1:把文件shiyan.c 的所有者改為wang。
$ chown wang shiyan.c
例2:把目錄/his及其下的所有文件和子目錄的屬主改成wang,屬組改成users。
$ chown –R wang.users /his
總結(jié)
以上是生活随笔為你收集整理的linux-用户和群组-权限配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 相信自己一定行的
- 下一篇: .NET正则表达式使用高级技巧之替换类