The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

              在Linux 系統(tǒng)中,所有的用戶和組像一個國家。如果國家要繁榮昌盛的話,需要治理得當(dāng),需要有主席或者總統(tǒng),以及地方官員和老百姓組成。在linux 中如果你對安全需求比較苛刻,完全可以限制用戶的各種行為,不同用戶的權(quán)限是不同的。    
              在linux中系統(tǒng)中,它并不認(rèn)識帳號名稱。它認(rèn)識的是我們的帳號ID,帳號ID保存在/etc/passwd文件中。我們在登錄linux主機(jī)時,在輸入完帳號和密碼時,linux會先查找/etc/passwd文件中是否有這個帳號,如果沒有則跳出,如果有的話,他會讀取該帳號的user ID和group ID同時該帳號的根目錄和shell也讀了出來。然后在去核對密碼表,在/etc/shadow中找出我們剛剛輸入的帳號和userID,核對我們輸入密碼是否正確。一切正確我們可以登錄到當(dāng)前用戶shell。那么,我們首先了解一下用戶帳號文件。
              用戶管理一般需要知道      /etc/passwd  /etc/shadow  /etc/group 
              add by warden2010 20100104
              1./etc/passwd我們使用more查看一下這個文件
              我們首先看第一行root這一行,一共有七項,每一項使用:分開,他們代表的意思如下:
              帳號名稱:帳號名稱由于對應(yīng)用戶ID,這個是系統(tǒng)默認(rèn)用戶root超級管理員,在同一個系統(tǒng)帳號名稱是唯一的,長度根據(jù)不同的linux系統(tǒng)而定,一般是8位。
              密碼:由于系統(tǒng)中還有一個/etc/shadow文件用于存放加密后的口令,所以在這里這一項是“x”來表示,如果用戶沒有設(shè)置口令,則該項為空。
              用戶ID:這個是系統(tǒng)內(nèi)部用于來識別不同的用戶的,不同的用戶識別碼不同,其中用戶ID有以下幾種:
              0代表系統(tǒng)管理員,如果你想建立一個系統(tǒng)管理員的話,可以建立一個普通帳戶,然后將該賬戶的用戶ID改為0即可。
              1-500系統(tǒng)預(yù)留的ID,500以上是普通用戶使用。
              組ID:其實這個和用戶ID差不多,用來規(guī)范群組,他與/etc/group有關(guān)。

              描述信息:這個字段幾乎沒有什么作用,只是用來解釋這個帳號的意義。

              用戶根目錄:就是用戶登錄系統(tǒng)的起始目錄,用戶登錄系統(tǒng)后將首先進(jìn)入該目錄。root用戶默認(rèn)的是/root,普通用戶的是/home/用戶名。

              用戶登錄shell:就是用戶登錄系統(tǒng)時使用的shell,關(guān)于shell我們會在以后專門的研究一下。

              2./etc/shadow

              在早期的unix操作系統(tǒng)中,用戶的帳號信息和口令信息都保存在passwd文件中,盡管系統(tǒng)已經(jīng)對口令進(jìn)行了加密,并且以密文的方式保存在passwd文件中,但是由于passwd文件對于系統(tǒng)中的所有用戶是可讀的,口令比較容易破解,存在較大的安全隱患。現(xiàn)在使用“shadow”文件保存密文的用戶口令,使用passwd文件保存用戶帳號其它信息。“shadow”文件只有管理員用戶才可以讀取其中的內(nèi)容。由于這個文件可能被破解,所以一定不要將該文件內(nèi)容泄露給他人,保證系統(tǒng)安全。

              同樣,我們還是分析第一行,一共有九項,分別說明一下:

              帳戶名稱:和passwd對應(yīng),和passwd的意思相同。

              密碼:這才是真正的密碼,并且已經(jīng)加密過了,只能看到一些特殊符號。需要注意的是這些密碼很難破解,但是不等于不能。還有密碼欄的第一個字符為“*”表示這個用戶不用來登錄,如果那個用戶不想讓他登錄了,可以在他前面加個星。

              上次改動密碼的日期:這段記錄了改動密碼的最后日期,為什么是13798呢?這是因為linux計算日期的方法是以1970年1月1日作為1,1971年1月1日就是366,依次類推到我修改密碼的日期表示為13798了。

              密碼不可被改動的天數(shù):由于害怕密碼被人盜取而危害到整個系統(tǒng)的安全,所以安排了這個字段,你必須在這個時間內(nèi)重新修改密碼,否則這個帳號將暫時失效。上面的99999,表示密碼不需要重新輸入,最好設(shè)定一段時間修改密碼。確保系統(tǒng)安全。

              密碼變更期期限快到前的警告期:當(dāng)帳號的密碼失效期限快到時,系統(tǒng)依據(jù)這個字段的設(shè)定發(fā)出警告,提醒用戶“再過n天您的密碼將過期,請盡快重新設(shè)定密碼。默認(rèn)的是七天。

              帳號失效期:如果用戶過了警告期沒有重新輸入密碼,使得密碼失效,而該用戶在這個字段限定的時間內(nèi)又沒有向管理員反映,讓帳號重新啟用,那么這個帳號將暫時失效。

              帳號取消日期:這個日期跟第三個字段一樣,都是使用1970年以來的日期設(shè)定方法。這個字段表示:這個帳號在此字段規(guī)定的日期之后將無法再使用。這個字段通常用于收費服務(wù)系統(tǒng)中,可以規(guī)定一個日期讓該帳號不能再使用。

              保留:最后一個字段是保留的,看以后有沒有新功能加入。

              3. /etc/group查看一下這個文件

              我們還是分析第一行,一共有四項,依次為:

              群組名稱:就是群組的名稱了。

              群組密碼:通常不需設(shè)定,因為我們很少使用群組登錄。不過這個密碼也被記錄在/etc/gshadow中了。

              群組ID:也就是組ID了。

              支持帳號的名稱:這個群組的所有帳號。如果你想讓用戶qiuri也屬于root這個群組,就在第一行最后加上“,qiuri”注意添加的時候沒有空格。

              4. adduser添加用戶

              如果沒有特殊的要求,通常我們使用adduser 用戶名稱直接創(chuàng)建用戶帳號。例如我們創(chuàng)建qiuri帳戶:

              由于一般新創(chuàng)建的帳號都會在剛才我們說的三個文件的最后一行添加一行內(nèi)容,我們驗證一下:

              我們使用這條命令是通過/etc/login.defs和/etc/default/useradd這兩個默認(rèn)帳號設(shè)定文件來實現(xiàn)創(chuàng)建用戶的。

              這個文件中我們有必要了解一下,SKEL這個選項,用戶的根目錄內(nèi)容是從/etc/skel這個目錄下復(fù)制過去的。在手動添加用戶的時候有用。查看一下這個目錄下的內(nèi)容:

              這條命令還有好多的參數(shù)舉例幾個,供大家參考一下:

              adduser [-u uid][-g group][-d home][-s shell]

              -u:直接給出userID -g:直接給出GID

              -d:直接將根目錄建立在已存在目錄 -s:定義shell

              5.passwd設(shè)置用戶密碼
              默認(rèn)的情況下,在添加完用戶后并沒有設(shè)置用戶的密碼,因此建立的用戶帳號即使存在也不能登陸系統(tǒng)。需要使用passwd命令對用戶帳號設(shè)置密碼才可以用于登陸系統(tǒng)。這條命令分為管理員給用戶修改密碼和用戶自己登錄系統(tǒng)自己修改密碼。

              管理員root給用戶修改密碼,例如:創(chuàng)建用戶qiuri,然后設(shè)置密碼

              管理員給用戶設(shè)置密碼以命令passwd [用戶名]來設(shè)置密碼,在輸入密碼的過程中為了避免輸入錯誤,將連續(xù)輸入兩次。如果兩次輸入的密碼相同,表示輸入的密碼正確,同時將密碼以加密的方式保存到了shadow文件中。設(shè)置完以后我們可以使用用戶qiuri登錄。qiuri用戶自己修改一下密碼。
              . 增加一個新用戶 
              以下是操作一些具體的語法,可以通過man useradd 查看幫助命令
              在Linux系統(tǒng)中,只有root用戶才能夠創(chuàng)建一個新用戶,如下的命令將新建一個登錄名user1的用戶。 
              # useradd user1 
              但是,這個用戶還不能夠登錄,因為還沒給它設(shè)置初始密碼,而沒有密碼的用戶是不能夠登錄系統(tǒng)的。在默認(rèn)情況下,將會在/home目錄下新建一個與用戶名相同的用戶主目錄。如果需要另外指定用戶主目錄的話,那么可以使用如下命令: 
              # useradd -d /home/xf user1 
              同時,該用戶登錄時將獲得一個Shell程序:/bin/bash,而假如你不想讓這個用戶登錄,也就可以指定該用戶的Shell程序為:/bin/false,這樣該用戶即使登錄,也不能夠執(zhí)行Linux下的命令: 
              # useradd -s /bin/false user1 
              在Linux中,新增一個用戶的同時會創(chuàng)建一個新組,這個組與該用戶同名,而這個用戶就是該組的成員。如果你想讓新的用戶歸屬于一個已經(jīng)存在的組,則可以使用如下命令: 
              # useradd -g user user1 
              這樣該用戶就屬于user組的一員了。而如果只是想讓其再屬于一個組,那么應(yīng)該使用: 
              # useradd -G user user1 
              完成了這一操作后,你還應(yīng)該使用passwd命令為其設(shè)置一個初始密碼。 
              
              2. 刪除一個用戶 
              刪除用戶,只需使用一個簡單的命令“userdel 用戶名”即可。不過最好將它留在系統(tǒng)上的文件也刪除掉,你可以使用“userdel -r 用戶名”來實現(xiàn)這一目的。 
              
              3. 修改用戶屬性 
              在前面我們看到了在新建一個用戶的時候如何指定它的用戶主目錄,如何指定它的Shell,如何設(shè)置它所屬的組…等等。在Linux中提供了一個命令來實現(xiàn): 
              usermod -g組名 -G 組名 -d 用戶主目錄 -s 用戶Shell 
              還有一種直接的方法,那就是修改/etc/passwd文件,在這個文件中每個用戶占用一行,它的內(nèi)容為: 
              用戶名:密碼:用戶ID:組ID:用戶全名:用戶主目錄:用戶Shell 
              不過值得注意的是,密碼這一項通常是用一個*號代替的,你是看不到的。 
              
              4. 增加一個組 
              還記得Linux的文件可以為同組的人、非同組的人設(shè)置不同的訪問權(quán)限嗎?我們可以根據(jù)自己的需要創(chuàng)建用戶組: 
              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,通過它可以更直接地進(jìn)行用戶管理。

          posted on 2013-06-15 22:55 Eric_jiang 閱讀(236) 評論(0)  編輯  收藏 所屬分類: Linux
          主站蜘蛛池模板: 霸州市| 三台县| 青田县| 福海县| 云阳县| 濮阳县| 高阳县| 商南县| 启东市| 福鼎市| 凭祥市| 广元市| 镇康县| 蒙自县| 安岳县| 墨玉县| 海原县| 年辖:市辖区| 贡觉县| 城口县| 滕州市| 金华市| 鸡泽县| 和硕县| 蕲春县| 长子县| 岳池县| 六安市| 扎囊县| 绥棱县| 金塔县| 博爱县| 南宫市| 长葛市| 华亭县| 佳木斯市| 贵州省| 个旧市| 张北县| 滕州市| 泰安市|