一、Linux 的單用戶多任務linux
一個用戶登入,執行多個任務。好比你使用電腦,聊着QQ,聽着音樂。
二、Linux 的多用戶多任務web
apache用戶提供web服務 root用戶操做系統,互不影響
三、Linux 系統用戶角色劃分shell
用戶在系統中是分角色的,在Linux系統中,因爲角色不一樣,權限和所完成的任務也不一樣。值得注意的是用戶的角色是經過UID和GID 識別的。特別是UID,在運維工做中,一個UID是惟一標識一個系統用戶的帳號。
超級用戶:apache
默認是root用戶,其UID和GID 均爲O,在每臺unix/linux操做系統中都是惟一且真實存在的,經過它能夠登陸系統。能夠操做系統中任何文件。擁有最高的管理權限。在生產環境中,通常會禁止root帳號遠程SSH鏈接服務器,以增強系統安全。安全
普通用戶:bash
這類用戶通常是由具有系統管理員root的權限的運維人員添加的服務器
虛擬用戶:運維
與真實普通用戶區分來,這類用戶最大的特色是安裝系統後默認就會存在,且默認狀況不能登陸系統,他們是系統正常運行不可缺乏的,他們的存在主要是方便管理系統,知足相應的系統進程對文件屬主的要求。如:bin adm nobody工具
多用戶系統從實際上來講使得系統更爲方便。從安全角度來講,多用戶系統也更爲安全。ui
一、用戶及用戶組配置文件介紹
/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow 四個文件。
二、用戶:/etc/passwd
文件中每一行定義一個用戶帳號。各內容之間又經過「:」劃分爲多個字段。 (提示:passwd文件中有不少虛擬帳號、如bin,daemon等),通常來講,這些帳號是系統運行所須要的。在不肯定的狀況下,請不要隨意刪改此類帳號。 root: x :0 :0 :root :/root :/bin/bash 帳號名稱 帳號密碼 帳號UID 帳號GID 用戶說明 用戶家目錄 shell解釋器
三、UID字段限制說明:
0爲超級用戶 1-499 爲系統保留使用的UID。防止人爲創建帳戶的UID與系統的UID之間衝突 500-65535 普通帳戶UID 權限:644 /etc/shadow 權限:400,只有root可讀 一樣用「:」 分爲9個字段。
含義分別爲:
帳號密碼:最近更改密碼的時間:禁止修改密碼的天數:用戶必須更改口令的天數:警告更改密碼的天數:不活動時間:失效時間:標誌
四、用戶組配置文件:
/etc/group /etc/gshadow /etc/group 字段含義 用戶組名:用戶組密碼:GID:用戶組成員 /etc/gshadow 用戶組名:用戶組密碼:用戶組管理員帳號:用戶組成員
一、用戶與用戶組管理基本命令總結:
useradd 同 adduser,執行命令可在系統中添加用戶。 passwd 執行此命令可爲用戶設置密碼。 usermod 修改用戶的命令,能夠經過usermod來修改用戶登陸名,用戶的家目錄等等 id 查看用戶的uid,gid及所歸屬的用戶組 su 用戶切換工具 sudo sudo 是經過另外一個用戶來執行命令(execute a command as another user),su是用來切換用戶,而後切換到的用戶來完成相應的任務,但sudo能在命令後面直接接命令執行,好比 sudo ls /root/,不須要root 密碼就能夠執行只有root才能執行相應的命令或具有目錄權限:這個權限須要經過visudo命令或直接編輯/etc/sudoers 來實現 visudo visodu配置sudo權限的編輯命令;也能夠不用這個命令,直接用vi編輯/ect/sudoers實現。 pwcov 同步用戶從 /etc/passwd 到 /etc/shadow. pwck pwck是校驗用戶配置文件/etc/passwd 和/etc/shadow 文件內容是否合法或完整 pwunconv 是pwcov的逆向操做,是從/etc/shadow和/etc/passwd 建立 /etc/passwd.而後會刪除 /etc/shadow文件 chfn 更改用戶信息工具 finger 查看用戶信息工具 sudoedit 和sudo功能差很少
groupadd 添加用戶組 groupdel 刪除用戶組 groupmod 修改用戶組信息 groups 顯示用戶所屬的用戶組 grpck grpconv 經過/etc/group 和/etc/gshadow/ 的文件內容來同步或建立 /etc/gshadow,若是/etc/gshadow 不存在則建立。 grpunconv 經過/etc/group 和/etc/gshadow 文件內容來同步或建立/etc/group ,而後刪除gshadow文件。
二、/etc/skel 目錄
/etc/skel 目錄是用來存放新用戶配置文件的目錄,當咱們添加新用戶時,這個目錄下的全部文件會被自動複製到新添加的用戶的家目錄下;默認狀況下,/etc/skel 目錄下的全部文件都是隱藏文件(以點開頭的文件);經過修改,添加,刪除/etc/skel目錄下的文件,咱們可爲新建立的用戶提供統一,標準的,初始化用戶環境。 [root@localhost skel]# ls -al 總用量 24 drwxr-xr-x. 3 root root 4096 6月 24 03:12 . drwxr-xr-x. 85 root root 4096 7月 2 03:43 .. -rw-r--r--. 1 root root 18 7月 18 2013 .bash_logout -rw-r--r--. 1 root root 176 7月 18 2013 .bash_profile -rw-r--r--. 1 root root 124 7月 18 2013 .bashrc drwxr-xr-x. 2 root root 4096 11月 12 2010 .gnome2
當咱們用useradd命令添加新用戶的時候,Linux系統會自動複製/etc/skel/下的全部文件(包括隱藏文件)到新添加用戶的家目錄下。
實例一:
[root@localhost skel]# touch longge [root@localhost skel]# useradd longdidi [root@localhost longdidi]# ls /home/longdidi/ -al 總用量 24 drwx------. 3 longdidi longdidi 4096 7月 2 06:31 . drwxr-xr-x. 3 root root 4096 7月 2 06:31 .. -rw-r--r--. 1 longdidi longdidi 18 7月 18 2013 .bash_logout -rw-r--r--. 1 longdidi longdidi 176 7月 18 2013 .bash_profile -rw-r--r--. 1 longdidi longdidi 124 7月 18 2013 .bashrc drwxr-xr-x. 2 longdidi longdidi 4096 11月 12 2010 .gnome2 -rw-r--r--. 1 longdidi longdidi 0 7月 2 06:30 longge
提示:上面所述功能,實際工做中能夠考慮統一設置環境變量等,但通常中小公司,在生產環境通常不會隨意改這個目錄及內容。
三、/etc/login.defs 配置文件
/etc/login.defs 文件是用來定義建立用戶時須要的一些用戶的配置信息。如建立用戶時,是否須要家目錄,UID和GID的範圍,用戶及密碼的有效期限等。 [root@localhost longdidi]# egrep -v '^#|^$' /etc/login.defs MAIL_DIR /var/spool/mail #建立用戶時, 要在目錄/var/spool/mail中建立一個用戶mail文件 PASS_MAX_DAYS 99999 #一個密碼最長可使用的天數; PASS_MIN_DAYS 0 #更換密碼的最小天數; PASS_MIN_LEN 5 #密碼的最小長度; PASS_WARN_AGE 7 #密碼失效前提早多少天 警告 UID_MIN 500 #最小UID爲500,也就是說添加用戶的UID默認從500開始 UID_MAX 60000 #最大UID爲60000, GID_MIN 500 GID_MAX 60000 CREATE_HOME yes #是否建立家目錄 UMASK 077 #默認家目錄的umask USERGROUPS_ENAB yes #刪除用戶同時產出用戶組 ENCRYPT_METHOD SHA512 #MD5 密碼加密 /etc/default/useradd 文件 /etc/default/useradd 文件是在使用useradd添加用戶時的一個須要調用的一個默認的配置文件,可使用useradd -D參數,這樣的命令格式來修改文件裏面的內容。 [root@localhost default]# egrep -v '^# | ^$' /etc/default/useradd GROUP=100 HOME=/home #制定用戶家目錄的父目錄 INACTIVE=-1 #是否啓用帳號過時停權, -1 表示不啓用 EXPIRE= #帳號終止日期,不設置表示不啓用 SHELL=/bin/bash #新用戶默認所用的shell 類型 SKEL=/etc/skel #配置新用戶家目錄的默認文件存放路勁。前文提到的/etc/skel,就是配置在這裏生效的,即當咱們用useradd添加用戶時,用戶家目錄下的文件,都是從這裏配置的目錄中複製過去的。 CREATE_MAIL_SPOOL=yes #建立mail文件 提示:useradd -D
四、Linux用戶管理命令
linux 是一個多用戶多任務的操做系統,有着很豐富的用戶管理工具,這些工具包括用戶的查詢,添加,修改,以及不一樣用戶之間的互相切換等;經過這些工具,咱們能夠簡單、方便、安全的進行用戶管理工做。
與用戶管理相關的一些文件:
/etc/passwd 和 /etc/group 咱們對Linux的系統用戶和用戶組進行添加,修改,刪除的最終結果就是修改系統用戶文件/etc/passwd 和/etc/shadows 以及用戶組的 /etc/group 和文件/etc/gshadow. /etc/login.defs 和/etc/default/useradd /etc/login.defs文件是用來定義在建立用戶時的一些默認配置。如建立用戶時,是否須要家目錄,UID和GID的範圍,用戶及密碼的有效期限等等,。 /etc/default/useradd 文件是在使用useradd 添加用戶時須要調用的一個默認的配置文件,可使用 useradd -D參數,這樣的命令格式來修改文件裏面的內容,固然也能夠直接編輯修改。
4.1添加用戶命令useradd:
添加用戶的命令有useradd和adduser ,這兩個命令所能達到的效果是同樣的。固然出了useradd和 adduser命令以外,咱們還能經過修改用戶配置文件/etc/passwd 和/etc/group及手動建立文件的辦法來直接添加用戶。 useradd命令:當使用useradd命令不加參數選項,後面直接跟所添加的用戶名時,系統首先會讀取配置文件/etc/login.defs 和/etc/default/useradd 中所定義的參數或規則,根據設置的規則添加用戶,同時會向/etc/passwd 和 /etc/group 文件內添加新建用戶和用戶組幾記錄。 固然/etc/passwd和/etc/group的加密資訊文件/etc/shadows 和/etc/gshadow 也會同步生產記錄,同時系統還會根據/etc/default/useradd文件中所配置的信息創建用戶的家目錄,並複製/etc/skel 中的全部文件(包括隱藏的環境配置文件)到新用戶的家目錄中。
-c comment 新帳號password檔的說明欄 -d home_dir 新帳號每次登入時所使用的home_dir。預設置位 login名稱、 -e expire_date 帳號終止日期。 -f inactive_days 帳號過時後幾日永久停權。當設置爲0時帳號則馬上被停權。當設置爲-1時則關閉此功能, -g initial_group group名稱或以數字來作爲用戶登入起始用戶組。用戶組名須爲系統現有存在的名稱, -G group 定義此用戶爲多個不一樣groups的成員,每一個用戶組使用「,」都好分隔。
4.2添加用戶組命令groupadd
groupadd 命令有關的文件有: /etc/group 用戶組相關文件 /etc/gshadow 用戶組加密相關文件 groupadd命令語法: groupadd [-g gid [-o] ] [ -r ] [ -f ] groupname groupadd 參數選項: -g gid 制定用戶組GID值。除非接-o 參數(如:groupadd -g 1234 -o longge),不然ID值必須是惟一的數字(不能爲負數)。若是不指定-g參數,則預設值會從500開始 -r 創建系統用戶組,GID值會比/etc/login.defs 中定義的UID_MIN值小。 -f 新增一個帳戶,強制覆蓋一個已經存在的用戶組帳號, 文件: /etc/group 用戶組相關文件 /etc/gshadow 用戶組加密相關文件 提示:以上爲用戶組相關的文件,使用groupadd 命令的結果實際上就是更改維護這兩個文件。 相關命令: chfn chsh useradd userdel usermod passwd groupdel groupmod groupadd命令實例: 在生產環境中,通常增長用戶組的用法都是很是簡單的。
普通用戶和超級用戶均可以運行passwd命令,但普通用戶只能更改自身的用戶密碼。超級用戶root則能夠設置或修改全部用戶的密碼。 當直接 passwd 命令後面不接任何參數或用戶名時,則表示修改當前登陸用戶的密碼。
passwd 參數選項: -k --keep-tokens 保留即將過時的用戶在期滿後仍能使用 -d --delete 刪除用戶密碼,僅能以root權限操做 -l --lock 鎖住用戶無權更改密碼,僅能經過root權限操做 -u --unlock 解除鎖定 -f --force 強制操做;僅root權限才能操做 -x --maximum=DAYS 兩次密碼修改的最大天數,後面接數字;僅能root權限操做 -n --minimum=DAYS 兩次密碼修改的最小天數,後面接數字;僅能root權限操做 -w --warning=DAYS 在距多少天提醒用戶修改密碼:僅能root操做 -i --inacive=DAYS 在密碼過時後多少天,用戶被禁掉,僅能root操做 -S --status 查詢用戶的密碼狀態,僅能root操做
實例:咱們用--stdin 參數實現非交互式的批量設置或修改密碼
[root@localhost ~]# echo "123.com" | passwd --stdin longdidi 更改用戶 longdidi 的密碼 。 passwd: 全部的身份驗證令牌已經成功更新。
4.4修改用戶密碼有效期限相關命令chage:
chage命令的用法不少,和passwd等命令功能也有很多是重複的。 語法: chage [選項] 用戶名 -d --lastday 將最近一次密碼設置時間設爲「最近日期」 -E --expiredate 將帳戶過時時間設爲「過時日期」 -h 顯示幫助 -i 將因過時而失效的密碼設爲「失效密碼」 -l 顯示帳戶年齡信息 -m 將兩次改變密碼之間相距的最小天數設置爲「最小天數」
4.5刪除用戶相關命令userdel
相關文件: /etc/passwd 用戶帳號資料文件 /etc/shadow 用戶帳戶資訊加密文件 /etc/group 用戶組資訊文件 userdel 語法: userdel [-r] 用戶名 groupdel chfn
4.6更改用戶的shell類型 chsh
4.7用戶信息修改相關命令usermod:
語法: usermod [-c comment] [-d home_dir [-m]] ..... usermod 參數選項: -c -d 更新用戶新的家目錄。若是給定—m選項,用戶舊的家目錄會搬到新的家目錄去, -e 加上用戶帳號中止日期2 -f 帳號過時幾往後永久停權 ....