有关用户和用户组的一些文件:
① /etc/group
存储当前系统中所有用户组信息,格式为:
组名称:组密码占位符:组编号:组中用户名列表
当组中只有一个用户,且用户名和组名相同时,最后一条可以省略(即组中用户名列表)
root的组编号为0
组号1-499是系统为安装在操作系统中的软件或服务预留的组编号
通过比较组号大小可以推算软件或服务的安装大概时间
用户手动创建的用户组编号是从500开始
组密码占位符用x表示
② /ect/gshadow
存储当前系统中用户组的密码信息,组密码在主要组和附属组切换的时候有用,格式为:
组名称:组密码:组管理者:组中用户名列表
如果组密码为*或者! 则没有密码
组管理者一般为空,表示组内所有用户都可以管理这个用户组
③ /etc/passwd
存储当前系统中所有用户的信息,格式为:
用户名:密码占位符:用户编号:用户组编号:用户注释信息:用户主目录:shell类型
shell类型一般为/bin/shell
root的用户编号为0
④ /etc/shadow
存储当前系统中所有用户的密码信息,格式为:
用户名:密码(被单项加密):用户创建时间、用户信息上一次被修改时间......
组相关命令:
groupadd 组名 #创建组,组编号由系统指派
groupadd 组名 -g 组编号 #创建组,并指定组编号
groupmod 组名 -n 新组名 #改组名
groupmod 组名 -g 组编号 #改组编号
groupdel 组名 #删除用户组(一般要先删除用户,再删除组,否则用户会变成“黑户”)
用户相关命令:
useradd 用户名 #创建用户,系统会自动添加一个和用户名同名的组分配给用户
useradd 用户名 -g 组 #创建用户,并添加到组(主要组)
useradd 用户名 -g 主要组 -G 附属组1,附属组2,...... #创建用户的同时指定主要组和附属组
usermod 用户名 -g 组 #更改用户至新组(主要组)
useradd 用户名 -d /home/xxx #创建用户,指定个人文件夹
usermod 用户名 -c 注释信息 #更改用户注释信息
usermod 用户名 -l 新用户名 #改用户名
usermod 用户名 -d /home/xxx #修改个人文件夹路径,若路径不存在,将自动创建
userdel 用户名 #删除用户(加入-r参数可以同时删除个人文件夹)
passwd -l 用户名 #解锁账户
passwd -u 用户名 #锁定账户,被锁定用户无法修改密码,退出后用户无法再次登陆
passwd -d 用户名 #删除密码
su 用户名 #切换用户,不指定用户名则切换root
禁止普通账户登陆服务器的方法:
创建/etc/nologin即可,文件内容无关紧要。
主要组与附属组的概念:
用户可以同时属于多个组(一个主要组,多个附属组),默认状态下用户创建的文件属于主要组
命令:
gpasswd 组 -a 用户 #向组中添加用户,这个组属于用户的附属组,可以用逗号来连接多个用户组,以实现为用户同时添加多个附属组
用户执行newgrp boss #实现组与组之间的切换
gpasswd 组 -d 用户 #从组中删除用户
gpasswd 组 #设置组密码
其他命令:
id 用户名 #显示格式: 用户编号(用户名) 主要组编号(组名) 附属组编号(组名)
不加参数则默认显示当前用户信息
groups 用户名 #显示用户所在的一切组,不加参数则默认显示当前用户信息
chfn 用户名 #系统会采用交互方式为用户设置详细资料,不加参数则默认设置当前用户信息
finger 用户名 #显示用户详细资料