码迷,mamicode.com
首页 > 其他好文 > 详细

文件互传,用户配置文件和密码配置文件,用户以及用户组管理

时间:2018-02-05 23:30:39      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:默认   not   var   UI   自定义   比较   脚本   用户名   等等   

与windows互传文件
如果我们要互传文件,先要安装一个工具,lrzsz。rz是从windiws中下载文件到linux,sz是从linux中上传文件到windows的。

linux只一个多用户的操作系统,因此我们要对每个用户账号的作用要了解,因为这涉及到安全问题。

首先我们先来了解和认识两个文件,/etc/passwd和/etc/shadow。
/etc/passwd。通常在Linux系统中,用户的关键信息被存放在系统的/etc/passwd文件中。如果要查看这个文件,我们要输入cat /etc、passwd。
[root@localhost ~]# cat /etc/passwd | head -3(| head -3这是一个管道命令)
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
从这里我们可以看出一个账户的信息,它被:分割成7段,每段都有不同的意义。
第一段:用户名
第二段:用户密码,在以前的unix系统中,这里确实是存放在这里,但基于安全因素,后来就将其存放到 ‘/etc/shadow’ 中了,在这里只用一个 ‘x’ 代替。
第三段:这是用户的标识,也叫uid。root的标识是0,前1~499号的标识被系统保留,普通用户的标识是从500开始的,如果我们自定义一个普通用户,那么你会看到他的标识号是大于或者等于500的。
第四段:这是用户组的标识,也叫gid,这个字段对应着etc/group中的一条记录,与/etc/passwd基本相似。
第五段: 注释说明,该字段没有实际意义,通常记录该用户的一些属性,例如姓名、电话、地址等等。不过,当你使用finger的功能时就会显示这些信息的.
第六段:用户的家目录。
第七段:shell, 用户登录后要启动一个进程,用来将用户下达的指令传给内核,这就是shell, 查看/etc/passwd文件,该字段中除了/bin/bash外还有/sbin/nologin比较多,它表示不允许该账号登录。如果你想建立一个账号不让他登录,那么就可以把该字段改成/sbin/nologin,默认是/bin/bash。

/etc/shadow。这是一个储存用户密码的文件,如果要查看,我们要输入cat /etc/shadow | head -3 

[root@localhost ~]# cat /etc/shadow | head -3
root:$6$/qUNx3Dm$oVq/XUaOftBgd4XxzCAAaahh3Za4.O.xJBjol1G0pX0.A0UQjEJFDkkh43F29WZUOMvJ75z/jGfE6bebpgQ1k/:17534:0:99999:7:::
bin::17110:0:99999:7:::
daemon:
:17110:0:99999:7:::
我们可以看出,它也是被:分割,一共有9个字段。
第一段:用户名
第二段:这才是真正的密码,经过特殊加密,所以很长。
第三段: 上次更改密码的日期,这个数字是这样计算得来的,距离1970年1月1日到上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是 ‘365 x (2012-1970) + (2012-1970)/4 + 1 = 15341’. 因为如果是闰年,则有366天
第四段:要经过多少天改密码,如果是0,则不用更改。
第五段: 密码多少天后到期。即在多少天内必须更改密码,例如这里设置成x,则x天内必须更改一次密码,否则将不能登录系统,默认是99999,可以理解为永远不需要改。
第六段: 密码到期前的警告期限,若这个值设置成x,则表示当x天后密码过期时,系统就发出警告告诉用户,提醒用户他的密码将在x天后到期。
第七段: 账号失效期限。你可以这样理解,如果设置这个值为x,则表示:密码已经到期,然而用户并没有在到期前修改密码,那么再过x天,则这个账号就失效了,即锁定了
第八段: 账号的生命周期,跟第三段一样,是按距离1970年1月1日多少天算的。它表示的含义是,账号在这个日期前可以使用,到期后账号作废
第九段: 作为保留用的,没有什么意义。

passwd是更改用户密码的文件,如果在root下,我们可以直接输入这个命令更改密码

[root@localhost ~]# passwd
更改用户 root 的密码 。
新的 密码:
如果想更改其他用户的密码,则要则要passwd后面加上用户名
[root@localhost ~]# passwd user1
更改用户 user1 的密码 。
新的 密码:
更改完密码我们可以发现在/etc/shadow下,user1这行中出现了一个很长的字符串,这就是我们新更改的密码
[root@localhost ~]# tail -n5 /etc/shadow
chrony:!!:17514::::::
user1:$6$0DixvaM8$3Q/d2IFN8jOvyma9By8UZPkRNVLaqDj.AQwOTFaRxiRZ3d.JDv7dHh7QR9fnlUpiQT8ALuQP.461OzckySSLo.:17548:0:99999:7:::
user2:!!:17547:0:99999:7:::
user8:!!:17547:0:99999:7:::
user4:!!:17548:0:99999:7:::
如果没有密码,则是两个!

[root@localhost ~]# head -n5 /etc/shadow
root:$6$/qUNx3Dm$oVq/XUaOftBgd4XxzCAAaahh3Za4.O.xJBjol1G0pX0.A0UQjEJFDkkh43F29WZUOMvJ75z/jGfE6bebpgQ1k/:17534:0:99999:7:::
bin::17110:0:99999:7:::
daemon:
:17110:0:99999:7:::
adm::17110:0:99999:7:::
lp:
:17110:0:99999:7:::
我们还发现,有的用户 的密码位是*号,这表示这个用户的密码是被锁定的,不能登录,他的密码是有问题的。

passwd -l这个命令是可以锁定用户的,usermod -L也可以锁定用户,如果想解锁,命令是passwd -u,usermod -U。

我们也可以给用户设定密码,passwd --stdin
比如我们现在要给user2设定密码
[root@localhost ~]# passwd --stdin user2
更改用户 user2 的密码 。
19860127
passwd:所有的身份验证令牌已经成功更新。
这时我们发现只要输入一次就可以,不用验证,而且是直接显示,这会在以后shall脚本中使用。比如,echo “111222”| passwd --stdin user2

这里讲一个echo的参数,-e这时一个换行参数。

mkpasswd这是用来生成密码的工具,首先我们来安装这个工具包
[root@localhost ~]# yum install -y expect
然后输入命令,就可以产生一个随机的密码
[root@localhost ~]# mkpasswd
|br34BMxo
我们也可以自定义它的长度和密码内的字符结构(包括特殊符号,数字等)
mkpasswd -l设置密码长度,mkpasswd -s设置特殊符号,两者可以一起用
[root@localhost ~]# mkpasswd -l 10 -s 4
H:7a‘,?4zJ
通常我们写脚本的时候会用到这个,比如我们要创建100个用户,生成100个密码,而且密码不能相同。然后存到一个文本文档中。就会用到这个命令。

    在搜索passwd和shadow时我们会发现这样一个现象

[root@localhost ~]# ls /etc/passwd
passwd passwd-
[root@localhost ~]# ls /etc/shadow
shadow shadow-
[root@localhost ~]# ls /etc/gshadow
gshadow gshadow-
它们的后面都有一个带-号的文件,这些带-号的文件是系统自动帮我们拷贝的文件,如果我们不小心删除,我们可以从这里拷贝恢复。他们也是有区别的,如果我们没来得及更新,那么我们新建的用户或者组就不会保存在这里了。

groupadd,这是增加组的命令。
[root@localhost ~]# groupadd grp1
[root@localhost ~]# tail -n1 /etc/group
grp1:x:1000:
这就是我们新增加的组,我们可以看到,这个新增的组的ID是1000,我们也可以给他自定义组ID,只要在后面加参数 -g
[root@localhost ~]# groupadd -g 1002 grp4
[root@localhost ~]# tail -n1 /etc/group
grp4:x:1002:
这样我们可以看出,新增的grp4的组ID就是1002。

既然我们能创建,那么我们就能删除。输入命令groupdel。
该命令没有特殊选项,但有一种情况不能删除组:
[root@localhost ~]# groupdel user1
groupdel: cannot remove the primary group of user ‘user1‘
这是因为user1组中包含user1账户,只有删除user1账户后才可以删除该组。

useradd,这是增加用户的命令。
[root@localhost ~]# useradd user1
[root@localhost ~] tail -n1 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
[root@localhost ~]# useradd user2
[root@localhost ~]# tail -n2 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash

我们也可以给他自定义uid和gid,在后面加参数-u和-g。
[root@localhost ~]# useradd -u 1008 -g 1002 user8
[root@localhost ~]# tail -n3 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
user8:x:1008:1002::/home/user8:/bin/bash
这样在gup4的组中就有user2和user8这两位用户了。

我们还可以指定自定义用户的家目录,和指定的shall,指定家目录的参数是-d,指定shall的参数是-s。
比如我们现在要新建一个用户user4,家目录设定为aming111,shall设定为/sbin/nologin
useradd -u 1006 -g 1002 -d /home/aming111 -s /sbin/nologin user4
然后我们查询一下
[root@localhost ~]# tail -n5 /etc/passwd
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
user8:x:1008:1002::/home/user8:/bin/bash
user4:x:1006:1002::/home/aming111:/sbin/nologin
这样我们可以看到新建的user4这个用户的家目录和shall都是我们指定的了。

如果我们不想在创建用户的时候创建家目录,我们可以加参数-M
现在我们新建一个用户user5
[root@localhost ~]# useradd -M user5
[root@localhost ~]# tail -n3 /etc/passwd
user8:x:1008:1002::/home/user8:/bin/bash
user4:x:1006:1002::/home/aming111:/sbin/nologin
user5:x:1009:1009::/home/user5:/bin/bash
然后我们查询一下
[root@localhost ~]# ls /home
aming aming111 lin user1 user2 user8
我们在建立了user5的用户,虽然离里面出现了home的字符段,但是我们在查询的时候却没有出现user5的家目录,所以,只要我们不想建立用户的家目录,就加一个参数-M。

我们不仅可以增加用户和组,也可以删除用户和组。只要把add改成del,就是userdel删除用户和groupdel删除用户组。
比如我们现在要删除user8
[root@localhost ~]# tail -n3 /etc/passwd
user8:x:1008:1002::/home/user8:/bin/bash
user4:x:1006:1002::/home/aming111:/sbin/nologin
user5:x:1009:1009::/home/user5:/bin/bash
[root@localhost ~]# userdel user8
[root@localhost ~]# tail -n3 /etc/passwd
user2:x:1002:1002::/home/user2:/bin/bash
user4:x:1006:1002::/home/aming111:/sbin/nologin
user5:x:1009:1009::/home/user5:/bin/bash
通过查询,user5已经被成功的删除了。但是不能删除用户的家目录,因为系统怕这个用户的文件误删除,所以留给了管理员,如果管理员觉得这个家目录没用,那就可以删除,我们也可以在删除用户的时候直接删除家目录,只要加参数-r,这就是删除用户的命令。

更改用户属性usermod,比如我们要改变一个用户的uid
usermod -u 111 username
我们也可以改变一个组名
usermod -g (组名或者gid) username
我们也可以指定他的家目录
usermod -d /home/XX username
也可以指定shall
usermod -s /sbin/nologin username
我们也可以指定他的扩展组
usermod -G

文件互传,用户配置文件和密码配置文件,用户以及用户组管理

标签:默认   not   var   UI   自定义   比较   脚本   用户名   等等   

原文地址:http://blog.51cto.com/13067688/2069194

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!