linux 增加用戶 useradd 用法小結及配置文件說明

    在Linux 系統中,所有的用戶和組像一個國家。如果國家要繁榮昌盛的話,需要治理得當,需要有主席或者總統,以及地方官員和老百姓組成。在linux 中如果你對安全需求比較苛刻,完全可以限制用戶的各種行爲,不同用戶的權限是不同的。   
    在linux中系統中,它並不認識帳號名稱。它認識的是我們的帳號ID,帳號ID保存在/etc/passwd文件中。我們在登錄linux主機時,在輸入完帳號和密碼時,linux會先查找/etc/passwd文件中是否有這個帳號,如果沒有則跳出,如果有的話,他會讀取該帳號的user ID和group ID同時該帳號的根目錄和shell也讀了出來。然後在去核對密碼錶,在/etc/shadow中找出我們剛剛輸入的帳號和userID,覈對我們輸入密碼是否正確。一切正確我們可以登錄到當前用戶shell。那麼,我們首先了解一下用戶帳號文件。
    用戶管理一般需要知道      /etc/passwd  /etc/shadow  /etc/group
    add by warden2010 20100104
    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用戶自己修改一下密碼。
    . 增加一個新用戶
    以下是操作一些具體的語法,可以通過man useradd 查看幫助命令
    在Linux系統中,只有root用戶才能夠創建一個新用戶,如下的命令將新建一個登錄名user1的用戶。
    # useradd user1
    但是,這個用戶還不能夠登錄,因爲還沒給它設置初始密碼,而沒有密碼的用戶是不能夠登錄系統的。在默認情況下,將會在/home目錄下新建一個與用戶名相同的用戶主目錄。如果需要另外指定用戶主目錄的話,那麼可以使用如下命令:
    # useradd -d /home/xf user1
    同時,該用戶登錄時將獲得一個Shell程序:/bin/bash,而假如你不想讓這個用戶登錄,也就可以指定該用戶的Shell程序爲:/bin/false,這樣該用戶即使登錄,也不能夠執行Linux下的命令:
    # useradd -s /bin/false user1
    在Linux中,新增一個用戶的同時會創建一個新組,這個組與該用戶同名,而這個用戶就是該組的成員。如果你想讓新的用戶歸屬於一個已經存在的組,則可以使用如下命令:
    # useradd -g user user1
    這樣該用戶就屬於user組的一員了。而如果只是想讓其再屬於一個組,那麼應該使用:
    # useradd -G user user1
    完成了這一操作後,你還應該使用passwd命令爲其設置一個初始密碼。
   
    2. 刪除一個用戶
    刪除用戶,只需使用一個簡單的命令“userdel 用戶名”即可。不過最好將它留在系統上的文件也刪除掉,你可以使用“userdel -r 用戶名”來實現這一目的。
   
    3. 修改用戶屬性
    在前面我們看到了在新建一個用戶的時候如何指定它的用戶主目錄,如何指定它的Shell,如何設置它所屬的組…等等。在Linux中提供了一個命令來實現:
    usermod -g組名 -G 組名 -d 用戶主目錄 -s 用戶Shell
    還有一種直接的方法,那就是修改/etc/passwd文件,在這個文件中每個用戶佔用一行,它的內容爲:
    用戶名:密碼:用戶ID:組ID:用戶全名:用戶主目錄:用戶Shell
    不過值得注意的是,密碼這一項通常是用一個*號代替的,你是看不到的。
   
    4. 增加一個組
    還記得Linux的文件可以爲同組的人、非同組的人設置不同的訪問權限嗎?我們可以根據自己的需要創建用戶組:
    groupadd 組名
   
    5. 刪除一個組
    同樣的,我們有時會需要刪除一個組,它的命令就是groupdel 組名。
   
    6. 修改組成員
    如果我們需要將一個用戶加入一個組,只需編輯/etc/group文件,將用戶名寫到組名的後面。例如將newuser用戶加入到softdevelop組,只需找到softdevelop這一行:
    softdevelop:x:506:user1,user2
    然後在後面加上newuser,形成:
    softdevelop:x:506:user1,user2,newuser
    另外,在Red Hat Linux中還提供一個圖形化的用戶管理工具:userconf,通過它可以更直接地進行用戶管理。
    文章出處:DIY部落(http://www.diybl.com/course/6_system/linux/Linuxjs/2008620/127098.html)
    此文是把兩個文檔進行合併得到的.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章