1、adduser与useradd的区别linux
在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
因此在用法上二者没有区别。shell
在ubuntu系统上,useradd和adduser的用法差异较大,后续总结。如下操做不特别强调,均为Centos系统中操做。ubuntu
2、建立用户(默认设置)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 useraddbash
/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的信息ide
[root@localhost ~]# cat /etc/passwd |grep cluster cluster:x:1000:1000:cluster:/home/cluster:/bin/bash
第一个字段cluster:表示用户名为clusterui
第二个字段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文件中的一些默认设置的,之后总结。
3、建立用户[选项]
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
4、用户类别
管理员 UID 0
普通用户 UID 1-65535
系统用户 1-499
可登入用户 500+
如今linux系统UID为2的32次方。可支持的更多了。
管理员组
普通组
以用户的视角分类:
基本组: 显示在/etc/passwd中GID字段所表明的组为用户的基本组
额外组:又称为附加组,/etc/group
5、查看用户信息的命令
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
未完,待续