查看完整版本: inux系統用戶以及用戶組管理
頁: [1]

lixuhua 發表於 2015-10-9 09:06 PM

inux系統用戶以及用戶組管理

【認識/etc/passwd和/etc/shadow】這兩個文件可以說是linux系統中最重要的文件之一。如果沒有這兩個文件或者這兩個文件出問題,則你是無法正常登錄linux系統的。/etc/passwd由’:’分割成7個字段,每個字段的具体含義是:1)用戶名(如第一行中的root就是用戶名),代表用戶賬號的字符串。用戶名字符可以是大小寫字母、數字、減號(不能出現在首位)、點以及下划線,其他字符不合法。雖然用戶名中可以出現點,但不建議使用,尤其是首位為點時,另外減號也不建議使用,因為容易造成混淆。2)存放的就是該賬號的口令,為什麼是’x’呢?早期的unix系統口令確實是存放在這里,但基于安全因素,后來就將其存放到/etc/shadow中了,在這里只用一個’x’代替。3)這個數字代表用戶標識號,也叫做uid。系統識別用戶身份就是通過這個數字來的,0就是root,也就是說你可以修改test用戶的uid為0,那麼系統會認為root和test為同一個賬戶。通常uid的取值范圍是0~65535,0是超級用戶(root)的標識號,1~499由系統保留,作為管理賬號,普通用戶的標識號從500開始,如果我們自定義建立一個普通用戶,你會看到該賬戶的標識號是大于或等于500的。4)表示組標識號,也叫做gid。這個字段對應著/etc/group 中的一條記錄,其實/etc/group和/etc/passwd基本上類似。5)注釋說明,該字段沒有實際意義,通常記錄該用戶的一些屬性,例如姓名、電話、地址等等。不過,當你使用finger的功能時就會顯示這些信息的(稍后做介紹)。6)用戶的家目錄,當用戶登錄時就處在這個目錄下。root的家目錄是/root,普通用戶的家目錄則為/home/username,這個字段是可以自定義的,比如你建立一個普通用戶test1,要想讓test1的家目錄在/data目錄下,只要修改/etc/passwd文件中test1那行中的該字段為/data即可。7)shell,用戶登錄后要啟動一個進程,用來將用戶下達的指令傳給內核,這就是shell。Linux的shell有很多種sh, csh, ksh, tcsh, bash等,而Redhat/CentOS的shell就是bash。查看/etc/passwd文件,該字段中除了/bin/bash外還有/sbin/nologin比較多,它表示不允許該賬號登錄。如果你想建立一個賬號不讓他登錄,那麼就可以把該字段改成/sbin/nologin,默認是/bin/bash。再來看看/etc/shadow這個文件,和/etc/passwd類似,用”:”分割成9個字段。1)用戶名,跟/etc/passwd對應。2)用戶密碼,這個才是該賬號的真正的密碼,不過這個密碼已經加密過了,但是有些黑客還是能夠解密的。所以為了安全,該文件屬性設置為600,只允許root讀寫。3)上次更改密碼的日期,這個數字是這樣計算得來的,距離1970年1月1日到上次更改密碼的日期,例如上次更改密碼的日期為2012年1月1日,則這個值就是365*(2012-1970)+1=15331。4)要過多少天才可以更改密碼,默認是0,即不限制。5)密碼多少天后到期。即在多少天內必須更改密碼,例如這里設置成30,則30天內必須更改一次密碼,否則將不能登錄系統,默認是99999,可以理解為永遠不需要改。6)密碼到期前的警告期限,若這個值設置成7,則表示當7天后密碼過期時,系統就發出警告告訴用戶,提醒用戶他的密碼將在7天后到期。7)賬號失效期限。你可以這樣理解,如果設置這個值為3,則表示:密碼已經到期,然而用戶並沒有在到期前修改密碼,那麼再過3天,則這個賬號就失效了,即鎖定了。8)賬號的生命周期,跟第三段一樣,是按距離1970年1月1日多少天算的。它表示的含義是,賬號在這個日期前可以使用,到期后賬號作廢。9)作為保留用的,沒有什麼意義。【新增/刪除用戶和用戶組】a. 新增一個組 groupadd [-g GID] groupname不加-g 則按照系統默認的gid創建組,跟用戶一樣,gid也是從500開始的-g選項可以自定義gidb. 刪除組 gropudel groupname沒有特殊選項。c. 增加用戶 useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]-u 自定義UID-g 使其屬于已經存在的某個GID-d 自定義用戶的家目錄-M 不建立家目錄-s 自定義shell你會發現,創建test11時,加上了-M選項后,在/etc/passwd文件中test11那行的第六字段依然有/home/test11,可是ls查看該目錄時,會提示該目錄不存在。-M選項的作用就是不創建用戶的家目錄。-d. 刪除用戶 userdel [-r] username-r 選項的作用是刪除用戶時,連同用戶的家目錄一起刪除。【chfn 更改用戶的finger (不常用)】前面內容中提到了findger,即在/etc/passwd文件中的第5個字段中所顯示的信息,那麼如何去設定這個信息呢?就是chfn這個命令了。修改完后,就會在/etc/passwd文件中的test的那一行第五個字段中看到相關信息了,默認是空的。【創建/修改一個用戶的密碼 “passwd ”】等創建完賬戶后,默認是沒有設置密碼的,雖然沒有密碼,但該賬戶同樣登錄不了系統。只有設置好密碼后方可登錄系統。為用戶創建密碼時,為了安全起見,請盡量設置復雜一些。你可以按照這樣的規則來設置密碼:a. 長度大于10個字符;b. 密碼中包含大小寫字母數字以及特殊字符(*&等);c. 不規則性(不要出現root, happy, love, linux, 123456, 111111等等單詞或者數字);d. 不要帶有自己名字、公司名字、自己電話、自己生日等。passwd 后面不跟用戶名則是更改當前用戶的密碼,當前用戶為root,所以此時修改的是root的密碼,后面跟test則修改的是test的密碼。【用戶身份切換】Linux系統中,有時候普通用戶有些事情是不能做的,除非是root用戶才能做到。這時就需要臨時切換到root身份來做事了。用test賬號登錄linux系統,然后使用su - 就可以切換成root身份,前提是知道root的密碼。你可以使用echo $LOGNAME來查看當前登錄的用戶名su 的語法為: su [-] username后面可以跟”-”也可以不跟,普通用戶su不加username時就是切換到root用戶,當然root用戶同樣可以su到普通用戶。加”-“后會連同用戶的環境變量一起切換過來。su test 后雖然切換到了test用戶,但是當前目錄還是切換前的/root目錄,然后當用su - test時切換用戶后則到了test的家目錄/home/test。當用root切換普通用戶時,是不需要輸入密碼的。這也体現了root用戶至高無上的權利。用su是可以切換用戶身份,如果每個普通用戶都能切換到root身份,如果某個用戶不小心泄漏了root的密碼,那豈不是系統非常的不安全?沒有錯,為了改進這個問題,產生了sudo這個命令。使用sudo執行一個root才能執行的命令是可以辦到的,但是需要輸入密碼,這個密碼並不是root的密碼而是用戶自己的密碼。默認只有root用戶能使用sudo命令,普通用戶想要使用sudo,是需要root預先設定的,即,使用visudo命令去編輯相關的配置文件/etc/sudoers。如果沒有visudo這個命令,請使用” yum install -y sudo”安裝。默認root能夠sudo是因為這個文件中有一行” root ALL=(ALL) ALL” 在該行下面加入” test ALL=(ALL) ALL”就可以讓test用戶擁有了sudo的權利。如果每增加一用戶就設置一行,這樣太麻煩了。所以你可以這樣設置。把這一行前面的”#”去掉,讓這一行生效。它的意思是,wheel這個組的所有用戶都擁有了sudo的權利。接下來就需要你把想讓有sudo權利的所有用戶加入到wheel這個組中即可。你不妨跟筆者試一下,非常有意思。...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>
頁: [1]