用戶管理

首先介紹一下基礎:

用戶、組、權限。安全上下文,保證每個用戶運行的權限規則。在Linux中,哪個用戶發出命令(或者開始某個進程),則該進程的權限和該用戶一樣。用戶的權限用三種:rwx,爲了方便管理,分別用三位二進制與之對應,-表示沒有,例如rwx,三位二進制標識爲111,r--爲100,那麼對應換成十進制,則r對應爲4,w爲2,x爲1,如rwx就可以用4+2+1 = 7來表示。在Linux中,系統會自動創建一些用戶(ID<500),比如超級用戶root,ID爲零,不能修改,其他用戶在1-499之間。用戶創建的用戶ID>499;在Linux中,分爲用戶和組,用戶在系統中是唯一的,計算機用UID來標識(計算機會在文件/etc/passwd中查找用戶),當人我們用用戶名在標識。而用戶組(/etc/group)可以包括多個用戶,一個用戶也可以屬於多個組。Linux管理用戶和組都會管理其密碼,在/etc/shadow,和/etc/gshadow中(影子口令)。下面就開始介紹用戶管理的流程和常用命令;

1.添加用戶(需要root纔能有權限):useradd     用戶名

創建用戶後,刪除。在默認情況下是不刪除家目錄。該命令有返回值,0表示創建成功,其他的表示創建失敗,具體man 來查看說明。在lLinux中,如果創建用戶沒有給其制定一個組,則系統會默認創建一個和用戶名一樣的組。創建用戶過程:切換到root,然後useradd  用戶名,此時還不能用,必須設置用戶密碼才能用,用passwd 用戶名來設置密碼。用finger 用戶名來查看用戶信息。

su root  #切換到root權限
useradd user_name 
passwd user_name #修改用戶密碼
finger user_name #查看用戶信息。
cat /etc/passwd |more #查看passwd文件中用戶添加的信息
在創建用戶命令的過程中,系統完成了幾個工作,其中之一就是向passwd文件添加基本的信息。即上面例子最後一條命令可以查看這些信息。這些信息以“:”分格,比如我的電腦查看其中一條用戶信息爲:

first_user : x : 1001 : 1001 :附加組 : /home/first_user:/bin/bash
第一個是用戶名,第二個x表示密碼,用於passwd對所有用戶可讀,所以這裏不顯示(具體是放在/etc/shadow中,稱爲影子口令),1001:1001表示用戶UID和GID,最後是用戶價目錄和默認的shell類型。這些都可以在useradd創建是通過選項來設置,或者創建完成後通過其他命令修改設置。那麼/etc/shadow是什麼格式?請看如下格式:

用戶名 : 加密後的用戶密碼 :最後一次修改口令的天數(從1970.1.1開始算) :兩次修改密碼最短時間間隔 :最長間隔:密碼失效天數:等
first_user : dhawi13rieh : 16652 : 0 : 9999 : 7 : : :
如果密碼前有“!”標識該用戶被鎖定,可以手動修改/etc/shadow,或者用命令usermod -L 用戶名。從上面可以看出,有何多參數我們在創建用戶時並沒用指定,系統卻有一個默認參數,這個默認設定就在文件/etc/default/useradd文件中(系統用戶的某些參數在/etc/login.defs中)。裏面有創建用戶時默認指定的家目錄,UID,GID的範圍等。

添加用戶的過程完全可以手動完成爲,流程:在/etc/passwd中添加信息,然後在/etc/shadow文件中添加密碼信息(此時加密的密碼位空缺),然後用passwd添加密碼,然後建立組(用命令時系統會自動創建,手動則需要手動創建)編輯 /etc/group,然後修改組密碼/etc/gshadow中修改,然後用mkdir創建家目錄,最後還要拷貝用戶所需要的文件,並修改文件的屬組屬主,這樣才完成。

修改用戶屬性usermod 選項  參數 用戶名

其中常用選項有: -u:UID; -g: GID, -l:該登錄名, -L:鎖定賬戶; -U:解鎖;-G:追加到附加組。還有其他密碼時間的設定等。

chsh:change shell ,修改用戶的默認shell
chfn:change finger,修改用戶註釋信息(電話、郵箱等)
passwd 用戶名:修改密碼(沒有密碼不能登錄)
pwch:檢查用戶帳號的完整性
userdel 選項 用戶名 :刪除用戶(默認不刪除用戶的家目錄,可以在配置文件中修改默認設定)
組管理:

groupadd,groupmod,groupdel,gpasswd

修改文件的權限,屬主屬組

chown :修改文件的屬主,常用格式:chown 屬主 file_name,如果是目錄,可以遞歸修改
chgrp :修改文件的屬組,用法同上
chmod :修改文件的權限
用戶家目錄中有一系列隱藏文件,.hash_history(上次關機的命令歷史) .bash_logout(用戶退出系統執行的腳本,可做修改) .bash_profile(用戶最重要的一些信息,比如環境變量等)。查看環境變量:echo $PATH;

超級用戶root,UID,GID都爲零,超級用戶的家目錄不再/home下,而是在/root下。超級用戶有最高的權限,儘量不要用超級用戶登錄。

特殊權限SUID,SGID:如果文件設置了SUID,則任何用戶訪問該文件時都具有文件屬主的權限,SGID類似。那麼普通用戶就能修改一些文件(比如普通用戶不能修改自己的密碼,因爲無法修改passwd,此時就需要設置特殊權限),格式如下:

chmod u+s file_name:添加SUID權限
chmod u-s file_name:取消SUID權限
chmod g+s file_name:
chmod g-s file_name:









發佈了60 篇原創文章 · 獲贊 26 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章