Ps:本內容摘自「鳥哥的私房菜html
Linux系統新增與移除使用者:useradd,相關設定檔,passwd,usermod,userdelshell
新增使用者:
useradd [-u UID] [-g initial_group] [-G other_group] \
-[Mm] [-c 說明檔] [-d home] [-s shell] username
參數:
-u: 後面接的是UID,是一組數字。直接指定一個特定的UID給這個帳號;
-g: 後面接的那個數組名稱就是咱們上面提到的initial group 啦~
該group ID(GID)會被放置到/etc/passwd的第四個字段內。
-G:後面接的羣組名稱則是這個帳號還能夠支持的羣組。
這個參數會修改/etc/group內的相關資料喔!
-M:強制!不要創建使用者家目錄。
-m: 強制!要創建使用者家目錄!
-c: 這個就是/etc/passwd的第五欄的說明內容啦!
-d: 指定某個目錄成爲家目錄,而不要使用默認值;
-r: 創建一個系統的帳號,這個帳號的UID會有限制(/etc/login.defs)
-s: 後面接一個shell,預設是/bin/bash啦!數組
Ps:創建一個系統帳號,使用useradd -r 系統帳號名稱
帳號管理更動的設定檔至少包括:
/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow,/etc/username安全
相關設定檔:咱們使用useradd新增使用者(帳號)時,一些在/etc/passwd當中的
值會去參考/etc/default/useradd,這個檔案的內容有點像這樣:
GROUP=100 預設的羣組
HOME=/home 預設的家目錄所在目錄
INACTIVE=-1 在/etc/shadow內的第七欄
EXPIRE= 在/etc/shadow內的第八欄
SHELL=/bin/bash 預設的shell
SKEL=/etc/skel 使用者家目錄的內容數據參考目錄bash
關於羣組的創建機制:
對於使用者羣組的創建機制中,則有兩種不同的機制存在:
》以FC4爲表明,新建使用者時,若無指定initial group,則系統會主動創建一個
與帳號相同的羣組名稱,以該羣組做爲使用者的initial group;
》以SuSE 9 爲表明,新建使用者時,預設不會創建新羣組,而
以/etc/default/useradd內的GROUP設定值做爲使用者的initial group。server
關於使用者家目錄的參考:/etc/skel/*
SKEL就是使用者家目錄的參考目錄。新增使用者家目錄內的各項數據,都是
由/etc/skel所複製過去的。
因此呢,將來若是我想要讓新增使用者是,該使用者的環境變量~/.bashrc就設定
穩當的話,您能夠到/etc/skel/.bashrc去編輯一下,也能夠建
立/etc/skel/public_html這個目錄,那麼將來新增使用者後,在他的家目錄就會有
public_html那個目錄。htm
關於使用者UID/GID的設定:
與密碼還有UID/GID有關的設定檔則是在/etc/login.defs裏面,這個檔案有點像這
樣:
MAIL_DIR /var/spool/mail 使用者預設郵件郵箱放置目錄
PASS_MAX_DAYS 9999 /etc/shadow內的第五欄
PASS_MIN_DAYS 0 /etc/shadow內的第四欄
PASS_MIN_LEN 5 密碼最短的字符長度,建議改到6以上
PASS_WARN_AGE 7 /etc/shadow內的第六欄
UID_MIN 500 使用者最小的UID,意即小於500的UID爲系統保留
UID_MAX 60000 使用者最大的UID
GID_MIN 500 使用者自訂羣組最小的UID,小於500爲系統保留
GID_MAX 60000 使用者自訂羣組的最大UID
CREATE_HOME yes 在不加-M及-m時,是否主動創建使用者家目錄?資源
關於家目錄預設是否創建:
在FC4的環境下,使用useradd useraccount 預設是會主動的創建家目錄。除非使
用-M這個參數。而SuSE server9這個版本,預設是不創建家目錄的,除非使用-m這
個參數。所以,若是確定要創建家目錄的話,不論在那個版本,最好加上-m這個參數
來強制創建家目錄吧。字符串
因此嘍,useradd 這支程序在創建Linux上的帳號是,至少會參考:
/etc/default/useradd
/etc/login.defs
/etc/skel/*it
============passwd===========
使用useradd創建了帳號以後,在預設的狀況下,該帳號是暫時被封鎖的。你能夠瞧
一瞧/etc/shadow內的第二字段就曉得了。因此直接給他設定新密碼就行了!
passwd 帳號名稱[useraccount]
因爲使用者的身份不一樣passwd有兩種用法,
若是是root能夠利用passwd[username]來幫使用者修改他們的密碼!而不須要知道
舊密碼。另外,也只有root能夠隨便設定密碼,即便密碼不符合系統的密碼驗證要
求。
若是是通常身份使用者,或者是root想要修改本身的密碼時,直接輸入【passwd】
,就可以修改本身的密碼了。通常身份使用者輸入的密碼會通過系統的驗證,驗證的
機制除了/etc/login.defs裏頭規定的最小密碼字符數以外,還會受
到/etc/pam.d/passwd這個PAM模塊的檢驗呢!
通常來講,您輸入的密碼最好要符合底下的要求:
密碼不能與帳號相同及包含;
密碼儘可能不要選用字典裏面會出現的字符串;
密碼須要超過8個字符;
若是三次密碼輸入沒法通過驗證,那麼該密碼就不被接受,固然仍是隻能使用舊密碼
執行passwd經過後,您就能夠在/etc/shadow下查看到密碼內容被改過了。
。
=========usermod==========
使用usermod能夠對帳號相關的數據進行微調
usermod [-cdegGlsuLU] username
參數:
-c:後面接帳號的說明,即/etc/passwd 第五欄的說明欄,能夠加入一些帳號的說
明;
-d: 後面接帳號的家目錄,即修改/etc/passwd的第六欄;
-e: 後面接日期,格式是YYYY-MM-DD也就是在/etc/shadow內的第八個字段數據啦
-g: 後面接group name,修改/etc/passwd的第四個字段,亦便是GID的字段!
-G:後面接group name,修改這個使用者可以支持的羣組,修改的是/etc/group
-l: 後面接帳號名稱。亦便是修改帳號名稱,/etc/passwd的第一欄!
-s: 後面接Shell的實際檔案,例如/bin/bash 或/bin/csh等等。
-u: 後面接UID數字啦!即/etc/passwd第三欄的資料;
-L:暫時將使用者的密碼凍結,讓他沒法登入。其實僅改/etc/shadow的密碼欄。
-U:將/etc/shadow密碼欄的「!」拿掉,解凍啦!
===============userdel==============
刪除使用者啦,與他相關的檔案由:
/etc/passwd,etc/shadow,/home/username
指令的語法是:
userdel [-r] username
參數:-r 連同使用者的家目錄也一塊兒刪除
這個指令下達的時候要當心!一般咱們要移除一個帳號的時候,你能夠手動的
將/etc/passwd與/etc/shadow裏頭的該帳號取消便可!通常而言,若是該帳號只是
[暫時不啓用]的話,那麼將/etc/shadow裏頭最後倒數一個字段設定爲0就可讓該
帳號沒法使用,可是全部跟該帳號相關的數據都會留下來!使用userdel的時機,通
常是【你真的肯定不要讓該用戶在主機上面使用任何數據了!】
另外,若是想要完整的將某個帳號完整的刪除,最好能夠在下達【userdel -r
username】以前,先以【find / -user username】查出整個系統內屬於username
的檔案,而後再加以刪除吧!
使用者功能:========chfn, chsh================
不管是useradd/usermod/userdel, 都是系統管理員所可以使用的指令,若是是一
般身份使用者經常使用「chfn,chsh」指令變動帳號數據!
一、chsh [-ls]
參數:
-l: 列出目前系統上面可用的shell,其實就是/etc/shells的內容!
-s: 設定修改本身的Shell。
二、chfn [-foph]
參數:
-f: 後面接完整的大名;
-o: 您辦公室的房間號碼;
-p: 辦公室的電話號碼;
-h: 家裏的電話號碼!
這些信息更改的是本來/etc/passwd裏面的第五欄說明數據啦!每一個信息中間都以逗
號[,]分隔開來而已。
這個程序主要是搭配finger這支程序在運做的!不過,finger不是很安全預設不安
裝。
====================id===============
id這個指令則能夠查詢某人或本身的相關UID/GID等等的信息,他的參數也很多。
PS:id指令查詢的group值的是目前該使用者所屬的全部羣組,可是您必需要了解什
麼是【初始羣組與有效羣組】的差別!
================新增與移除羣組================
基本上,羣組的內容與這兩個檔案有關:
/etc/group, /etc/gshadow
羣組的內容其實很簡單,都是上面兩個檔案的新增,修改與刪除而已,不過,若是再
加上有效羣組的概念,那麼newgrp與gpasswd則不可不知呢!
groupadd:
groupadd [-g gid] [-r]
參數:
-g: 後面接某個特定的GID,用來直接給予某個GID~
-r: 創建系統羣組啦!與/etc/login.defs內的GID_MIN有關。
PS:以groupadd新增的帳號,預設都不能使用密碼的方式登入的,也就是預設是私有
羣組,並沒有法使用newgrp來登入的呢!
groupmod:
跟usermod相似的,這個指令僅是在進行group相關參數的修改而已。
groupmod [-g gid] [-n group_name]
參數:
-g: 修改既有的GID數字;
-n: 修改既有的羣組名稱
不過,不要隨意的更動GID,容易形成系統資源的錯亂問題。
groupdel: groupdel天然就是在刪除羣組的用法: groupdel groupname