Linux的學習者都知道,Linux的每個檔案都有相當多的屬性與權限。其中最重要的就是檔案所有者的概念。今天我就總結一下使用者與組相關的一些指令。
1.使用者的概念
系統中的每個程序(運作程式)都作為一個特定使用者運作。每個檔案歸一個特定使用者所有。對檔案和目錄的通路受到使用者的限制。與運作程序相關聯的使用者可确定該程序可通路的檔案和目錄。
若要檢視與程序相關聯的使用者,在ps指令中包含u選項。第一列顯示使用者名:
[root@serverX ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19244 1424 ? Ss 21:00 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 21:00 0:00 [kthreadd]
student 114 0.0 0.2 106008 1240 pts/0 S 21:00 0:00 /bin/sh
若要檢視與某一檔案或目錄相關聯的使用者,則使用ls -l指令。第三列顯示使用者名:
[root@serverX ~]# ls -l /tmp
-rw-------. 1 root root 9412 Aug 3 22:49 sv1jc.tmp
-rw-------. 1 student student 24288 Jul 30 21:24 sv25e.tmp
2.Linux使用者在資料庫中定義。
預設情況下,系統使用簡單的“平面檔案”(即/etc/passwd檔案)存儲有關本地使用者的資訊。/etc/passwd采用以下格式(七個冒号分隔字段):
account:password:UID:GID:GECOS:directory:shell
使用者屬性:
account是UID到名稱的一種映射,便于使用者使用。
password以前是以加密格式儲存密碼的位置。現在密碼存儲在稱為/etc/shadow的單獨檔案中。
UID是使用者的ID,在最基本的級别辨別使用者的編号。
GID是主組ID,預設情況下,是與所有建立檔案關聯的号碼,用于潛在的合并。
GECOS字段存儲任意文本,通常是使用者的實際姓名、辦公電話或個人電話号碼。
directory是使用者的個人資料和配置檔案的位置。
shell是在使用者登入時,以及如果shell(例如/bin/bash)提供使用者指令行提示時,執行的程式。
3.管理本地使用者
3.1 useradd建立使用者
useradd username可在無選項的情況下運作時,為/etc/passwd中的所有字段設定合理的預設值
useradd在預設情況下不設定任何有效密碼,使用者無法登入
useradd –help将顯示可用于覆寫預設值的基礎選項
-c comment 指定一段注釋性描述。
-d 目錄 指定使用者主目錄,如果此目錄不存在,則同時使用-m選項,可以建立主目錄。
-g 使用者組 指定使用者所屬的使用者組。
-G 使用者組,使用者組 指定使用者所屬的附加組。
-s Shell檔案 指定使用者的登入Shell。
-u 使用者号 指定使用者的使用者号,如果同時有-o選項,則可以重複使用其他使用者的辨別号。
3.2 userdel删除使用者
userdel username從/etc/passwd中删除使用者,但預設情況下,主目錄保持不3變。
userdel -r username可删除使用者和使用者的主目錄。
3.3 id顯示使用者資訊
id 将顯示使用者的資訊,包括其UID編号群組成員身份。
id username将顯示username的使用者資訊,包括其UID編号群組成員身份。
3.4 passwd設定密碼
passwd username可用與設定使用者的初始密碼,或更改該使用者的密碼。
3.5 UID範圍
UID 0是root,且具有特殊權限
UID 1-499按約定是“系統使用者”-一般是非互動服務帳戶
UID 500+是人們用來互動通路計算機的“正常使用者”
4.管理密碼
一直以來,密碼都存儲在/etc/passwd檔案中。但是/etc/passwd必須完全可讀,因為指令(例如ls)需要通路該檔案才能将UID映射到使用者名。
将密碼遷移到更加安全的/etc/shadow檔案,該檔案支援若幹個不同的密碼加密算法。隻要加密的密碼存儲在專用檔案中,密碼期限政策和資料就可以存儲。
4.1密碼哈希中存儲有哪3條資訊?
$1$myPMmLiM$NUAUYAnGzIt1maaTWmj1k.
1. 1 -雜湊演算法(1表示MD5哈希)
2. myPMmLiM – 用于加密哈希的salt
3. NUAUYAnGzIt1maaTWmj1k. - 已加密的哈希
4.2/etc/shadow字段
root:$1$myPMmLiM$NUAUYAnGzIt1maaTWmj1k.:15183:0:99999:7:::
1. 使用者名
2. 密碼散列
3. 上次密碼更改日期(自1970年1月1日以來的天數)
4. 最短密碼期限(按天數計,0 = 無最短期限要求)
5. 最長密碼期限(按天數計)
6. 密碼警告期限(按天數計,0 = 未指定警告)
7. 密碼非活動期限(按天數計)
8. 賬戶到期日(自1970年1月1日以來的天數)
4.3下圖顯示了相關的密碼期限參數,可以使用chage對其進行調整,以實施密碼期限政策。
<a href="http://s2.51cto.com/wyfs02/M01/86/B3/wKiom1fH4R3i5BfVAAA2gq0fSJs950.png" target="_blank"></a>
示例:
# chage -m 0 -M 90 -W 7 -I 14 username
在下次登入時,chage -d 0 username将強制更新密碼。
chage -l username 将列出使用者名的目前設定。
usermod 可以修改賬戶,包括通過-L選項進行“鎖定”。
5.管理組
與使用者一樣,組也有名稱和編号(GID)。本地組在/etc/group中定義。LDAP也可用于提供組資訊。
5.1主要組
每個使用者隻有一個主要組。
對于本地使用者,主要組通過/etc/passwd第三個字段中列出的組的GID編号定義
通常,使用者建立的新檔案歸主要組所有。
通常,新建立使用者的主要組為具有與該使用者相同名稱的新建立組。該使用者是這一使用者專用組(UPG)的唯一成員。
5.2補充組
使用者可以是0或多個補充組的成員。
屬于本地組補充成員的使用者列在/etc/group中組條目的最後一個字段中。對于本地組,使用者成員身份
由/etc/group中組條目的最後一段中找到的逗号分隔的使用者清單來确定。
groupname:password:GID:user1,user2,user3
補充組成員身份用來幫助確定使用者具有通路系統中檔案和其他資源的權限。
5.3管理補充組
1. groupadd -g 601 groupname 建立名為groupname且GID為601的補充組。
2. usermod -aG groupname username 會将使用者username添加到groupname中。
6.chown指令改變某個檔案或目錄的所有者和所屬的組
該指令可以向某個使用者授權,使該使用者變成指定檔案的所有者或者改變檔案所屬的組。使用者可以是使用者或者是使用者D,使用者組可以是組名或組id。檔案名可以使由空格分開的檔案清單,在檔案名中可以包含通配符。
文法:
chown(選項)(參數)
參數:
-R或——recursive:遞歸處理,将指定目錄下的所有檔案及子目錄一并處理;
-c或——changes:效果類似“-v”參數,但僅回報更改的部分;
-f或--quite或——silent:不顯示錯誤資訊;
-h或--no-dereference:隻對符号連接配接的檔案作修改,而不更改其他任何相關檔案;
-v或——version:顯示指令執行過程;
本文轉自willis_sun 51CTO部落格,原文連結:http://blog.51cto.com/willis/1845237,如需轉載請自行聯系原作者