用戶配置文件,密碼配置文件及用戶組合用戶管理

一,用戶配置文件和密碼配置文件

認識/etc/passwd和/etc/shadow
這兩個文件能夠說是Linux系統中最重要的文件之一。若是沒有這兩個文件或者這兩個文件出了問題,則沒法正常登陸系統。linux

1., 解說用戶配置文件/etc/passwd

注:每建立一個用戶都會在這個文件裏面增長一行記錄。shell

[root[@localhost](https://my.oschina.net/u/570656) ~]# cat /etc/passwd   
root:x:0:0:root:/root:/bin/bash    
.......//上面代碼是前一行,下面代碼是最後兩行(我本身建立的用戶),中間這省略的部分是當咱們安裝完系統以後自動存在的用戶。   
user1:x:1000:1000::/home/user1:/bin/bash   
user2:x:1001:1002::/home/user2:/bin/bash

代碼說明: 每行記錄表明一個用戶。每一個用戶分爲7個字段(用:分割爲7段)。windows

  • 第一段爲用戶名(如第一行中的root就是用戶名),它表明用戶帳號的字符串。用戶名中的字符能夠是大小寫字母,數字,減號(不能出如今首位),點或下劃線,其餘字符不合法。雖然用戶名中能夠出現點,但不建議使用,尤爲是首位。另外,減號不建議使用,容易混淆。centos

  • 第二段存放的是該帳號的口令。這裏爲何是x呢?早期的Unix系統口令確實存放在這裏,但基於安全因素,後來存放在/etc/shadow中(下面會詳細介紹/etc/shadow文件),這裏用x代替。安全

  • 第三段爲一個數字,這個數字表明用戶標識列,也稱爲uid(它屬於一個組,組id是第四段)。系統就是經過這個數字識別用戶身份的。這裏的0就是root,也就是說咱們能夠修改user1用戶的uid爲0,那麼系統會認爲root和test爲同一個帳戶。uid的取值範圍是0-65535(但實際上已經能夠支持到4294967294),0表明超級用戶(root)的標識列,Centos7的普通用戶標識號從1000開始。bash

  • 第四段也是數字,表示組標識號,也稱爲gid。這個字段對應着/etc/group中的一條記錄,其實/etc/group和/etc/passwd基本相似。服務器

  • 第五段爲註釋說明沒有實際的意義。一般記錄該用戶的一些屬性,例如姓名,電話,地址等。咱們可使用chfn命令來更改這些信息。ui

  • 第六段是用戶的家目錄,當用戶登錄時,就處在這個目錄下。root的家目錄是/root,普通用戶的家目錄是/home/username。用戶家目錄是能夠自定義的。好比,建議一個普通用戶test1,要想讓test1的家目錄在/data目錄下,只要將/etc/passwd文件中對應該用戶那行中的本字段修改成/data便可。加密

  • 第七段爲用戶的shell。用登陸後,要啓動一個進程,用來將用戶下達的指令傳給內核,這就是shell。Linux的shell有sh,sch,ksh,tcsh,bash等多種,而RedHat/CentOS的shell就是bash。查看/etc/passwd文件,該字段中除了/bin/bash,還有不少/sbin/nologin,默認是/bin/bash。.net

2.,解說密碼配置文件/etc/shadow

注:這個文件是專門用來控制用戶的密碼的。

[root[@localhost](https://my.oschina.net/u/570656) ~]# cat /etc/shadow |head -n 3   //head -n3 表示前3行數據,|表示管道符,它的做用是把前面的命令的輸出在輸入給後面的命令。        
root:$6$o5XXMECZgVxLG.lh$fQueq1w3ZSgWXQU0kDpjcHYNz6kNOc9ZgZAc3lyouDA1wUM32q9OGkgktV.GmHqQZwxqC27Radb6Ab042In2k.::0:99999:7:::    
bin:*:17110:0:99999:7:::    
daemon:*:17110:0:99999:7:::

代碼說明:每行記錄表明一個用戶。每一個用戶分爲9個字段(用:分割爲9段)。

  • 第一段爲用戶名,與/etc/passwd對應。

  • 第二段爲用戶密碼,是該帳號的真正密碼。這個密碼已經加密,爲了防止黑客解密。因此,將該文件屬性設置爲000,但root帳戶是能夠訪問或更改的。使用命令ls -l查看該文件的權限,示例命令以下: [root@localhost ~]# ls -l /etc/shadow ----------. 1 root root 693 10月 25 23:23 /etc/shadow

  • 第三段爲上次更改密碼的日期,這個數字以1970年1月1日和上次更改密碼的日期爲基準計算而來的。例如,上次更改密碼的日期爲2012年1月1日,則這個值就是 365*(2012-1970)+(2012-1970)/4+1=15341。若是是閏年,則有366天。

  • 第四段爲要過多少天才能夠更改密碼,默認是0,即不受限制。

  • 第五段爲密碼多少天后到期,即在多少天內必須更改密碼,例如,這裏設置爲30,則30天內必須更改一次密碼;不然,將不能登陸系統。默認是99999,能夠理解爲永久不更改密碼。

  • 第六段爲密碼到期前的警告期限。若這個值設置成7,則表示當7天后密碼過時時,系統就發出警告,提醒用戶他的密碼將在7天后到期。

  • 第七段爲帳號失效期限。若是這個值設置成3,則表示密碼以及過時,然而用戶並無在到期前修改密碼,那麼再過3天,這個帳號便失效,即鎖。

  • 第八段爲帳號的生命週期,跟第三段同樣,這個週期是按距離1970年1月1日算起。它表示,帳號在這個日期前可使用,到期後帳號將做廢。

  • 第九段做爲保留用的,沒有什麼意義。

二,用戶組管理

1. 用戶組文件/etc/group

[root[@localhost](https://my.oschina.net/u/570656) ~]# tail -n3 /etc/group  //查看/etc/group下最後三行的數據   
testgroup:x:1001:   
user2:x:1002:    
grp1:x:1003:

說明: 輸出的結果與/etc/passwd的前三行相同。請參照前一張的博文/etc/passwd的前三行。

2. 用戶備份說明

輸入完命令,別回車,用Tab補全,會顯示如下效果

[root[@localhost](https://my.oschina.net/u/570656) ~]# ls /etc/shadow  //密碼配置文件   
shadow   shadow-              
[root@localhost ~]# ls /etc/passwd  //用戶配置文件   
passwd   passwd-     
[root@localhost ~]# ls /etc/group  //用戶組文件   
group   group-         
[root@localhost ~]# ls /etc/gshadow  //用戶組密碼配置文件       
gshadow   gshadow-

說明:這裏的group-,passwd-,表明該文件的備份文件,若是刪除了用戶或該文件,用其恢復。

3. 新增和刪除用戶組

命令語法
groupadd [-g GID] groupname

命令描述
新增用戶組

命令選項
-g 自定義gid。若是不加-g選項,則按照系統默認的gid建立組。跟uid同樣,gid也是從1000開始的。

命令示例

  • 建立用戶組
[root@localhost ~]# groupadd grpp1  //建立用戶組   
[root@localhost ~]# tail -n1 /etc/group  //查看用戶組文件(group)的最後一行。(默認狀況下每建立用戶組,會在group文件的最後一行添加一行數據)。   
grpp1:x:1004: //參照/etc/passwd的前三行解釋
  • 在建立用戶組的同時,自定義gid(gid必須在1000以上,1000之內的是系統用戶組)
[root@localhost ~]# groupadd -g 6666 grpp2   
[root@localhost ~]# tail -n1 /etc/group   
grpp2:x:6666:
  • 刪除用戶組(groupdel)
[root@localhost ~]# groupdel grpp2   
[root@localhost ~]# tail -n3 /etc/group   
user2:x:1002:   
grp1:x:1003:   
grpp1:x:1004:

從代碼中能夠看出,grpp2已經被刪除了。

注意:當咱們刪除用戶組的時候,前提是用戶組裏沒有用戶。

三.用戶管理

1. 增長用戶

命令語法
useradd [-u UID] [-g GID] [-d HOME] [-M] [-s]

命令描述
添加用戶

命令選項
-u 表示自定義UID。
-g 表示使新增用戶屬於已經存在的某個組,後面能夠跟組id,也能夠跟組名。
-d 表示自定義用戶的家目錄
-M 表示不建議家目錄。
-s 表示自定義shell。

命令示例

  • 建立用戶
[root@localhost ~]# tail -n2 /etc/passwd   
user2:x:1001:1002::/home/user2:/bin/bash   
dd1:x:1002:1004::/home/dd1:/bin/bash
  • 建立用戶的同時自定義uid,自定義用戶組(grp1)
[root@localhost ~]# tail -n 3 /etc/group   
user2:x:1002:   
grp1:x:1003:   
dd1:x:1004:   
[root@localhost ~]# useradd -u 1005 -g grp1 user4  //-u 1005 指定uid爲1005,-g grp1 指定us   er4用戶屬於grp1用戶組,user4 用戶   
[root@localhost ~]# tail -n3 /etc/passwd   
user2:x:1001:1002::/home/user2:/bin/bash   
dd1:x:1002:1004::/home/dd1:/bin/bash   
user4:x:1005:1003::/home/user4:/bin/bash  //用戶user4和grp1用戶組的gid相同。
  • 添加用戶的同時,指定uid(-u),指定用戶組(-g),指定家目錄(-d),指定shell(-s)。
[root@localhost ~]# ls /home   
dd1  user1  user2  user4   
[root@localhost ~]# useradd -u 1010 -g grp1 -d /home/dd1 -s /sbin/nologin user5  //建立user5   的uid爲1010,用戶組爲grp1,家目錄爲/home/dd1,shell爲sbin/nlogin   
[root@localhost ~]# tail -n3 /etc/passwd   
dd1:x:1002:1004::/home/dd1:/bin/bash    
user4:x:1005:1003::/home/user4:/bin/bash   
user5:x:1010:1003::/home/dd1:/sbin/nologin  // /sbin/nologin 這個shell意思是不讓這用戶登陸。
  • 建立用戶的同時,不創建用戶的家目錄
[root@localhost ~]# useradd -M user11   
[root@localhost ~]# tail -n3 /etc/passwd   
user4:x:1005:1003::/home/user4:/bin/bash   
user5:x:1010:1003::/home/dd1:/sbin/nologin   
user11:x:1011:1011::/home/user11:/bin/bash  //能夠看出家目錄爲/home/user11,這個家目錄只是沒有建立   
[root@localhost ~]# ls /home/   
dd1  user1  user2  user4  //能夠看出沒有user11
  • 當咱們建立一個用戶組並指定gid爲1010的時候,那麼當咱們建立用戶的時候用戶的用戶的uid會自增。
[root@localhost ~]# groupadd -g 1010 grp10   
[root@localhost ~]# useradd -g grp10 user12    
[root@localhost ~]# useradd user13   
[root@localhost ~]# tail -n5 /etc/passwd   
user4:x:1005:1003::/home/user4:/bin/bash    
user5:x:1010:1003::/home/dd1:/sbin/nologin   
user11:x:1011:1011::/home/user11:/bin/bash   
user12:x:1012:1010::/home/user12:/bin/bash   
user13:x:1013:1013::/home/user13:/bin/bash

2.刪除用戶

  • 刪除用戶。當咱們刪除用戶的時候,默認不會刪除用戶的家目錄
[root@localhost ~]# userdel user13    
[root@localhost ~]# tail -n5 /etc/passwd    
dd1:x:1002:1004::/home/dd1:/bin/bash    
user4:x:1005:1003::/home/user4:/bin/bash    
user5:x:1010:1003::/home/dd1:/sbin/nologin     
user11:x:1011:1011::/home/user11:/bin/bash    
user12:x:1012:1010::/home/user12:/bin/bash    
[root@localhost ~]# ls /home    
dd1  user1  user12  user13  user14  user2  user4

代碼說明:能夠看出當咱們刪除user13的時候,/etc/passwd的user13的數據被刪除了,可是它的家目錄user13默認沒有刪除,須要本身刪除user13的家目錄。

  • 刪除用戶的同時刪除用戶的家目錄
[root@localhost ~]# userdel -r user12  //使用-r選項   
[root@localhost ~]# tail -n5 /etc/passwd    
user2:x:1001:1002::/home/user2:/bin/bash    
dd1:x:1002:1004::/home/dd1:/bin/bash    
user4:x:1005:1003::/home/user4:/bin/bash    
user5:x:1010:1003::/home/dd1:/sbin/nologin    
user11:x:1011:1011::/home/user11:/bin/bash     
[root@localhost ~]# ls /home     
dd1  user1  user14  user2  user4

四,Linux和windows互傳文件

lrzsz是一款在linux裏可代替ftp上傳和下載的程序。

進程名稱
lrzsz

進程描述
在linux裏可代替ftp上傳和下載。

使用方法
centos服務器,可直接yum -y install lrzsz 程序會自動安裝好,而後如你要下載者sz [找到你要下載的文件] 若是你要上傳,者rz 瀏覽找到你本機要上傳的文件。須要注意的事這個命令沒法在putty界面使用哦!、

  • 把Linux的文件傳到Windows下:
  1. #sz 文件名 (而後回車)
  2. 會彈出一個對話框,選擇文件地址,而後肯定。
  • 把Windows的文件傳到Linux下:
  1. #rz 文件名 (而後回車)
  2. 會彈出一個對話框,選擇文件地址,而後肯定。 注意: 從Windows傳到Linux上的文件,默認地址放到當前目錄下。
相關文章
相關標籤/搜索