linux使用者及許可權管理,linux使用者權限管理
【檔案管理、管道、使用者及組管理、使用者及許可權管理】\使用者及組管理
使用者與組管理
Linux系統是一個多使用者多任務的分時作業系統,任何一個要使用系統資源的使用者,都必須首先向系統管理員申請一個帳號,然後以這個帳號的身份進入系統。使用者的帳號一方面可以協助系統管理員對使用系統的使用者進行跟蹤,並控制他們對系統資源的訪問;另一方面也可以協助使用者組織檔案,並為使用者提供安全性保護。每個使用者帳號都擁有一個惟一的使用者名稱和各自的口令。使用者在登入時鍵入正確的使用者名稱和口令後,就能夠進入系統和自己的主目錄。實現使用者帳號的管理,要完成的工作主要有如下幾個方面:
1.使用者帳號的添加、刪除與修改。
2.使用者口令的管理。
3.使用者組的管理。
Linux使用者分為兩種,分別是管理員(UID:0)和普通使用者(UID:1-65535),普通使用者又分為系統使用者與登入使用者。
注:一個程式可以訪問哪些內容取決於這個程式的發行者是哪一個的。
linux組可分為Administrator 群組(GID:0)與普通使用者組(1-60000)
注:centos6版本與centos7版本的UID與GID略有不同。
此外,使用者組還可以劃分為基本組(使用者在建立時預設建立一個與其名字相同的基本組)與附加組(除了已有的基本組以外,還可以添加其他組,其他組就是此使用者附加組)
所以組名通使用者名稱,且只包含一個使用者就叫做私人組,而組內包含多個使用者叫做公有組
Linux使用者和組相關的設定檔
使用者和使用者組相關的資訊都存放在/etc/passwd,/etc/shadow,/etc/group以及/etc/gshadow檔案下。下面分別介紹這些檔案的具體內容。
1./etc/passwd
此檔案下儲存了使用者及其屬性資訊。其中每條資訊從左至右被冒號分割成了7個部分,username(使用者名稱):x(密碼預留位置,真正的密碼自然不能放在這裡了,太不安全了):UID(使用者ID):GID(使用者組ID):存放使用者的注釋資訊:使用者家目錄:使用者預設使用的shell。
2./etc/shadow
此檔案儲存了使用者密碼及其相關屬性資訊,其中每條資訊從左至右被冒號分割成9個部分,使用者名稱:密碼(被加密過的,密碼中有“!”或者“*”使用者已被禁用):最近一次修改密碼的日期,自linux元年開始的天數(1970年1月1日開始):密碼最短使用時間:密碼最長使用時間:密碼警示時間(在密碼到期前n天進行警示,需要修改密碼了):不啟用時間(超出警告時間後m天仍可登入):失效時間(到達此時間,使用者無法使用):保留位暫不使用。
3./etc/group
此檔案儲存了使用者組及其屬性資訊,每一行被冒號從左至右分割成了4個部分,組名(建立一個使用者就會建立一個同名的組):x組密碼預留位置(與使用者密碼一樣也是存放在其他位置):GID:以逗號分隔的使用者列表,以此組為附加組的使用者的使用者列表。
4./etc/gshadow
此檔案儲存了組密碼及其相關屬性資訊,每一行被冒號從左至右分割成了4個部分,組名(建立一個使用者就會建立一個同名的組):密文密碼(為空白時只有該群組成員可獲得許可權,“!”與“*”則不要求輸入密碼可直接加入):使用者組管理員(是逗號分隔的使用者列表,使用者組管理員可以修改密碼和群組成員,也很組裡其他成員擁有相同的許可權):成員(以此組為附加組的使用者的使用者列表,應該要和/etc/group下的使用者列表一樣)
使用者與組相關管理常用命令
一、使用者建立:useradd
使用方法:useradd [options] login
常用選項:
-u:--uid UID:指定UID,定義在/etc/login.defs
-g:--gid GROUP:指明使用者基本組,可為組名也可以是GID
-G: GROUP1[,GROUP2,...[,GROUPN]]]:指定使用者所屬的附加組,組事先存在
-c:--comment COMMENT:使用者注釋資訊
-d:/PATH/TO/ HOME_DIR:指定的路徑為使用者的家目錄:通過複製/etc/skel此目錄並重新命名實現,指定的家目錄路徑如果事先存在,則不會為使用者複製環境設定檔
-s:--shell SHELL:指定使用者的預設shell,可用列表存放在/etc/shells下
-r:建立系統使用者。
注:預設值設定在/etc/default/useradd中。可用 useradd -D命令查看建立使用者的預設配置
二、建立組:groupadd
使用方法:groupadd [option]... group_name
常用選項:
-g GID:指明GID號
-r:建立系統組
三、查看使用者相關ID資訊:id
使用方法:id [OPTION]... [USER]
常用選項:
-u: 僅顯示有效UID
-g: 僅顯示使用者的基本組ID
-G:僅顯示使用者所屬的所有組的ID
四、切換使用者或以其他使用者身份執行命令:su
使用方法:su [options...] [-] [user [args...]]
切換使用者方式:
非登入式切換,不會讀取目的使用者的設定檔進行初始化:su USERNAME
登入式切換,會讀取目的使用者設定檔,完全切換:su - USERNAME或者su -l USERNAME
換身份執行命令:
su [-] username -c 'COMMADN'
五、使用者加密:passwd
使用方法:passwd[options]username:修改指定使用者密碼,僅root使用者有許可權。
常用選項:
-l:鎖定指定使用者
-u:解鎖指定使用者
-n:mindays:指定最短使用到期日
-x:maxdays:最大使用到期日
-w:warndays:提前警示期限
-i:inactivedays:非活動期限
從標準輸入接收使用者密碼:echo “password” | passwd --stdin username
六、使用者屬性修改:usermod
使用方法:usermod [options] LOGIN
常用選項:
-u,UID:修改使用者的ID為新UID; -g, --gid GROUP:修改使用者到新基本組; -G, GROUP1[,GROUP2,...[,GROUPN]]]:修改使用者所屬的附加組;原來的附加組會被覆蓋;若保留原有,則同時使用-a選項(append) -s,新的預設shell -c, COMMENT:新的注釋資訊; -d, HOME_DIR:新的使用者家目錄;使用者原有的檔案不會被轉移至新家目錄下;若要移動則使用-m選項。 -l, login name:新的使用者名稱; -L,lock:鎖定使用者密碼;即在使用者原來的密碼字串之前添加一個"!"; -U, --unlock:解鎖使用者的密碼; 七、刪除使用者:userdel
使用方式:userdel [options] LOGIN
常用選項-r:刪除使用者時一併刪除其家目錄,預設不刪除
八、組屬性修改:groupmod
使用方式:groupmod [options] GROUP
常用選項:
-g GID:新的GID
-n group_name:新組名
九、組刪除:groupdel
使用方式:groupdel GROUP
十、組密碼:gpasswd
使用方式:gpasswd [option] group
常用選項:
-a USER:將user添加至指定組
-d USER:刪除使用者以當前組命名的附加組
-A USER1,USER2,...:設定有系統管理權限的使用者列表
十一、修改使用者屬性:chage
使用方式:chage [options] LOGIN
常用選項:
-d:修改最後一次修改密碼的時間
-E:修改使用者失效時間
-I:修改密碼到期怒限時間
-W:修改警示天數
-m:修改密碼最小使用天數
-M:修改密碼最長使用天數
檔案的許可權
檔案許可權針對的對象是:
owner:屬主,u
group:屬組,g
other:其他,o
對於檔案而言:
檔案可讀(r):可以查看其內容。
檔案可寫(w):可修改檔案內容。
檔案可執行(x):可以把檔案提請核心啟動為一個進程。
對於目錄而言:
目錄可讀(r):可以使用ls查看目錄中檔案清單
目錄可寫(w):可在此目錄中建立或刪除檔案
目錄可執行(x):可以使用ls-l查看目錄中檔案,可以cd進目錄。
許可權管理類命令
一、修改檔案許可權(chmod)
使用方法:
1. chmod [OPTION]... MODE[,MODE]... FILE...
可以直接將rwx直接賦值給相應的使用者類型:u為屬主,g為屬組,o為其他使用者,a為所有使用者(同ugo=---)
或者直接操作一類使用者的一個許可權位(u+x,o-r)
2.chmod [OPTION]... OCTAL-MODE FILE... 直接使用八進位來修改r=4,w=2,x=1.其中-R可遞迴修改許可權。 3.chmod [OPTION]... --reference=RFILE FILE.. 參考其他檔案的許可權
查看檔案許可權[root@localhost /]# ll -lh /djtotal 16K-rw-r--r-- 1 root root 51 Jun 14 10:36 hello_world.py-rw-r--r-- 1 root root 92 Jun 15 10:00 name_daxiaoxie.py-rw-r--r-- 1 root root 84 Jun 15 09:44 name.py-rw-r--r-- 1 root root 359 Jul 23 02:48 test.py修改許可權[root@localhost /]# chmod 775 /dj/hello_world.py [root@localhost /]# ll -lh /djtotal 16K-rwxrwxr-x 1 root root 51 Jun 14 10:36 hello_world.py-rw-r--r-- 1 root root 92 Jun 15 10:00 name_daxiaoxie.py-rw-r--r-- 1 root root 84 Jun 15 09:44 name.py-rw-r--r-- 1 root root 359 Jul 23 02:48 test.py使用第三種方式[root@localhost /]# chmod --reference=/dj/hello_world.py /dj/test.py [root@localhost /]# ll -lh /djtotal 16K-rwxrwxr-x 1 root root 51 Jun 14 10:36 hello_world.py-rw-r--r-- 1 root root 92 Jun 15 10:00 name_daxiaoxie.py-rw-r--r-- 1 root root 84 Jun 15 09:44 name.py-rwxrwxr-x 1 root root 359 Jul 23 02:48 test.py[root@localhost /]#
二、修改檔案的屬組屬主(僅使用root使用者)
1.修改屬主(chown)
使用方式:chown[OPTION]...[OWNER][:[GROUP]]FILE...或使用--referrence
chown owner|owner:group|:group file (其中:可用.替換,並且可以使用-R遞迴更換)
2.修改屬組(chgrp)
chgrp[option]...group file或--referrence方式
3.檔案或目錄建立時的遮罩碼:umask
file:666-umask(若某類使用者權限減得結果中存在x許可權則將其許可權+1)
dir:777-umask
umask:查看當前值
umask#:設定值