用户配置文件,密码配置文件及用户组合用户管理

一,用户配置文件和密码配置文件

认识/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上的文件,默认地址放到当前目录下。
相关文章
相关标签/搜索