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

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

认识/etc/passwd和/etc/shadow
这两个文件可以说是Linux系统中最重要的文件之一。如果没有这两个文件或者这两个文件出了问题,则无法正常登录系统。

1., 解说用户配置文件/etc/passwd

注:每创建一个用户都会在这个文件里面增加一行记录。

[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段)。

  • 第一段为用户名(如第一行中的root就是用户名),它代表用户账号的字符串。用户名中的字符可以是大小写字母,数字,减号(不能出现在首位),点或下划线,其他字符不合法。虽然用户名中可以出现点,但不建议使用,尤其是首位。另外,减号不建议使用,容易混淆。

  • 第二段存放的是该账号的口令。这里为什么是x呢?早期的Unix系统口令确实存放在这里,但基于安全因素,后来存放在/etc/shadow中(下面会详细介绍/etc/shadow文件),这里用x代替。

  • 第三段为一个数字,这个数字代表用户标识列,也称为uid(它属于一个组,组id是第四段)。系统就是通过这个数字识别用户身份的。这里的0就是root,也就是说我们可以修改user1用户的uid为0,那么系统会认为root和test为同一个账户。uid的取值范围是0-65535(但实际上已经可以支持到4294967294),0代表超级用户(root)的标识列,Centos7的普通用户标识号从1000开始。

  • 第四段也是数字,表示组标识号,也称为gid。这个字段对应着/etc/group中的一条记录,其实/etc/group和/etc/passwd基本类似。

  • 第五段为注释说明没有实际的意义。通常记录该用户的一些属性,例如姓名,电话,地址等。我们可以使用chfn命令来更改这些信息。

  • 第六段是用户的家目录,当用户登陆时,就处在这个目录下。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。

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上的文件,默认地址放到当前目录下。

转载于:https://my.oschina.net/991124/blog/1558555

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值