认识/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界面使用哦!、