一、adduser与useradd的区别
在Centos系统中,adduser只是useradd的一个连接形式,两者使用形式相同,在Centos系统中使用命令man adduser,进入的帮助手册为useradd。
[root@localhost ~]# ls -la /sbin/adduser lrwxrwxrwx. 1 root root 7 11月 7 19:20 /sbin/adduser -> useradd
所以在用法上两者没有区别。
在ubuntu系统上,useradd和adduser的用法差别较大,后续总结。以下操作不特别强调,均为Centos系统中操作。
二、创建用户(默认设置)
useradd UserName 创建用户,/etc/passwd中保存用户信息,/etc/shadow 文件中保存加密的密码信息
[root@localhost ~]# useradd dayun #创建用户名为dayun的用户 [root@localhost ~]# ls /home/ #默认创建在/home下创建了名为dayun的家目录 cluster dayun zhang [root@localhost ~]# tail -1 /etc/passwd #用户信息保存在/etc/passwd 文件中 dayun:x:1002:1002::/home/dayun:/bin/bash [root@localhost ~]# tail -1 /etc/shadow #第二个字段中的!!,表示该用户被锁定。 dayun:!!:17177:0:99999:7::: #由于此时没有设定密码 #另外用户组相关的文件:/etc/group, /etc/gshdow,增加与用户名同名的用户组信息
与useradd创建用户相关的文件,通过man useradd
/etc/passwd User account information. /etc/shadow Secure user account information. /etc/group Group account information. /etc/gshadow Secure group account information. /etc/default/useradd Default values for account creation. /etc/skel/ Directory containing default files. /etc/login.defs Shadow password suite configuration.
/etc/passwd 文件中的格式
每条记录由六个冒号分割成的7个字段组成,看一下我的系统上用户名为cluster的信息
[root@localhost ~]# cat /etc/passwd |grep cluster cluster:x:1000:1000:cluster:/home/cluster:/bin/bash
第一个字段cluster:表示用户名为cluster
第二个字段x:表示密码占位符,密码信息保存在/etc/shadow 文件中
第三个字段1000:表示UID,用户ID,若不手动指定,默认从上一个用户的UID自动+1
第四个字段1000:表示GID,基本组ID,若不手动指定,默认从上一个用户的GID自动+1
第五个字段cluster:表示备注信息(comment),比如用户的电话,邮箱等信息,这里cluster用户没 有添加其他信息
第六个字段/home/cluster:表示这个用户的家目录
第七个字段/bin/bash: 表示这个用户的默认shell
/etc/shadow 文件格式
[root@localhost ~]# tail -1 /etc/shadow dayun:!!:17178:0:99999:7::: [root@localhost ~]# cat /etc/shadow |grep cluster cluster:$6$1P/OQypq$VhuzyGZRsjuSQkRcUslKArUn6iBBQ7QgQS6YHNdD.SuVwMzRkRlujKdUQ29A8g74LfKxVB 1S.JUIHxgTvjK.N/:17178:12:40:7:::
/etc/shadow文件中,以8个“;”分割,共九个字段。
账号名称,密码是要跟账号对应的,不然.....
这个字段的才是真正的密码,跟上边passwd中的第二个字段x对应,而且还是经过加密的密码,如果不加密,能看到这个文件就能知道其他账号的密码,那样搞个破坏太容易了,这个加密算法,什么DES,MD5,SHA128等等好多,得再开一篇了,就不展开说了。新建的账号dayun中是两个"!!"表示还没有设置密码,账号被锁定,不能登入。
最近更改密码的日期,17178是时间戳,距离1970年1月1日有17178天,(换算一下,应该是2017/01/12,就是把17178换算成秒,然后网上搜时间戳转换)
密码不可被改动的天数(和第3个字段相比较),如果是12,意思就是根据第三个字段可知,我最近一次修改密码是2017/01/12,根据第3,4,两个字段,2017/01/12修改密码的这一天开始算(为起点),12天之内不能再修改密码了,数了数手指头,到2017/01/24才能修改密码。
密码需要重新更改的天数(与第3个字段相比)为安全考虑,密码需要经常更换,这个字段就是强制你更换密码的,该字段为99999,两百多年,表示没有强制设置更换密码的期限。如果这个字段值为40,日期为(17189+40)*24*3600时间格式转换日期为2017/3/4即:2017/01/24到2017/3/4之间可以修改密码
密码需要更改期限前的警告天数(与第5个字段比较),例子中为7,表示距离2017/3/4还有7天是发出警告,告诉用户密码快要到期了,及时修改密码。
密码过期后的账号宽限天数(与第5个字段相比)
账号失效日期,不管过期还是不过期,到这个时间后,
保留
/etc/group 文件格式
[root@localhost ~]# tail -2 /etc/group dayun:x:1001:xiaoliu xiaoliu:x:1002:
第一个字段:组名
第二个字段:组密码占位符,存放位置/etc/gshadow文件中
第三个字段:GID,即用户组ID
第四个字段:以该组为附加组的用户,多个用户时,用逗号隔开。
/etc/gshadow 文件格式
(组也需要密码,临时切换组的时候,需要组密码,但是现在应用较少)
[root@localhost ~]# tail -2 /etc/gshadow dayun:!::xiaoliu xiaoliu:!::
第一个字段:用户组名
第二个字段:密码,!表示没有密码
第三个字段:用户组管理员的账号
第五个字段:该用户组的所属账号
/etc/default/useradd
创建用户时(例如:useradd dayun)设置默认创建信息的文件,来看看这个配置文件。
[root@localhost ~]# cat /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
GROUP=100 注:指的是初始用户组使用的GID,但是在centos系统中不生效。centos中默认用户组和账户名相同,UID等于GID。不必深究
HOME=/home 注:用户的家目录在/home/目录下创建
INACTIVE=-1 注:密码失效日,在/etc/shadow文件中的第七列,-1代表密码永远不会失效,30,30天后失效
EXPIRE= 注:账号失效日,shadow中第八列。
SHELL=/bin/bash 注:默认shell
SKEL=/etc/skel 注:家目录下的文件,默认从/etc/skel/目录下复制
CREATE_MAIL_SPOOL=yes 注:是否创建邮件缓冲池,若yes,则在/var/mail/目录下创建邮件缓冲池
/etc/skel/,新创建的主目录下的隐藏文件是从/etc/skel/目录下复制过来的。skeleton的简写(骨骼,框架)是用户骨架搭建的有个目录。这些隐藏文件保存用户登入系统时,默认的环境变量。
[root@localhost home]# ls -a dayun/ . .. .bash_logout .bash_profile .bashrc .mozilla [root@localhost home]# ls -a /etc/skel/ . .. .bash_logout .bash_profile .bashrc .mozilla
/etc/login.defs
主要定义/etc/shadow文件中的一些默认设置的,以后总结。
三、创建用户[选项]
useradd
-u 注: 指定用户的UID,UID唯一,不能重复
-g 注: 指定GID,即指定用户的基本组,但是GID要事先存在
-G 注: 指定用户的额外组的GID,但是这个GID必须存在。
-d 注: 指定创建家目录的路径。这个目录不能事先存在。如果存在会报错。
-c 注: 备注信息
-s 注: 指定默认shell
-m 注: 创建用户时,强制创建家目录
-M 注: 创建用户时,不创建家目录
-D 注: 为useradd命令创建新的默认值
-r 注: 创建一个系统账户。目的是为了后台进程的安全。
系统的用户的特性:
UID:一般为1-499
不给用户创建家目录,默认shell为/sbin/nologin
groupadd
-g 注: 创建组并为其指定GID
四、用户类别
管理员 UID 0
普通用户 UID 1-65535
系统用户 1-499
可登入用户 500+
现在linux系统UID为2的32次方。可支持的更多了。
管理员组
普通组
以用户的视角分类:
基本组: 显示在/etc/passwd中GID字段所代表的组为用户的基本组
额外组:又称为附加组,/etc/group
五、查看用户信息的命令
id UserName 查看用户的UID,GID,
[root@localhost ~]# id xiaoliu uid=1002(xiaoliu) gid=1002(xiaoliu) groups=1002(xiaoliu),1001(dayun) #第一个字段为UID,第二个字段为基本组ID,带三个字段为该用户所属的所有组
echo $SHELL 查看当前系统上的默认shell
查看当前系统的可用shell,文件/etc/shells 中所列的shell,称为当前系统上安全的shell列表。用其他shell,很可能拒绝登入系统。
[root@localhost ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh
未完,待续
转载于:https://blog.51cto.com/xiaoliuer/1891687