Linux用戶操作及權限


Linux入門之 用戶操作及權限

  在一個公司里,老板與員工有上下級之分,員工與員工間也有上下級或同級之分。每個級別在公司的職責不同,權限也不同。在Linux操作系統中也一樣,不同的用戶身份擁有着不同的功能與權限。


Linux用戶的分類


超級管理員: UID為0 root用戶擁有至高無上的命令,root用戶不能改名

系統用戶:UID小於1000,用於管理服務,一般不允許登陸

普通用戶:UID大於或等於1000,權限較小,允許登陸,只能使用bin下命令


1.用戶創建,刪除,修改

useradd命令

 useradd - create a new user or update default new user information

-c,  --comment  描述
-d,  --home HOME_DIR 家目錄
-e, --expiredate EXPIRE_DATE  過期時間
-f, --inactive INACTIVE 是否啟用過期機制
-g, --gid GROUP   指定組ID號
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]  附加組
-m, --create-home     建立家目錄           
-M,                    不建立家目錄
           Do not create the user′s home directory, even if the system wide
           setting from /etc/login.defs (CREATE_HOME) is set to yes.

-N, --no-user-group 不指定用戶同名組
-r, --system    指定該帳號是系統帳號
-s, --shell SHELL  指定登錄shell
-u, --uid UID   指定用戶ID號
-U, --user-group 指定用戶創建用戶同名組
-o, --創建用戶是可以uid重復

usermod命令

usermod - modify a user account
-a, --append
-L, --lock
-U, --unlock
-m, --move-home with -d

userdel命令

userdel - delete a user account and related files
-f, --force
-r, --remove 刪除主目錄及郵箱

change命令

chage
-h, --help    display this help message and exit
-m, 密碼可更改的最小天數。為零時代表任何時候都可以更改密碼。
-M, 密碼保持有效的最大天數。
-W, 用戶密碼到期前,提前收到警告信息的天數。
-E, 帳號到期的日期。過了這天,此帳號將不可用。
-d, 上一次更改的日期    如果設置為0 用戶下次登錄必須改密碼
-i, 停滯時期。如果一個密碼已過期這些天,那么此帳號將不可用
-l, 例出當前的設置。由非特權用戶來確定他們的密碼或帳號何時過期。

who命令

  who命令將列出所有正在使用系統的用戶、所用終端名和注冊到系統的時間。而who am i 命令將列出使用該命令的當前用戶的相關信息。例如:

[root@localhost ~]# who
root     :0           2019-10-10 07:59 (:0)
root     pts/0        2019-10-10 07:59 (:0)
root     pts/1        2019-10-10 07:59 (:0)

[root@localhost ~]# who am i
root     pts/1        2019-10-10 07:59 (:0)

2.密碼設置及密碼文件

passwd命令

passwd - set user password
-l, lock
-u, unlock
-d, delete a passwd  for an account
-S,  This will output a short information about  the  status  of  the password for a given account.
--stdin,
    echo linux |passwd --stdin vfast    1 > 0

密碼文件

/etc/passwd
   User account information.
       [用戶名]:[密碼]:[UID]:[GID]:[身份描述]:[主目錄]:[登錄shell] 
/etc/shadow
           Secure user account information.
                 用戶名:這是用戶登錄系統時使用的用戶名,它在系統中是惟一的
                 口令:此字段存放加密的口令
                 最后一次修改的時間:標識從某一時刻起到用戶最后一次修改口令的天數
                 最小時間間隔:兩次修改口令之間的最小天數
                 最大時間間隔:口令保持有效的最多天數,即多少天后必須修改口令
                 警告時間:從系統開始警告到口令正式失效的天數
                 不活動時間:口令過期多少天后,該賬號被禁用
                 失效時間:指示口令失效的絕對天數(從1970年1月1日開始計算)
                 標志:未使用

shadow文件

  目前,大多數UNIX/Linux系統中,利用/etc/shadow文件存放用戶賬戶的加密密碼信息和密碼的有效期信息。

user01:!!:18173:0:99999:7:::

  Linux系統的shadow文件中,為每個用戶提供一條記錄,各個字段用“:”隔開,這9個字段按先后順序分別是
注冊名:密文密碼:上次更改密碼時間距1970年1月1日的天數:密碼更改后不可以更改的天數:密碼更改后必須再次更改的天數(即密碼的有效期):密碼失效前警告用戶的天數:密碼失效后距離賬戶被查封的天數:賬戶被查封時間距1970年1月的天數;保留字段


3.組的管理

groupadd

groupadd - create a new group
命令語法
groupadd [選項] 組名
命令選項
-g, --gid GID        指定GID
-r, --system        創建一個系統組
-o, --non-unique    此選項允許添加一個使用非唯一 GID 的組
注意:組名最長為 32 個字符

groupmod命令

groupmod - modify a group definition on the system
命令語法
groupmod [選項] 組名
命令選項
-g, --gid GID
-n, --new-name NEW_GROUP  給組改名
-o, --non-unique 

例子  
1、將組名為test3的名字改為baism
groupmod test3 -n baism

groupdel命令

groupdel - delete a group

4.組密碼及組配置文件

gpasswd命令

gpasswd - administer /etc/group and /etc/gshadow
-a, --add USER                add USER to GROUP
-d, --delete USER             remove USER from GROUP
-r, --remove-password         remove the GROUP's password
-R, --restrict                restrict access to GROUP to its members 限制用戶登錄該組,除了組成員。
-M, --members USER,...        set the list of members of GROUP
-A, --administrators ADMIN,...
                                set the list of administrators for GROUP
案例:
設置組root密碼    #gpasswd root
用戶組身份切換為root $newgrp root
組管理員設置 #gpasswd test -A user3
限制陌生用戶切換到組 #gpasswd -R test
指定組的成員列表   # gpasswd test -M user3,user2

配置文件

/etc/group
  Group account information.
      [組名]:[密碼域]:[GID]:[組員列表] 
/etc/gshadow
  Secure group account information.

5.相關文件

/etc/passwd
        用戶賬戶信息。
/etc/shadow
        安全用戶賬戶信息。
/etc/group
        組賬戶信息。
/etc/gshadow
         安全組賬戶信息。
/etc/default/useradd
           賬戶創建的默認值。
/etc/skel/
           包含默認文件的目錄。
/etc/login.defs
           Shadow 密碼套件配置。

6.身份切換

su 命令--用戶身份的切換

su [options...] [-] [user [args...]]
如:
su - root

su user01

  在大多的linux的版本中,都可以使用"su"或者"su -",但是"su"和"su -"有何差別:
  "su"只是切換了root身份,但Shell環境仍然是普通用戶的Shell;而"su -"連用戶和Shell環境一起切換成root身份了。只有切換了Shell環境才不會出現PATH環境變量錯誤。"su"切換成root用戶以后,"pwd"一下,發現工作目錄仍然是普通用戶的工作目錄;而用"su -"命令切換以后,工作目錄變成root的工作目錄了。用"echo $PATH"命令看一下"su"和"su -"以后的環境變量有何不同。以此類推,要從當前用戶切換到其它用戶也一樣,應該使用"su -"命令。

當一個用戶同時屬於多個組,如何切換組身份 ?

newgrp 命令

  newgrp指令類似login指令,它是以相同的帳號,另一個群組名稱,再次登入系統。欲使用newgrp指令切換群組,您必須是該群組的用戶,若不指定群組名稱,則newgrp指令會登入該用戶名稱的預設群組。



附加知識:文件與文件夾權限

Linux 基本權限

linux基本權限
使用ls -l filename 命令查看文件或文件夾詳細權限
ls -l
-rw-r--rw-  1 root root    22 Jan  6 15:42 abc
- --- --- ---
第1個 -  文件類型
第2-4個 -  文件所有者的權限  root    rw-       r  讀   w  寫   x  執行
第5-7個 -  文件所屬的組中的成員對其權限  root   r--
第8-10個 -  其他人   rw-
22 文件或文件夾的大小
Jan  6 15:42   創建日期
abc  文件名

chmod命令

chmod - 改變文件的訪問權限
命令語法
chmod [options] mode file...
命令選項
-R 遞歸設置權限,針對目錄有效
mode  誰給什么權限
u(所有者)  g(所屬組)   o(其他人)  a(所有人)
+ - =
權限  r 讀  w 寫   x 執行
數字權限
r 讀 4
w 寫 2
x 執行 1
chmod 760 abc

chown命令

chown 修改文件或文件夾所有者命令
命令語法
chown [options] user [:group] file...
命令選項
-R, 遞歸設置,針對文件夾
chown 新所有者  文件名
chown   新的所有者.新的所屬組  文件名
-R, 遞歸修改

chgrp命令

chgrp  改變所屬的組
命令語法
chgrp [選項] 組文件...
命令選項
-R, 遞歸設置權限,針對目錄有效
chgrp 新所有組  文件名
chown   .新的所屬組  文件名

Linux特殊權限

linux特殊權限 7 777
suid 4    當一個二進制文件擁有SUID權限后,當其他用戶執行該二進制文件的時候,該二進制文件就會以他所有者的權限去執行
sgid 2   
  要求文件夾下的新建的子文件夾或者子文件繼承父文件夾的屬組
sticky bit  1
如果給文件夾 賦予粘連位  則該文件夾下的文件或文件夾只能由所有者及ROOT刪除

Linux隱藏權限

chattr命令

chattr [+-=][ASacdistu] 文件或文件名
 命令選項:
        + : 增加某個特殊參數,其他原本存在的參數不動。
        - : 刪除某個特殊參數,其他原本存在的參數不動。
        = : 設置一定,且僅有后面接的參數
        A : 當設置了A屬性時,這個文件(或目錄)的存取時間atime(access)將不可被修改,可避免例如手提電腦有磁盤I/O錯誤的情況發生。
        S : 這個功能有點類似sync。就是將數據同步寫入磁盤中。可以有效地避免數據流失。
        a : 設置a之后,這個文件將只能增加數據,而不能刪除,只有root才能設置這個屬性。
        c : 這個屬性設置之后,將會自動將此文件“壓縮”,在讀取的時候將會自動解壓縮,但在存儲的時候,將會先進行壓縮后再存儲(對於大文件有用)。
        d : 當執行dump(備份)程序的時候,設置d屬性將可使該文件(或目錄)具有轉儲功效。
        i : i的作用很大。它可以讓一個文件“不能被刪除、改名、設置連接,也無法寫入或新增數據”。對於系統安全性有相當大的幫助。
        j : 當使用ext3文件系統格式時,設置j屬性將會使文件在寫入時先記錄在journal中。但是,當文件系統設置參數為data=journalled時,由於已經設置日志了,所以這個屬性無效。
        s : 當文件設置了s參數時,它將會從這個硬盤空間完全刪除。
        u : 與s相反,當使用u來設置文件時,則數據內容其實還存在磁盤中,可以用來還原刪除.
            注意:這個屬性設置上,比較常見的是a與i的設置值,而且很多設置值必須要root才能設置。

lsattr命令

lsattr 文件或文件名
 查看文件或文件夾的隱藏權限

Linux file ACL 權限

setfacl命令

setfacl - set file access control lists
命令語法
setfacl [選項] file...
命令選項
-m, 修改acl
-x, 刪除acl
-b, 刪除所有acl
-k, 刪除默認的acl
-R, 遞歸

getfacl命令

getfacl 查看文件權限
命令語法
getfacl  file...


免責聲明!

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



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