天天看點

linux指令之 使用者和群組

一、儲存使用者資訊的檔案

1 /etc/passwd

一共7項,都用:分隔

1

使用者名

2

密碼

真正的密文儲存在/etc/shadow中

3

UID

使用者id

4

GID

組id

5

賬戶資訊

這個賬戶有什麼樣的意義

6

家目錄

在這個目錄中,使用者擁有全部的權限

7

shell類型

/sbin/nologin 非登入使用者  

/bin/bash   一般使用者使用的shell

/bin/false 無法登入

2. 新增使用者

      useradd [-u UID] [-g GID] [-d HOME] [-mM]  [-s shell]  username

案例:

useradd –u  500 –g 500 –d /home/pwftp  -s /sbin/nologin  pwftp

建立了一個使用者id為500,組id為500的使用者,使用者名pwftp,主目錄/home/pwftp,

使用的/sbin/nologin這個shell是不可以登入的.

如果不想系統自動建立mysql使用者家目錄/home/mysql,則要使用-M參數

3. 删除使用者

      userdel 使用者名

userdel mysql

删掉mysql這個使用者.

加入mysql使用者組裡隻存在mysql這一個使用者的話,這個組也會被同時删掉

如果mysql登入狀态的,那麼得等它登出了再删除

[root @test /root]# userdel testing  <==隻有砍掉 /etc/passwd 與 /etc/shadow 的該賬号内容;

[root @test /root]# userdel -r testing<==連該賬号的 /home/testing 與 /var/spool/mail/testing 都砍掉!

這個指令下達的時候要小心了!通常我們要移除一個賬号的時候,你可以手動的将 /etc/passwd 與 /etc/shadow 裡頭的該賬号取消即可!一般而言,如果該賬号隻是『暫時不啟用』的話,那麼将 /etc/shadow 裡頭最後倒數一個字段設定為 0 就可以讓該賬号無法使用,但是所有跟該賬号相關的資料都會留下來!使用 userdel 的時機通常是『你真的确定不要讓該使用者在主機上面使用任何資料了!』

停用一個賬号:

#vi /etc/shadow

/pwftp  找到使用者所在行

shift+a  移動到本行的行尾并編輯狀态 做如下的修改:

pwftp:$6$fkOSovyP$FDrG1XFhNOvy.ZnsDhrbN7Jnj/Aw1rmN2T8UewW.dcS3nrKbbkRTl.JP4/fh/UFXZ.5Jq61WiLwLYQDssUpbv1:16367:0:99999:7::0:

再次使用pwftp使用者登入時,得到的提示如下圖:

linux指令之 使用者和群組

4. 修改使用者

      usermod -參數  參數值  使用者名

usermod –s /bin/bash  mysql

修改mysql使用者的shell為bash,這樣mysql也能登陸了

其實吧,如果要求改使用者的家目錄,shell,或者組資訊,還是直接修改/etc/passwd檔案來的簡單直接。

[root @test /root]# useradd testing  <==直接以預設的資料建立一個名為 testing 的賬号

[root @test /root]# useradd -u 720 -g 100 -M -s /bin/bash testing   <==以自己的設定建立賬号

這個指令影響/使用的檔案可多了呢,都有以下這些:

/etc/passwd

/etc/shadow

/etc/group

/etc/gshadow

/etc/skel

/etc/default/useradd

/etc/login.defs

5. 建立預設的賬号:

      建立賬号時,如果沒有特殊的限定,通常我們隻使用 『 useradd username 』就可以建立一個名為username的賬号了!

     不過你知道預設賬号的基本設定嗎?嘿嘿嘿嘿!!基本設定就在/etc/default/useradd 和/etc/login.defs 這兩個檔案中!

在 login.defs 裡頭有點像底下這樣:

MAIL_DIR        /var/spool/mail  <==郵件預設目錄擺放處

PASS_MAX_DAYS   99999           <==密碼需要變更的時間

PASS_MIN_DAYS   0            <==密碼多久需要變更

PASS_MIN_LEN    5            <==密碼的最小長度(這個可以改大一些吧!)

PASS_WARN_AGE   7            <==密碼快要失效之前幾天發警告訊息?

UID_MIN                   500    <==預設帳号最小起算的 UID 數目(最小為 500 )

UID_MAX                 60000    <==最大的 UID 限制

GID_MIN                   500    <==GID 限制

GID_MAX                 60000    <==GID 限制

CREATE_HOME     yes            <==是否建立家目錄,預設是要建立家目錄(若為 mail server 可以取消此項目)

幾乎可以設定的都在這裡設定了!是以需要了解一下這個檔案!另外,如果你是專門開啟 mail server 的,那麼由于使用者賬号不需要登入主機,

是以也就不需要給予家目錄,這個時候最後一項 GREATE_HOME 或者可以設定為 no !此外,當你以預設的資料建立賬号時,該賬号的 UID 将會取目前在

/etc/passwd 當中『最大的(其實是小于 60000)』那一個 UID + 1 即是預設帳号的 UID 啰!

而至于 useradd 内容則為:

GROUP=100      <==預設的使用者群組為 100 ,檢視一下 /etc/group 時,這個組名為 users 呢!

HOME=/home     <==預設使用者的家目錄建立的目錄

INACTIVE=-1    <==是否不啟動,設定為 -1 自然就是啟動啦!

EXPIRE=        <==是否需要設定『死亡』時間?如果你希望該使用者在期限到之後就不許登入,此項可以設定天數。

SHELL=/bin/bash <==預設的 Shell 為何?

SKEL=/etc/skel <==使用者家目錄的内容!

在這個項目中,最需要了解的就是 SKEL 啦!當你建立一個名為 testing 的賬号時,預設的家目錄會是『 /home/testing 』這個目錄,

而這個目錄的内容就是由 /etc/skel 所 copy 過去的!是以『當你想要讓使用者的預設家目錄内容更動時,可以直接将要更動的資料寫在 /etc/skel 當中!』

6. 以自己的條件建立賬号:

如果要以自己的條件建立賬号的時候,一般我都是喜歡手動的增加啦! 不然就是先以上面的那一個例子增加一個賬号之後,在去手動修改 /etc/passwd 等等的檔案!

二、儲存使用者密碼的檔案

1. /etc/shadow

賬戶名 上次密碼修改日期 密碼不可被更改的天數 密碼需要被變更的天數 密碼需要被變更前的警告期限 賬号失效期限 8 賬号取消日期 設為<1970到系統目前日期的數字時,表示賬号已經取消,則該不能使用。 9 保留

三、儲存群組資訊的檔案

1.  /etc/group

這個檔案可以讓你直接将賬号所要支援的群組加進來!例如你有一個賬号名稱為 myaccount ,你想要讓這個賬号可以支援 root 這個群組,則你可以直接在 /etc/group 裡面加入呢!很友善,不需要動用的指令呦!

root:x:0:root

bin:x:1:root,bin,daemon

daemon:x:2:root,bin,daemon

sys:x:3:root,bin,adm

adm:x:4:root,adm,daemon

組名

群組密碼

群組 ID (GID)

支援的賬号名稱

四、儲存群組密碼的檔案

1. /etc/gshadow

root:::root bin:::root,bin,daemon daemon:::root,bin,daemon sys:::root,bin,adm adm:::root,adm,daemon

五、增加使用者的一般步驟:

新增使用者的時候,如果該使用者所屬的群組不存在,則得(1)先新增群組; 然後(2)再新增使用者賬号。當然,如果要删除群組時,則必須要反過來,先删除使用者才能删除群組!這點請大家留意啰!

開始做,堅持做,重複做

繼續閱讀