鍍金池/ 教程/ Linux/ linux 系統(tǒng)用戶以及用戶組管理
初步進入 linux 世界
Linux 系統(tǒng)的遠程登錄
配置 Tomcat
配置 samba 服務器
LNMP 環(huán)境搭建
配置 FTP 服務
linux 系統(tǒng)用戶以及用戶組管理
正則表達式
LAMP環(huán)境搭建
安裝 RPM 包或者安裝源碼包
NFS 服務配置
文檔的壓縮與打包
Linux 操作系統(tǒng)的安裝
配置 squid 服務
Linux 文件與目錄管理
Linux 磁盤管理
學會使用簡單的 MySQL 操作
關于 Linux 的歷史
學習 shell 腳本之前的基礎知識
圖形界面還是命令窗口
文本編輯工具 vim
shell 腳本
使用 Nagios 搭建監(jiān)控服務器
linux 系統(tǒng)日常管理

linux 系統(tǒng)用戶以及用戶組管理

關于這部分內容,筆者在日常的linux系統(tǒng)管理工作中用到的并不多,但這并不代表該內容不重要。畢竟linux系統(tǒng)是一個多用戶的系統(tǒng),每個賬號都干什么用,你必須了如指掌。因為這涉及到一個安全的問題。

認識/etc/passwd/etc/shadow】

這兩個文件可以說是linux系統(tǒng)中最重要的文件之一。如果沒有這兩個文件或者這兩個文件出問題,則你是無法正常登錄linux系統(tǒng)的。

http://wiki.jikexueyuan.com/project/linux/images/7_1.png.jpg" alt="7_1.png.jpg" />

/etc/passwd’:’分割成7個字段,每個字段的具體含義是:

1)用戶名(如第一行中的root就是用戶名),代表用戶賬號的字符串。用戶名字符可以是大小寫字母、數(shù)字減號(不能出現(xiàn)在首位)、點以及下劃線,其他字符不合法。雖然用戶名中可以出現(xiàn)點,但不建議使用,尤其是首位為點時,另外減號也不建議使用,因為容易造成混淆

2)存放的就是該賬號的口令,為什么是’x’呢?早期的unix系統(tǒng)口令確實是存放在這里,但基于安全因素,后來就將其存放到/etc/shadow中了,在這里只用一個’x’代替。

3)這個數(shù)字代表用戶標識號,也叫做uid。系統(tǒng)識別用戶身份就是通過這個數(shù)字來的,0就是root,也就是說你可以修改test用戶的uid0,那么系統(tǒng)會認為roottest為同一個賬戶通常uid的取值范圍是0~65535,0是超級用戶(root)的標識號,1~499由系統(tǒng)保留,作為管理賬號,普通用戶的標識號從500開始,如果我們自定義建立一個普通用戶,你會看到該賬戶的標識號是大于或等于500

4)表示組標識號,也叫做gid。這個字段對應著/etc/group 中的一條記錄,其實/etc/group/etc/passwd基本上類似。

5)注釋說明,該字段沒有實際意義,通常記錄該用戶的一些屬性,例如姓名、電話、地址等等不過,當你使用finger的功能時就會顯示這些信息的(稍后做介紹)。

6)用戶的家目錄,當用戶登錄時就處在這個目錄下。root的家目錄是/root,普通用戶的家目錄則為/home/username,這個字段是可以自定義的,比如你建立一個普通用戶test1,要想讓test1的家目錄在/data目錄下,只要修改/etc/passwd文件中test1那行中的該字段為/data即可。

7shell,用戶登錄后要啟動一個進程,用來將用戶下達的指令傳給內核,這就是shell。Linuxshell有很多種sh, csh, ksh, tcsh, bash等,而Redhat/CentOSshell就是bash。查看/etc/passwd文件,該字段中除了/bin/bash外還有/sbin/nologin比較多,它表示不允許該賬號登錄。如果你想建立一個賬號不讓他登錄,那么就可以把該字段改成/sbin/nologin,默認是/bin/bash。

http://wiki.jikexueyuan.com/project/linux/images/7_12.png.jpg" alt="7_12.png.jpg" />

再來看看/etc/shadow這個文件,和/etc/passwd類似,用”:”分割成9個字段。

1)用戶名,跟/etc/passwd對應。

2)用戶密碼,這個才是該賬號的真正的密碼,不過這個密碼已經(jīng)加密過了,但是有些黑客還是能夠解密的所以為了安全,該文件屬性設置為600,只允許root讀寫

3)上次更改密碼的日期,這個數(shù)字是這樣計算得來的,距離197011日到上次更改密碼的日期,例如上次更改密碼的日期為201211日,則這個值就是365*2012-1970+1=15331。

4)要過多少天才可以更改密碼,默認是0,即不限制

5)密碼多少天后到期。即在多少天內必須更改密碼,例如這里設置成30,則30天內必須更改一次密碼,否則將不能登錄系統(tǒng),默認是99999,可以理解為永遠不需要改。

6)密碼到期前的警告期限,若這個值設置成7,則表示當7天后密碼過期時,系統(tǒng)就發(fā)出警告告訴用戶,提醒用戶他的密碼將在7天后到期

7)賬號失效期限你可以這樣理解,如果設置這個值為3,則表示:密碼已經(jīng)到期,然而用戶并沒有在到期前修改密碼,那么再過3天,則這個賬號就失效了,即鎖定了。

8)賬號的生命周期,跟第三段一樣,是按距離197011日多少天算的它表示的含義是,賬號在這個日期前可以使用,到期后賬號作廢。

9)作為保留用的,沒有什么意義。

新增/刪除用戶和用戶組

a. 新增一個組 groupadd [-g GID] groupname

http://wiki.jikexueyuan.com/project/linux/images/7_13.png.jpg" alt="7_13.png.jpg" />

不加-g 則按照系統(tǒng)默認的gid創(chuàng)建組,跟用戶一樣,gid也是從500開始的

http://wiki.jikexueyuan.com/project/linux/images/7_14.png.jpg" alt="7_14.png.jpg" />

-g選項可以自定義gid

b. 刪除組 gropudel groupname

http://wiki.jikexueyuan.com/project/linux/images/7_15.png.jpg" alt="7_15.png.jpg" />

沒有特殊選項。

c. 增加用戶 useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]

-u 自定義UID

-g 使其屬于已經(jīng)存在的某個GID

-d 自定義用戶的家目錄

-M 不建立家目錄

-s 自定義shell

http://wiki.jikexueyuan.com/project/linux/images/7_16.png.jpg" alt="7_16.png.jpg" />

你會發(fā)現(xiàn),創(chuàng)建test11時,加上了-M選項后,在/etc/passwd文件中test11那行的第六字段依然有/home/test11,可是ls查看該目錄時,會提示該目錄不存在。

http://wiki.jikexueyuan.com/project/linux/images/7_17.png.jpg" alt="7_17.png.jpg" />

-M選項的作用就是不創(chuàng)建用戶的家目錄。

-d. 刪除用戶 userdel [-r] username

http://wiki.jikexueyuan.com/project/linux/images/7_18.png.jpg" alt="7_18.png.jpg" />

-r 選項的作用是刪除用戶時,連同用戶的家目錄一起刪除

【chfn 更改用戶的finger (不常用)

前面內容中提到了findger,即在/etc/passwd文件中的第5個字段中所顯示的信息,那么如何去設定這個信息呢?

http://wiki.jikexueyuan.com/project/linux/images/7_19.png.jpg" alt="7_19.png.jpg" />

就是chfn這個命令了修改完后,就會在/etc/passwd文件中的test的那一行第五個字段中看到相關信息了,默認是空的。

創(chuàng)建/修改一個用戶的密碼 “passwd [username]”】

等創(chuàng)建完賬戶后,默認是沒有設置密碼的,雖然沒有密碼,但該賬戶同樣登錄不了系統(tǒng)。只有設置好密碼后方可登錄系統(tǒng)。

為用戶創(chuàng)建密碼時,為了安全起見,請盡量設置復雜一些。你可以按照這樣的規(guī)則來設置密碼:a. 長度大于10個字符;b. 密碼中包含大小寫字母數(shù)字以及特殊字符(*&等);c. 不規(guī)則性(不要出現(xiàn)root, happy, love, linux, 123456, 111111等等單詞或者數(shù)字);d. 不要帶有自己名字、公司名字、自己電話自己生日等。

http://wiki.jikexueyuan.com/project/linux/images/7_20.png.jpg" alt="7_20.png.jpg" />

passwd 后面不跟用戶名則是更改當前用戶的密碼,當前用戶為root,所以此時修改的是root的密碼,后面跟test則修改的是test的密碼。

用戶身份切換

Linux系統(tǒng)中,有時候普通用戶有些事情是不能做的,除非是root用戶才能做到。這時就需要臨時切換到root身份來做事了

http://wiki.jikexueyuan.com/project/linux/images/7_21.png.jpg" alt="7_21.png.jpg" />

test賬號登錄linux系統(tǒng),然后使用su - 就可以切換成root身份,前提是知道root的密碼。

http://wiki.jikexueyuan.com/project/linux/images/7_29.png.jpg" alt="7_29.png.jpg" />

你可以使用echo $LOGNAME來查看當前登錄的用戶名

http://wiki.jikexueyuan.com/project/linux/images/7_30.png.jpg" alt="7_30.png.jpg" />

su 的語法為: su [-] username

后面可以跟”-”也可以不跟,普通用戶su不加username時就是切換到root用戶,當然root用戶同樣可以su到普通用戶

http://wiki.jikexueyuan.com/project/linux/images/7_31.png.jpg" alt="7_31.png.jpg" />

”-“后會連同用戶的環(huán)境變量一起切換過來。su test 后雖然切換到了test用戶,但是當前目錄還是切換前的/root目錄,然后當用su - test時切換用戶后則到了test的家目錄/home/test。當用root切換普通用戶時,是不需要輸入密碼的這也體現(xiàn)了root用戶至高無上的權利。

su是可以切換用戶身份,如果每個普通用戶都能切換到root身份,如果某個用戶不小心泄漏了root的密碼,那豈不是系統(tǒng)非常的不安全?沒有錯,為了改進這個問題,產生了sudo這個命令。使用sudo執(zhí)行一個root才能執(zhí)行的命令是可以辦到的,但是需要輸入密碼,這個密碼并不是root的密碼而是用戶自己的密碼。默認只有root用戶能使用sudo命令,普通用戶想要使用sudo,是需要root預先設定的,即,使用visudo命令去編輯相關的配置文件/etc/sudoers。如果沒有visudo這個命令,請使用” yum install -y sudo”安裝。

http://wiki.jikexueyuan.com/project/linux/images/7_32.png.jpg" alt="7_32.png.jpg" />

默認root能夠sudo是因為這個文件中有一行” root ALL=(ALL) ALL” 在該行下面加入” test ALL=(ALL) ALL”就可以讓test用戶擁有了sudo的權利。如果每增加一用戶就設置一行,這樣太麻煩了所以你可以這樣設置。

http://wiki.jikexueyuan.com/project/linux/images/7_33.png.jpg" alt="7_33.png.jpg" />

把這一行前面的”#”去掉,讓這一行生效。它的意思是,wheel這個組的所有用戶都擁有了sudo的權利。接下來就需要你把想讓有sudo權利的所有用戶加入到wheel這個組中即可

http://wiki.jikexueyuan.com/project/linux/images/7_34.png.jpg" alt="7_34.png.jpg" />