Linux操做系統對多用戶的管理,是很是繁瑣的,因此用組的概念來管理用戶就變得簡單,每一個用戶能夠在一個獨立的組,每一個組也能夠有零個用戶或者多個用戶。linux
Linux系統用戶是根據用戶ID來識別的,從默認ID編號從0開始,可是爲了和老式系統兼容,用戶ID限制在60000如下,Linux用戶分總共分爲三種,分別以下:shell
root用戶 (ID 0)數據庫
系統用戶 (ID 1-499)bash
普通用戶 (ID 500以上)app
Linux系統中的每一個文件或者文件夾,都有一個所屬用戶及所屬組,使用id命令能夠顯示當前用戶的信息,使用passwd命令能夠修改當前用戶密碼。Linux操做系統用戶的特色以下:ui
每一個用戶擁有一個UserID,操做系統實際讀取的是UID,而非用戶名;加密
每一個用戶屬於一個主組,屬於一個或多個附屬組,一個用戶最多有31個附屬組;spa
每一個組擁有一個GroupID;操作系統
每一個進程以一個用戶身份運行,該用戶可對進程擁有資源控制權限;.net
每一個可登錄用戶擁有一個指定的Shell環境。
Linux用戶在操做系統能夠進行平常管理和維護,涉及到的相關配置文件以下:
/etc/passwd 保存用戶信息
/etc/shdaow 保存用戶密碼(以加密形式保存)
/etc/group 保存組信息
/etc/login.defs 用戶屬性限制,密碼過時時間,密碼最大長度等限制
/etc/default/useradd 顯示或更改默認的useradd配置文件
如需建立新用戶,可使用命令useradd,執行命令useradd jfedu1便可建立jfedu1用戶,同時會建立一個同名的組jfedu1,默認該用戶屬於jfedu1主組。
Useradd jfedu1命令默認建立用戶jfedu1,會根據以下步驟進行操做:
讀取/etc/default/useradd,根據配置文件執行建立操做;
在/etc/passwd文件中添加用戶信息;
如使用passwd命令建立密碼,密碼會被加密保存在/etc/shdaow中;
爲jfedu1建立家目錄:/home/jfedu1;
將/etc/skel中的.bash開頭的文件複製至/home/jfedu1家目錄;
建立與用戶名相同的jfedu1組,jfedu1用戶默認屬於jfeud1同名組;
Jfedu1組信息保存在/etc/group配置文件中。
在使用useradd命令建立用戶時,能夠支持以下參數:
用法:useradd [選項] 登陸 useradd -D useradd -D [選項] 選項: -b, –base-dir BASE_DIR 指定新帳戶的家目錄; -c, –comment COMMENT 新帳戶的 GECOS 字段; -d, –home-dir HOME_DIR 新帳戶的主目錄; -D, –defaults 顯示或更改默認的 useradd 配置; -e, –expiredate EXPIRE_DATE 新帳戶的過時日期; -f, –inactive INACTIVE 新帳戶的密碼不活動期; -g, –gid GROUP 新帳戶主組的名稱或ID; -G, –groups GROUPS 新帳戶的附加組列表; -h, –help 顯示此幫助信息並推出; -k, –skel SKEL_DIR 使用此目錄做爲骨架目錄; -K, –key KEY=VALUE 不使用 /etc/login.defs 中的默認值; -l, –no-log-init 不要將此用戶添加到最近登陸和登陸失敗數據庫; -m, –create-home 建立用戶的主目錄; -M, –no-create-home 不建立用戶的主目錄; -N, –no-user-group 不建立同名的組; -o, –non-unique 容許使用重複的 UID 建立用戶; -p, –password PASSWORD 加密後的新帳戶密碼; -r, –system 建立一個系統帳戶; -R, –root CHROOT_DIR chroot 到的目錄; -s, –shell SHELL 新帳戶的登陸 shell; -u, –uid UID 新帳戶的用戶 ID; -U, –user-group 建立與用戶同名的組; -Z, –selinux-user SEUSER 爲SELinux 用戶映射使用指定 SEUSER。 |
新建jfedu用戶,並加入到jfedu1,jfedu2附屬組;
useradd -G jfedu1,jfedu2 jfedu |
新建jfedu3用戶,並指定新的家目錄,同時指定其登錄的SHELL;
useradd jfedu3 -d /tmp/ -s /bin/bash |
全部的Linux或者Windows系統都有組的概念,經過組能夠更加方便的管理用戶,組的概念應用於各行行業,例如企業會使用部門、職能或地理區域的分類方式來管理成員,映射在Linux系統,一樣能夠建立用戶,並用組的概念對其管理。
Linux組有以下特色:
每一個組有一個組ID;
組信息保存在/etc/group中;
每一個用戶至少擁有一個主組,同時還能夠擁有31個附屬組。
經過命令groupadd、groupdel、groupmod來對組進行管理,詳細參數使用以下:
groupadd用法 -f, –force 若是組已經存在則成功退出; 而且若是 GID 已經存在則取消 –g; -g, –gid GID 爲新組使用 GID; -h, –help 顯示此幫助信息並推出; -K, –key KEY=VALUE 不使用 /etc/login.defs 中的默認值; -o, –non-unique 容許建立有重複 GID 的組; -p, –password PASSWORD 爲新組使用此加密過的密碼; -r, –system 建立一個系統帳戶; groupmod用法 -g, –gid GID 將組 ID 改成 GID; -h, –help 顯示此幫助信息並推出; -n, –new-name NEW_GROUP 更名爲 NEW_GROUP; -o, –non-unique 容許使用重複的 GID; -p, –password PASSWORD 將密碼更改成(加密過的) PASSWORD; groupdel用法 groupdel jfedu 刪除jfedu組; |
Groupadd案例演示:
groupadd建立jingfeng組
groupadd jingfeng |
groupadd建立jingfeng組,並指定GID爲1000;
groupadd -g 1000 jingfeng |
groupadd建立一個system組,名爲jingfeng組
groupadd -r jingfeng |
Groupmod案例演示:
groupmod修改組名稱,將jingfeng組名,改爲jingfeng1;
groupmod -n jingfeng1 jingfeng |
groupmod修改組GID號,將原jingfeng1組gid改爲gid 1000;
groupmod –g 1000 jingfeng1 |
Useradd主要用於新建用戶,而用戶新建完畢,可使用usermod來修改用戶及組的屬性,以下爲usermod詳細參數:
用法:usermod [選項] 登陸 選項: -c, –comment 註釋 GECOS 字段的新值; -d, –home HOME_DIR 用戶的新主目錄; -e, –expiredate EXPIRE_DATE 設定賬戶過時的日期爲 EXPIRE_DATE; -f, –inactive INACTIVE 過時 INACTIVE 天數後,設定密碼爲失效狀態; -g, –gid GROUP 強制使用 GROUP 爲新主組; -G, –groups GROUPS 新的附加組列表 GROUPS; -a, –append GROUP 將用戶追加至上邊 -G 中提到的附加組中, 並不從其它組中刪除此用戶; -h, –help 顯示此幫助信息並推出; -l, –login LOGIN 新的登陸名稱; -L, –lock 鎖定用戶賬號; -m, –move-home 將家目錄內容移至新位置 (僅於 -d 一塊兒使用); -o, –non-unique 容許使用重複的(非惟一的) UID; -p, –password PASSWORD 將加密過的密碼 (PASSWORD) 設爲新密碼; -R, –root CHROOT_DIR chroot 到的目錄; -s, –shell SHELL 該用戶賬號的新登陸shell環境; -u, –uid UID 用戶賬號的新UID; -U, –unlock 解鎖用戶賬號; -Z, –selinux-user SEUSER 用戶帳戶的新SELinux 用戶映射。 |
將jfedu用戶屬組修改成jfedu1,jfedu2附屬組;
usermod -G jfedu1,jfedu2 jfedu |
將jfedu用戶加入到jfedu3,jfedu4附屬組,-a爲添加新組,原組保留;
usermod –a -G jfedu3,jfedu4 jfedu |
修改jfedu用戶,並指定新的家目錄,同時指定其登錄的SHELL;
usermod -d /tmp/ -s /bin/sh jfedu |
將jfedu用戶名修改成jfedu1;
usermod -l jfedu1 jfedu |
鎖定jfedu1用戶及解鎖jfedu1用戶方法;
usermod –L jfedu1 usermod -U jfedu1 |
使用userdel能夠刪除指定用戶及其用戶的郵箱目錄或者Selinux映射環境:
userdel jfedu1 保留用戶的家目錄;
userdel -r jfedu1 刪除用戶及用戶家目錄,用戶login系統沒法刪除;
userdel -rf jfedu1 強制刪除用戶及該用戶家目錄,不管是否login系統。
Linux權限是操做系統用來限制對資源訪問的機制,權限通常分爲讀、寫、執行。系統中每一個文件都擁有特定的權限、所屬用戶及所屬組,經過這樣的機制來限制哪些用戶或用戶組能夠對特定文件進行相應的操做。
Linux每一個進程都是以某個用戶身份運行,進程的權限與該用戶的權限同樣,用戶的權限越大,則進程擁有的權限就越大。
Lnux中有的文件及文件夾都有至少權限三種權限,常見的權限如表5-1所示:
權限 |
對文件的影響 |
對目錄的影響 |
r(讀取) |
可讀取文件內容 |
可列出目錄內容 |
w(寫入) |
可修改文件內容 |
可在目錄中建立刪除內容 |
x(執行) |
可做爲命令執行 |
可訪問目錄內容 |
目錄必須擁有x權限,不然沒法查看其內容 |
表5-1 Linux 文件及文件及權限
Linux權限受權,默認是受權給三種角色,分別是user、group、other,Linux權限與用戶之間的關聯以下:
U表明User,G表明Group,O表明Other;
每一個文件的權限基於UGO進行設置;
權限三位一組(rwx),同時需受權給三種角色,UGO;
每一個文件擁有一個所屬用戶和所屬組,對應UGO,不屬於該文件所屬用戶或所屬組使用O來表示;
在Linux系統中,能夠經過ls –l查看jfedu.net目錄的詳細屬性,如圖5-1所示:
drwxrwxr-x 2 jfedu1 jfedu1 4096 Dec 10 01:36 jfedu.net |
圖5-1 Linux jfedu.net目錄詳細屬性
jfedu.net目錄屬性參數詳解以下:
d 表示目錄,同一位置若是爲-則表示普通文件;
rwxrwxr-x 表示三種角色的權限,每三位爲一種角色,依次爲u,g,o權限,如上則表示user的權限爲rwx,group的權限爲rwx,other的權限爲r-x;
2表示文件夾的連接數量,可理解爲該目錄下子目錄的數量;
從左到右,第一個jfedu1表示該用戶名,第二個jfedu1則爲組名,其餘人角色默認不顯示;
4096表示該文件夾佔據的字節數;
Dec 10 01:36 表示文件建立或者修改的時間;
Jfedu.net 爲目錄的名,或者文件名。