認識/etc/passwd和/etc/shadow
這兩個文件能夠說是Linux系統中最重要的文件之一。若是沒有這兩個文件或者這兩個文件出了問題,則沒法正常登陸系統。linux
注:每建立一個用戶都會在這個文件裏面增長一行記錄。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
注:這個文件是專門用來控制用戶的密碼的。
[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日算起。它表示,帳號在這個日期前可使用,到期後帳號將做廢。
第九段做爲保留用的,沒有什麼意義。
[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的前三行。
輸入完命令,別回車,用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-,表明該文件的備份文件,若是刪除了用戶或該文件,用其恢復。
命令語法
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的前三行解釋
[root@localhost ~]# groupadd -g 6666 grpp2 [root@localhost ~]# tail -n1 /etc/group grpp2:x:6666:
[root@localhost ~]# groupdel grpp2 [root@localhost ~]# tail -n3 /etc/group user2:x:1002: grp1:x:1003: grpp1:x:1004:
從代碼中能夠看出,grpp2已經被刪除了。
注意:當咱們刪除用戶組的時候,前提是用戶組裏沒有用戶。
命令語法
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
[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相同。
[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
[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
[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
lrzsz是一款在linux裏可代替ftp上傳和下載的程序。
進程名稱
lrzsz
進程描述
在linux裏可代替ftp上傳和下載。
使用方法
centos服務器,可直接yum -y install lrzsz 程序會自動安裝好,而後如你要下載者sz [找到你要下載的文件] 若是你要上傳,者rz 瀏覽找到你本機要上傳的文件。須要注意的事這個命令沒法在putty界面使用哦!、