linux 從入門到放棄權限管理(每天5分鐘30天掌握linux)
2023-08-13 06:39:38
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之間的對應關係。
1.3 linux作業系統密碼
用戶在登錄linux系統時,會對比password與之前保存在「/etc/shadow」、「/etc/gshadow」文件中的密碼是否一致。
加密算法:
對稱加密:加密和解密使用同一個密碼非對稱加密:加密和解密使用的一對密鑰密鑰對:公鑰(public key)、私鑰(private key)單向加密:只能加密,不能解密;提取數據特徵碼;定長輸出:
雪崩效應:密碼中某一個字符改變,那麼整個加密後的密鑰都會改變linux的密碼加密方式使用單向加密算法,並且添加隨機數(salt)計算得出的。系統識別算法ID算法名稱1md5:message digest,128bits2sha:secure hash algorithm,160bits3sha2244sha2565sha3846sha512/etc/shadow:用戶密碼
用戶名:加密的密碼:最近一次修改密碼的時間:最短使用期限:最長使用期限:警告期段:非活動期限:過期期限:保留欄位
root:$6$28Q91hEp6c..QfTj$HZFYC1hMr1/dMDpO2t51ipld329/HrPw4rbB6nguyOiglTxNtxT/ob6cCgeMW78K9tgfYPffhi8HHqHz9o.qu1::0:99999:7:::
加密密碼:使用$分隔,第一個段表示使用的加密算法,第二個段表示添加的salt。第三段表示加密後的密碼.
2、權限管理linux的文件管理權限分為讀、寫和執行
[root@k8s-master ~]# ls -l /bin/bash-rwxr-xr-x. 1 root root 960472 Aug 3 2017 /bin/bash
文件權限:
-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來獲取所有文件的詳細屬性信息;
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一起使用:-ngsu命令: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.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
[root@localhost ~]# echo "hadoop" | passwd --stdin hadoop更改用戶 hadoop 的密碼 。passwd:所有的身份驗證令牌已經成功更新。
gpasswd命令:
用戶組密碼文件:/etc/gshadow
gpasswd [選項] group
-a USERNAME:向組中添加用戶,作為附加組-d USERNAME:從組中刪除用戶newgrp命令:臨時切換指定的組為基本組;
newgrp [-] [group]
-:會模擬用戶重新登錄以實現重新初始化其工作環境
注意:
若指定組設定了密碼:
(1)如果用戶的附加組是要切換到的組名,那麼不需要密碼可以直接切換到指定組。
(2)如果用戶的附加組不包含要切換的組名,那麼需要輸入密碼才能切換到指定組。
若指定組沒有設定密碼:所有用戶都不可以直接切換到指定組;root用戶除外。
chage命令:更改用戶密碼過期信息
[root@localhost ~]# 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:顯示用戶基本信息
[root@k8s-master ~]# finger
Login Name Tty Idle Login Time Office Office Phone Host
root root pts/0 1:10 May 29 09:21 (192.168.1.20)
root root pts/1 May 29 10:29 (192.168.1.20)
[root@k8s-master ~]#
pwck:檢查用戶的密碼是否有問題
[root@k8s-master ~]# pwckuser 'ftp': directory '/var/ftp' does not existpwck: no changes[root@k8s-master ~]#
grpck:檢查組文件的完整性
3.5 權限管理命令
chmod命令:
chmod [OPTIONS]… MODE[,MODE]… FILE… chmod [OPTIONS]… OCTAL-MODE FILE… chmod [OPTIONS]… –reference=RFILE FILE…三類用戶:u:屬主g:屬組o:其它a:所有
(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…
注意:僅管理員可修改文件的屬主和屬組;
umask:文件的權限反向掩碼,遮罩碼;
文件:
666-umask
目錄:
777-umask
注意:之所以文件用666去減,表示文件默認不能擁有執行權限;如果減得的結果中有執行權限,則需要將其加1;
umask命令:
umask:查看當前umask umask MASK:設置umask;
注意:此類設定僅對當前shell進程有效。
,