歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux基礎知識 >> Linux新手的學習日記:用戶管理詳細解析

Linux新手的學習日記:用戶管理詳細解析

日期:2017/3/2 14:47:07   编辑:Linux基礎知識
在Linux系統中,所有的用戶和組像一個國家。如果國家要繁榮昌盛的話,需要治理得當,需要有主席或者總統,以及地方官員和老百姓組成。在Linux中如果你對安全需求比較苛刻,完全可以限制用戶的各種行為,不同用戶的權限是不同的。
 
  在linux中系統中,它並不認識帳號名稱。它認識的是我們的帳號ID,帳號ID保存在/etc/passwd文件中。我們在登錄linux主機時,在輸入完帳號和密碼時,Linux會先查找/etc/passwd文件中是否有這個帳號,如果沒有則跳出,如果有的話,他會讀取該帳號的user ID和group ID同時該帳號的根目錄和shell也讀了出來。然後在去核對密碼表,在/etc/shadow中找出我們剛剛輸入的帳號和userID,核對我們輸入密碼是否正確。一切正確我們可以登錄到當前用戶shell.那麼,我們首先了解一下用戶帳號文件。
 
  1./etc/passwd我們使用more查看一下這個文件
 
  我們首先看第一行root這一行,一共有七項,每一項使用:分開,他們代表的意思如下:
 
  帳號名稱:帳號名稱由於對應用戶ID,這個是系統默認用戶root超級管理員,在同一個系統帳號名稱是唯一的,長度根據不同的Linux系統而定,一般是8位。
 
  密碼:由於系統中還有一個/etc/shadow文件用於存放加密後的口令,所以在這裡這一項是“x”來表示,如果用戶沒有設置口令,則該項為空。
 
  用戶ID:這個是系統內部用於來識別不同的用戶的,不同的用戶識別碼不同,其中用戶ID有以下幾種:
 
  0代表系統管理員,如果你想建立一個系統管理員的話,可以建立一個普通帳戶,然後將該賬戶的用戶ID改為0即可。
 
  1-500系統預留的ID,500以上是普通用戶使用。
 
  組ID:其實這個和用戶ID差不多,用來規范群組,他與/etc/group有關。
 
  描述信息:這個字段幾乎沒有什麼作用,只是用來解釋這個帳號的意義。
 
  用戶根目錄:就是用戶登錄系統的起始目錄,用戶登錄系統後將首先進入該目錄。root用戶默認的是/root,普通用戶的是/home/用戶名。
 
  用戶登錄shell:就是用戶登錄系統時使用的shell,關於shell我們會在以後專門的研究一下。
 
 
 2./etc/shadow
 
  在早期的unix操作系統中,用戶的帳號信息和口令信息都保存在passwd文件中,盡管系統已經對口令進行了加密,並且以密文的方式保存在passwd文件中,但是由於passwd文件對於系統中的所有用戶是可讀的,口令比較容易破解,存在較大的安全隱患。現在使用“shadow”文件保存密文的用戶口令,使用passwd文件保存用戶帳號其它信息。“shadow”文件只有管理員用戶才可以讀取其中的內容。由於這個文件可能被破解,所以一定不要將該文件內容洩露給他人,保證系統安全。
 
  同樣,我們還是分析第一行,一共有九項,分別說明一下:
 
  帳戶名稱:和passwd對應,和passwd的意思相同。
 
  密碼:這才是真正的密碼,並且已經加密過了,只能看到一些特殊符號。需要注意的是這些密碼很難破解,但是不等於不能。還有密碼欄的第一個字符為“*”表示這個用戶不用來登錄,如果那個用戶不想讓他登錄了,可以在他前面加個星。
 
  上次改動密碼的日期:這段記錄了改動密碼的最後日期,為什麼是13798呢?這是因為Linux計算日期的方法是以1970年1月1日作為1,1971年1月1日就是366,依次類推到我修改密碼的日期表示為13798了。
 
  密碼不可被改動的天數:由於害怕密碼被人盜取而危害到整個系統的安全,所以安排了這個字段,你必須在這個時間內重新修改密碼,否則這個帳號將暫時失效。上面的99999,表示密碼不需要重新輸入,最好設定一段時間修改密碼。確保系統安全。
 
  密碼變更期期限快到前的警告期:當帳號的密碼失效期限快到時,系統依據這個字段的設定發出警告,提醒用戶“再過n天您的密碼將過期,請盡快重新設定密碼。默認的是七天。
 
  帳號失效期:如果用戶過了警告期沒有重新輸入密碼,使得密碼失效,而該用戶在這個字段限定的時間內又沒有向管理員反映,讓帳號重新啟用,那麼這個帳號將暫時失效。
 
  帳號取消日期:這個日期跟第三個字段一樣,都是使用1970年以來的日期設定方法。這個字段表示:這個帳號在此字段規定的日期之後將無法再使用。這個字段通常用於收費服務系統中,可以規定一個日期讓該帳號不能再使用。
 
  保留:最後一個字段是保留的,看以後有沒有新功能加入。
 
  
3. /etc/group查看一下這個文件
 
  我們還是分析第一行,一共有四項,依次為:
 
  群組名稱:就是群組的名稱了。
 
  群組密碼:通常不需設定,因為我們很少使用群組登錄。不過這個密碼也被記錄在/etc/gshadow中了。
 
  群組ID:也就是組ID了。
 
  支持帳號的名稱:這個群組的所有帳號。如果你想讓用戶qiuri也屬於root這個群組,就在第一行最後加上“,qiuri”注意添加的時候沒有空格。
 
  
4. adduser添加用戶
 
  如果沒有特殊的要求,通常我們使用adduser 用戶名稱直接創建用戶帳號。例如我們創建qiuri帳戶:
 
  由於一般新創建的帳號都會在剛才我們說的三個文件的最後一行添加一行內容,我們驗證一下:
 
  我們使用這條命令是通過/etc/login.defs和/etc/default/useradd這兩個默認帳號設定文件來實現創建用戶的。
 
  這個文件中我們有必要了解一下,SKEL這個選項,用戶的根目錄內容是從/etc/skel這個目錄下復制過去的。在手動添加用戶的時候有用。查看一下這個目錄下的內容:
 
  這條命令還有好多的參數舉例幾個,供大家參考一下:
 
  adduser [-u uid][-g group][-d home][-s shell]
 
  -u:直接給出userID -g:直接給出GID
 
  -d:直接將根目錄建立在已存在目錄 -s:定義shell
 
  
5.passwd設置用戶密碼
 
  默認的情況下,在添加完用戶後並沒有設置用戶的密碼,因此建立的用戶帳號即使存在也不能登陸系統。需要使用passwd命令對用戶帳號設置密碼才可以用於登陸系統。這條命令分為管理員給用戶修改密碼和用戶自己登錄系統自己修改密碼。
 
  管理員root給用戶修改密碼,例如:創建用戶qiuri,然後設置密碼
 
  管理員給用戶設置密碼以命令passwd [用戶名]來設置密碼,在輸入密碼的過程中為了避免輸入錯誤,將連續輸入兩次。如果兩次輸入的密碼相同,表示輸入的密碼正確,同時將密碼以加密的方式保存到了shadow文件中。設置完以後我們可以使用用戶qiuri登錄。qiuri用戶自己修改一下密碼。
Copyright © Linux教程網 All Rights Reserved