1、linux作業系統使用者及使用者組
Linux作業系統是多任務(Multi-tasks)多使用者(Multi-users)分時作業系統,linux作業系統的使用者就是讓我們登入到linux的權限;每當我們使用使用者名登入作業系統時,linux都會對該使用者進行認證、授權審計等操作。作業系統為了識别每個使用者,會給每個使用者定義一個ID,就是UID。使用者組就相當于多個使用者的容器;在linux系統中,使用者組也有一個ID,GID。
1.1 linux作業系統使用者
在linux中,使用者分為兩大類:管理者使用者和普通使用者,其中普通使用者有分為系統使用者和登入使用者;
系統使用者:為了能夠讓那些背景程序或服務類程序以非管理者的身份運作,通常需要為此建立多個普通使用者,這類使用者從來不用登陸系統。
登入使用者:就是我們一般使用登入linux的使用者。
使用者辨別:user id,UID
通常使用16bits二進制數字表示(0-65535)
管理者的使用者辨別:0
普通使用者:1-65535
系統使用者:1-499(Centos6)、1-999(Centos7)
登入使用者:500-60000(Centos6)、1000-60000(Centos7)
linux通過名稱解析庫“/etc/passwd”檔案解析使用者名與使用者ID之間的對應關系。
/etc/passwd:使用者資訊庫
name:password:UID:GID:GECOS:directory:shell
1.2 linux作業系統使用者組
在Linux中,使用者組分類方式有三種:
1、管理者組、普通使用者組(系統使用者組,登入使用者組)
2、使用者的基本組、使用者附加組
3、私有組、公共組
使用者組辨別:group id,GID
通常使用16bits二進制數字表示(0-65535)
管理者的使用者組辨別:0
普通使用者組:1-65535
系統使用者組:1-499(Centos6)、1-999(Centos7)
登入使用者組:500-60000(Centos6)、1000-60000(Centos7)
linux通過名稱解析庫“/etc/group”檔案解析使用者名與使用者ID之間的對應關系。
/etc/group:組的資訊庫
group_name:passwd:GID:user_list
user_list:該組使用者的成員;以此組為附加組的使用者的使用者清單
1.3 linux作業系統密碼
使用者在登入linux系統時,會對比password與之前儲存在“/etc/shadow”、“/etc/gshadow”檔案中的密碼是否一緻。
加密算法:
對稱加密:加密和解密使用同一個密碼
非對稱加密:加密和解密使用的一對密鑰
密鑰對:公鑰(public key)、私鑰(private key)
單向加密:隻能加密,不能解密;提取資料特征碼;
定長輸出:
雪崩效應:密碼中某一個字元改變,那麼整個加密後的密鑰都會改變
linux的密碼加密方式使用單向加密算法,并且添加随機數(salt)計算得出的。
系統識别算法ID | 算法名稱 |
---|---|
1 | md5:message digest,128bits |
2 | sha:secure hash algorithm,160bits |
3 | sha224 |
4 | sha256 |
5 | sha384 |
6 | sha512 |
/etc/shadow:使用者密碼
使用者名:加密的密碼:最近一次修改密碼的時間:最短使用期限:最長使用期限:警告期段:非活動期限:過期期限:保留字段

[[email protected] ~]# head -1 /etc/shadow
root:$6$mNeLUb3TE/L9utIA$nVgYyR6KkPDFRYrZC2Q9hPRNgz8z3mDKsQKraE1Fy8.LBMQoldhK4Ne1ZZlolZg2362JgdrwmTRmSbI5PTe.j0::
- 1
- 2
加密密碼:使用$分隔,第一個段表示使用的加密算法,第二個段表示添加的salt。第三段表示加密後的密碼.
2、權限管理
linux的檔案管理權限分為讀、寫和執行
[[email protected] ~]# ls -l /bin/bash
-rwxr-xr-x.
- 1
- 2
檔案權限:
-rwxr-xr-x.
共分為五個部分:
-:表示檔案類型
rwx:使用者屬主的權限
r-x:使用者屬組的權限
r-x:其他使用者的權限
.:是否啟用facl
權限:
r:readable,讀
w:wirteable,寫
x:excuteable,執行
權限對檔案的作用:
r:可擷取檔案的資料;
W:可修改檔案的資料;
x:可将此檔案運作為程序;
權限對目錄的作用:
r:可使用ls指令擷取其下的所有檔案清單;
w:可修改此目錄下的檔案清單;即建立或删除檔案,包括子目錄。
x:可cd至此目錄中;且可使用ls -l來擷取所有檔案的詳細屬性資訊;
權限組合 | 二進制數 | 十進制數 |
---|---|---|
— | 000 | |
–x | 001 | 1 |
-w- | 010 | 2 |
-wx | 011 | 3 |
r– | 100 | 4 |
r-x | 101 | 5 |
rw- | 110 | 6 |
rwx | 111 | 7 |
練習:
rw-rw-r--
- 1
- 2
- 3
- 4
- 5
- 6
3、相關指令
3.1使用者管理指令
useradd指令:建立使用者
useradd [選項] 登入名
-u,–uid UID:指定UID,預設是上一個使用者的UID+1
-g,–gid GID:指定基本組ID,此組得事先存在;
-G,–groups GROUP1[,GROUP2,……[,GROUPSN]]:指明使用者所屬的附加組,多個組之間用逗号分隔。
-c,–comment COMMENT:指明注釋資訊
-d,–home HOME_DIR:以指定路徑為使用者的家目錄;通過複制/etc/skel此目錄并重命名實作;指定的家目錄路徑如果事先存在,則不會為使用者複制環境配置檔案。
-s,–shell SHELL:指定使用者的預設shell,可用的所有shell清單存儲在/etc/shells檔案中;
-r,–system:建立系統使用者
-M:不為使用者建立主目錄
-f,–incative INACTIVE:在密碼過期後,賬戶被徹底禁用之前的天數,0表示立即禁用,-1表示禁用該功能。
注意:建立使用者時的諸多預設設定配置檔案為/etc/login.defs
useradd -D:顯示建立使用者的預設選項配置;
useradd -D 選項:修改預設選項的值;
修改的結果儲存于/etc/default/useradd檔案中;可以直接修改此檔案來實作。
usermod指令:修改使用者屬性
usermod [選項] 登入名
-u,–uid UID:修改使用者的ID為此處指定的新UID;
-g,–group GROUP:修改使用者所屬的基本組;此組得事先存在;
-G, –groupsGROUP1[,GROUP2,…[,GROUPN]]]:修改使用者所屬的附加組,原來的附加組會被覆寫;
-a, –append:與-G一同使用,用于使用者追加新的附加組;
-c,–comment COMMENT:修改注釋資訊;
-d,–home HOME_DIR:修改使用者的家目錄;使用者原有的檔案不會被轉移至新位置;
-m,–move-home:隻能與-d選項一同使用,用于将原來的家目錄移動為新的家目錄;
-l,–login NEW_LOGING:修改使用者名;
-s, –shell SHELL:修改使用者的預設shell;
-L,–lock:鎖定使用者密碼;即在使用者原來的密碼字元串之前添加一個”!”;
-U,–unlock:解鎖使用者密碼,
userdel指令:删除使用者,
userdel [選項] 登入名
-r:删除使用者時一并删除其家目錄和使用者郵箱;
id指令:顯示使用者的真實和有效的UID和GID
id [OPTION]… [USERNAME]
-u:僅顯示有效的UID;
-g:僅顯示使用者的基本組的ID;
-G:僅顯示使用者所屬的所有組的ID;
-n:顯示名字而非ID;一般與g一起使用:-ng
**su指令:**switch user
登入式切換:會通過重新讀取目标使用者的配置檔案來重新初始化
su - USERNAME
su -l USERNAME
非登入式切換:不會讀取目标使用者的配置檔案進行初始化
su USERNAME
注意:管理者可無密碼切換至其它任何使用者;其它使用者在切換使用者時必須輸入密碼。
-c “COMMAND”:僅以指定使用者的身份運作此處指定的指令
例如:su - USERNAME -c “whoami”
3.2 使用者組管理指令
groupadd指令:添加組
groupadd [選項] group_name
-g GID:指定GID,預設是上一個組的GID+1
-r:建立系統組;
groupmod指令:修改組屬性
groupmod [選項] GROUP
-g GID:修改GID
-n new_name:修改組名
groupadd指令:删除組
groupdel [選項] GROUP
3.3 使用者及使用者組練習
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
3.4 密碼管理指令
passwd指令:
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays]
[-S] [–stdin] [username]
(1)passwd:修改使用者自己的密碼;
(2)passwd USERNAME:修改指定使用者的密碼,但僅root有此權限;
-l,-u:鎖定和解鎖使用者;
-d:清除使用者密碼;
-e DATE:過期期限,日期;
-i DAYS:非活動期限,時間範圍;
-n DAYS:密碼的最短使用期限;
-x DAYS:密碼的最長使用期限;
-w DAYS:警告期限;
–stdin:
echo “PASSWORD” | passed –stdin USERNAME
[[email protected] ~]# echo "hadoop" | passwd --stdin hadoop
更改使用者 hadoop 的密碼 。
passwd:所有的身份驗證令牌已經成功更新。
- 1
- 2
- 3
gpasswd指令:
使用者組密碼檔案:/etc/gshadow
gpasswd [選項] group
-a USERNAME:向組中添加使用者,作為附加組
-d USERNAME:從組中删除使用者
newgrp指令:臨時切換指定的組為基本組;
newgrp [-] [group]
-:會模拟使用者重新登入以實作重新初始化其工作環境
注意:
若指定組設定了密碼:
(1)如果使用者的附加組是要切換到的組名,那麼不需要密碼可以直接切換到指定組。
(2)如果使用者的附加組不包含要切換的組名,那麼需要輸入密碼才能切換到指定組。
若指定組沒有設定密碼:所有使用者都不可以直接切換到指定組;root使用者除外。
chage指令:更改使用者密碼過期資訊
[[email protected] ~]# chage list root
用法:chage [選項] 登入
選項:
-d, –lastday 最近日期 将最近一次密碼設定時間設為“最近日期”
-E, –expiredate 過期日期 将帳戶過期時間設為“過期日期”
-h, –help 顯示此幫助資訊并推出
-I, –inactive INACITVE 過期 INACTIVE 天數後,設定密碼為失效狀态
-l, –list 顯示帳戶年齡資訊
-m, –mindays 最小天數 将兩次改變密碼之間相距的最小天數設為“最小天數”
-M, –maxdays 最大天數 将兩次改變密碼之間相距的最大天數設為“最大天數”
-R, –root CHROOT_DIR chroot 到的目錄
-W, –warndays 警告天數 将過期警告天數設為“警告天數”
其他幾個指令使用者管理指令:
chsh:修改shell
chfn:修改使用者基本資訊
finger:顯示使用者基本資訊
[[email protected] ~]# finger
Login Name Tty Idle Login Time Office Office Phone Host
root root pts/
- 1
- 2
- 3
- 4
pwck:檢查使用者的密碼是否有問題
[[email protected] ~]# pwck
使用者“ftp”:目錄 /var/ftp 不存在
使用者“pulse”:目錄 /var/run/pulse 不存在
pwck:無改變
- 1
- 2
- 3
- 4
grpck:檢查組檔案的完整性
3.5 權限管理指令
chmod指令:
chmod [OPTIONS]… MODE[,MODE]… FILE…
chmod [OPTIONS]… OCTAL-MODE FILE…
chmod [OPTIONS]… –reference=RFILE FILE…
三類使用者:
u:屬主
g:屬組
o:其它
a:所有
- 1
- 2
- 3
- 4
- 5
(1)chmod [OPTIONS]… MODE[,MODE]… FILE…
MODE表示法:
賦權表示法:直接操作一類使用者的所有權限位;
在賦予三類使用者的權限不同時,則用逗号隔開;如果相同,可以合并授權。
u=
g=
o=
a=
授權表示法:直接操作一類使用者的所有權限位r,w,x:
在賦予三類使用者的權限不同時,則用逗号隔開;如果相同,可以合并授權。
u+,u-
g+,g-
o+,o-
a+,a-
(2)chmod [OPTIONS]… OCTAL-MODE FILE…
使用十進制的數字進行授權
(3)chmod [OPTIONS]… –reference=RFILE FILE…
參考檔案權限授權;
選項:
-R,–recursive:遞歸修改,對目錄下的所有檔案(包括子目錄)都有效。
注意:使用者僅能修改屬主為自己的那些檔案的權限;
從屬管理管理指令:chown,chgrp
chown指令:
chown [選項]… [OWNER][:[GROUP]] FILE…
chown [選項]… [OWNER][.[GROUP]] FILE…
chown [選項]… –reference=RFILE FILE…
選項:
-R:遞歸修改,對目錄下的所有檔案(包括子目錄)都有效。
chgrp指令:
chmod [選項]… GREOUP FILE…
chmod [選項]… –reference=RFILE FILE…
注意:僅管理者可修改檔案的屬主和屬組;
思考1:使用者對目錄有寫權限,但對目錄下的檔案沒有寫權限時,能否修改此檔案内容?能否删除此檔案?
不能修改檔案的内容,但是能夠删除此檔案
思考2:使用者對目錄有什麼權限時,可以使用mv指令。
執行權限
- 1
- 2
- 3
- 4
umask:檔案的權限反向掩碼,遮罩碼;
檔案:
666-umask
目錄:
777-umask
注意:之是以檔案用666去減,表示檔案預設不能擁有執行權限;如果減得的結果中有執行權限,則需要将其加1;
umask指令:
umask:檢視目前umask
umask MASK:設定umask;
注意:此類設定僅對目前shell程序有效。
------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------
linux 中更改使用者權限和使用者組的指令執行個體;
增權重限給目前使用者 chmod +wx filename
chmod -R 777 /upload
使用者組 chgrp -R foldname zdz
chown -R 所有者使用者名.組名 檔案夾名稱 例如:chown -R zdz.nginx KooBox
指令詳解直接搜尋就很多了,這裡不多說了。
================================
文法:chmod [who] [+ | - | =] [mode] 檔案名
指令中各選項的含義為
u 表示“使用者(user)”,即檔案或目錄的所有者。
g 表示“同組(group)使用者”,即與檔案屬主有相同組ID的所有使用者。
o 表示“其他(others)使用者”。
a 表示“所有(all)使用者”。它是系統預設值。
操作符号可以是:
+ 添加某個權限。
- 取消某個權限。
= 賦予給定權限并取消其他所有權限(如果有的話)。
設定mode所表示的權限可用下述字母的任意組合:
r 可讀。
w 可寫。
x 可執行。
X 隻有目标檔案對某些使用者是可執行的或該目标檔案是目錄時才追加x 屬性。
s 在檔案執行時把程序的屬主或組ID置為該檔案的檔案屬主。方式“u+s”設定檔案的使用者ID位,“g+s”設定組ID位。
t 儲存程式的文本到交換裝置上。
u 與檔案屬主擁有一樣的權限。
g 與和檔案屬主同組的使用者擁有一樣的權限。
o 與其他使用者擁有一樣的權限。
執行個體
修改檔案可讀寫屬性的方法
例如:把index.html 檔案修改為可寫可讀可執行:
chmod 777 index.html
要修改目錄下所有檔案屬性可寫可讀可執行:
chmod 777 *.*
把檔案夾名稱與字尾名用*來代替就可以了。
比如:修改所有htm檔案的屬性:
chmod 777 *.htm
修改檔案夾屬性的方法
把目錄 /images/small 修改為可寫可讀可執行
chmod 777 /images/small
修改目錄下所有的檔案夾屬性
chmod 777 *
把檔案夾名稱用*來代替就可以了
要修改檔案夾内所有的檔案和檔案夾及子檔案夾屬性為可寫可讀可執行
chmod -R 777 /upload
總結linux下目錄和檔案的權限差別
檔案:讀檔案内容(r)、寫資料到檔案(w)、作為指令執行檔案(x)。
目錄:讀包含在目錄中的檔案名稱(r)、寫資訊到目錄中去(增加和删除索引點的連結)、搜尋目錄(能用該目錄名稱作為路徑名去通路它所包含的檔案和子目錄)
具體說就是:
(1)有隻讀權限的使用者不能用cd進入該目錄:還必須有執行權限才能進入。
(2)有執行權限的使用者隻有在知道檔案名,并擁有讀權利的情況下才可以通路目錄下的檔案。
(3)必須有讀和執行權限才可以ls列出目錄清單,或使用cd指令進入目錄。
(4)有目錄的寫權限,可以建立、删除或修改目錄下的任何檔案或子目錄,即使使該檔案或子目錄屬于其他使用者也是如此。
檢視目錄權限
檢視檔案權限的語句:
在終端輸入:
ls -l xxx.xxx (xxx.xxx是檔案名)
那麼就會出現相類似的資訊,主要都是這些:
-rw-rw-r--
一共有10位數
其中: 最前面那個 - 代表的是類型
中間那三個 rw- 代表的是所有者(user)
然後那三個 rw- 代表的是組群(group)
最後那三個 r-- 代表的是其他人(other)
然後我再解釋一下後面那9位數:
r 表示檔案可以被讀(read)
w 表示檔案可以被寫(write)
x 表示檔案可以被執行(如果它是程式的話)
- 表示相應的權限還沒有被授予
現在該說說修改檔案權限了
在終端輸入:
chmod o w xxx.xxx
表示給其他人授予寫xxx.xxx這個檔案的權限
chmod go-rw xxx.xxx
表示删除xxx.xxx中組群和其他人的讀和寫的權限
其中:
u 代表所有者(user)
g 代表所有者所在的組群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示檔案可以被讀(read)
w 表示檔案可以被寫(write)
x 表示檔案可以被執行(如果它是程式的話)
其中:rwx也可以用數字來代替
r ------------4
w -----------2
x ------------1
- ------------0
行動:
表示添權重限
- 表示删除權限
= 表示使之成為唯一的權限
當大家都明白了上面的東西之後,那麼我們常見的以下的一些權限就很容易都明白了:
-rw------- (600) 隻有所有者才有讀和寫的權限
-rw-r--r-- (644) 隻有所有者才有讀和寫的權限,組群和其他人隻有讀的權限
-rwx------ (700) 隻有所有者才有讀,寫,執行的權限
-rwxr-xr-x (755) 隻有所有者才有讀,寫,執行的權限,組群和其他人隻有讀和執行的權限
-rwx--x--x (711) 隻有所有者才有讀,寫,執行的權限,組群和其他人隻有執行的權限
-rw-rw-rw- (666) 每個人都有讀寫的權限
-rwxrwxrwx (777) 每個人都有讀寫和執行的權限
linux 中更改使用者權限和使用者組的指令執行個體;
增權重限給目前使用者 chmod +wx filename
chmod -R 777 /upload
使用者組 chgrp -R foldname zdz
chown -R 所有者使用者名.組名 檔案夾名稱 例如:chown -R zdz.nginx KooBox
指令詳解直接搜尋就很多了,這裡不多說了。
================================
文法:chmod [who] [+ | - | =] [mode] 檔案名
指令中各選項的含義為
u 表示“使用者(user)”,即檔案或目錄的所有者。
g 表示“同組(group)使用者”,即與檔案屬主有相同組ID的所有使用者。
o 表示“其他(others)使用者”。
a 表示“所有(all)使用者”。它是系統預設值。
操作符号可以是:
+ 添加某個權限。
- 取消某個權限。
= 賦予給定權限并取消其他所有權限(如果有的話)。
設定mode所表示的權限可用下述字母的任意組合:
r 可讀。
w 可寫。
x 可執行。
X 隻有目标檔案對某些使用者是可執行的或該目标檔案是目錄時才追加x 屬性。
s 在檔案執行時把程序的屬主或組ID置為該檔案的檔案屬主。方式“u+s”設定檔案的使用者ID位,“g+s”設定組ID位。
t 儲存程式的文本到交換裝置上。
u 與檔案屬主擁有一樣的權限。
g 與和檔案屬主同組的使用者擁有一樣的權限。
o 與其他使用者擁有一樣的權限。
執行個體
修改檔案可讀寫屬性的方法
例如:把index.html 檔案修改為可寫可讀可執行:
chmod 777 index.html
要修改目錄下所有檔案屬性可寫可讀可執行:
chmod 777 *.*
把檔案夾名稱與字尾名用*來代替就可以了。
比如:修改所有htm檔案的屬性:
chmod 777 *.htm
修改檔案夾屬性的方法
把目錄 /images/small 修改為可寫可讀可執行
chmod 777 /images/small
修改目錄下所有的檔案夾屬性
chmod 777 *
把檔案夾名稱用*來代替就可以了
要修改檔案夾内所有的檔案和檔案夾及子檔案夾屬性為可寫可讀可執行
chmod -R 777 /upload
總結linux下目錄和檔案的權限差別
檔案:讀檔案内容(r)、寫資料到檔案(w)、作為指令執行檔案(x)。
目錄:讀包含在目錄中的檔案名稱(r)、寫資訊到目錄中去(增加和删除索引點的連結)、搜尋目錄(能用該目錄名稱作為路徑名去通路它所包含的檔案和子目錄)
具體說就是:
(1)有隻讀權限的使用者不能用cd進入該目錄:還必須有執行權限才能進入。
(2)有執行權限的使用者隻有在知道檔案名,并擁有讀權利的情況下才可以通路目錄下的檔案。
(3)必須有讀和執行權限才可以ls列出目錄清單,或使用cd指令進入目錄。
(4)有目錄的寫權限,可以建立、删除或修改目錄下的任何檔案或子目錄,即使使該檔案或子目錄屬于其他使用者也是如此。
檢視目錄權限
檢視檔案權限的語句:
在終端輸入:
ls -l xxx.xxx (xxx.xxx是檔案名)
那麼就會出現相類似的資訊,主要都是這些:
-rw-rw-r--
一共有10位數
其中: 最前面那個 - 代表的是類型
中間那三個 rw- 代表的是所有者(user)
然後那三個 rw- 代表的是組群(group)
最後那三個 r-- 代表的是其他人(other)
然後我再解釋一下後面那9位數:
r 表示檔案可以被讀(read)
w 表示檔案可以被寫(write)
x 表示檔案可以被執行(如果它是程式的話)
- 表示相應的權限還沒有被授予
現在該說說修改檔案權限了
在終端輸入:
chmod o w xxx.xxx
表示給其他人授予寫xxx.xxx這個檔案的權限
chmod go-rw xxx.xxx
表示删除xxx.xxx中組群和其他人的讀和寫的權限
其中:
u 代表所有者(user)
g 代表所有者所在的組群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示檔案可以被讀(read)
w 表示檔案可以被寫(write)
x 表示檔案可以被執行(如果它是程式的話)
其中:rwx也可以用數字來代替
r ------------4
w -----------2
x ------------1
- ------------0
行動:
表示添權重限
- 表示删除權限
= 表示使之成為唯一的權限
當大家都明白了上面的東西之後,那麼我們常見的以下的一些權限就很容易都明白了:
-rw------- (600) 隻有所有者才有讀和寫的權限
-rw-r--r-- (644) 隻有所有者才有讀和寫的權限,組群和其他人隻有讀的權限
-rwx------ (700) 隻有所有者才有讀,寫,執行的權限
-rwxr-xr-x (755) 隻有所有者才有讀,寫,執行的權限,組群和其他人隻有讀和執行的權限
-rwx--x--x (711) 隻有所有者才有讀,寫,執行的權限,組群和其他人隻有執行的權限
-rw-rw-rw- (666) 每個人都有讀寫的權限
-rwxrwxrwx (777) 每個人都有讀寫和執行的權限
轉載于:https://www.cnblogs.com/xu308240814/p/10173078.html