用户和用户组管理

用户配置文件

Linux通过用户配置文件来查看和修改用户信息,从而建立合理的用户等级制度,规范服务器操作

四种用户配置文件

1.用户信息文件/etc/passwd

2.影子文件  /etc/shadow

3.组文件信息   /etc/group

4.组密码文件 /etc/gshadow

用户信息文件/etc/passwd

passwd文件中存放着每个用户的信息,每个用户信息由七个字段构成,以root为例,各字段的含义如下

root,用户名

x,密码标志,表示该用户设有密码,真正的密码存在影子文件中

0,UID,用户ID;0表示该用户为超级用户管理员,1~499表示系统用户(伪用户),500~65535表示普通用户

0,GID,用户的初始组ID,如果想将普通用户改为管理员,更改GID是没有用的,需要更改UID为0才能生效

  初始组和附加组

  初始组:指用户登录系统时所在的用户组,每个用户只有一个初始组,初始组一般就是组名与用户名相同用户组

  附加组:指用户可以加到其他的用户组,并拥有这些组的权限,一个用户可以有多个附加组

root,用户信息说明

/root,用户家目录,普通用户家目录在/home/用户名/

/bin/bash,命令解释程序shell;/bin/bash为标准shell;伪用户的shell为/sbin/nologin,是不允许登录的

影子文件/etc/shadow

影子文件中的信息更多一些,有九个字段,各字段的含义:

root,用户名

第二个字段,采用SHA-512加密后的真正密码,所以shadow文件的权限为000,只有系统管理员才能进入,如果该字段密码位是"!!"或"*",代表没有密码,不允许登录,伪用户的密码都是这样;如果管理员想禁止某一用户登录系统,只需在密码位前加"!";注意文件只读,没有写权限,修改文档内容后应该使用“wq!”强制保存退出

17251,密码最后一次修改的时间,格式为1970-01-01至今的天数

0,密码修改后,允许再次修改密码的时间间隔

99999,密码有效期

7,密码失效前7天发出警告

第七个字段,密码失效后的宽限天数,0表示立即失效,-1表示永不失效

第八个字段,账号失效时间,用时间戳表示,到了这个时间密码就会失效,优先级大于字段五

第九个字段,保留字段

时间戳换算

时间戳-->日期

date -d "1970-01-01 17251 days"

日期-->时间戳

echo $(($(date --date="2017/04/09" +%s)/86400+1))

组信息文件/etc/group

组信息文件信息中含有四个字段,个字段含义为

root,组名,每添加一个用户,会在此文件中添加组名与用户名相同的组,做为用户初始组

x,组密码标志

0,GID,组ID

第四个字段,组中的附加用户

组密码文件/etc/gshadow

1.用户家目录

普通用户,/home/用户名/,权限700

超级用户,/root/,权限550

2.用户邮箱  /var/spool/mail/用户名/

3.用户模块目录  /etc/skel

新添一个用户时,会在家目录生成模板目录下的文件

用户管理命令

1.useradd [选项] 用户名

  -g  指定用户的初始组,useradd -g user1 user2

  -G    指定用户的附加组,,useradd -G user1 user2

useradd命令实际就是在四个配置文件中新添了相应的内容,并且生成了家目录,用户邮箱,将/etc/skel下的文件拷贝到了用户家目录;useradd实现的功能可以通过手动操作以上七个文件实现

2.passwd [用户名]

管理员更改任何用户的密码,passwd后跟用户名,可以不遵守密码规范;

普通用户只能更改自己的密码,直接输入passwd,且必须遵守密码规范(复杂性、时效性、易记性)

3.userdel -r 用户名

  -r删除用户的同时删除家目录

删除用户也可以手动更改四个配置文件,删除相应家目录、用户邮箱实现

4.su [-/-c] 用户名

    -  选项只用"-",代表连带用户的环境变量一起替换

    

    如果不使用"-",即使切换了用户,系统关于用户的环境变量不会变化;

    

   -c  仅执行一次命令,不切换用户身份,例,su -root -c "useradd sanguo"

用户组管理命令

1.groupadd [-g] 组名  添加用户组

  -g  指定GID

2.groupmod  修改用户组信息

  -g  修改组ID

  -n  修改组名,groupmod -n testgroup group1,将group1改名为testgroup

3.groupdel 组名  删除用户组

如果用户组拥有初始用户,则该用户组无法删除

4.gpasswd [-ad] 组名

  -a 用户名  将用户加入组,gpasswd -a user1 group1

  -d 用户名  将用户从组中删除,gpasswd -d user1 group1

原文地址:https://www.cnblogs.com/qingyaxuan/p/6685708.html