用户和用户组篇
1、概念
用户:使用操作系统的人
用户组:具用相同系统权限的一组用户
2、配置文件
1./etc/group :存储当前系统中所有的用户信息
格式:
组中用户名列表:当且仅当用户名只有一个且与组名相等时,可以省略。
linux系统中规定:
1)root用户组组编号一定为0;
2)组号1——499一般为系统的预留编号,留给安装在此系统中的软件和服务。
2./etc/gshadow:存储当前系统中用户组的密码信息
组密码:若为*或者空或者!,均为无密码。
组管理者:若为空,则表示组内所有用户都可以管理。(一般为空)
3./etc/passwd:存储当前系统中所有用户的信息
用户编号:root的用户编号一定是0.
4./etc/shadow:存储当前系统中所有用户的密码(密码一般被单向加密)
PS:早期的Linux中是把密码和配置信息放在一起的,后来发现group和passwd要经常使用拿来判断用户属于哪个组,故权限不能太苛刻,但密码又属于敏感信息,所以把密码和配置信息单独放开。
3、基本命令
1.组命令
添加组:groupadd 组名 或 groupadd -g 组编号 组名
修改组名:groupmod -n 新组名 原组名
修改组编号:groupmod -g 编号 组名
删除组:groupdel 组名
添加组密码:gpasswd 组名
取消组密码:gpasswd -r 组名(root下)
2.用户操作
添加用户:useradd -g 组名 用户名 或 useradd -d /home/xx(给用户指定的个人文件夹) 用户名(添加到主要组)
useradd -g 主要组 -G 附属组1,2,...... (同时添加附属组和主要组)
添加备注:usermod -c 备注 用户名
修改用户名:usermod -l 新名字 旧名字
修改个人文件夹:usermod -d /home/cls cls
删除用户:userdel 用户名 或 userdel -r(把个人文件夹也删掉) 用户名
禁止所有用户通过ssh连接到系统(su还是可以的):新建/etc/nologin(解除只要删掉就好了)
4、进阶命令
1.对用户的命令
锁定用户:passwd -l 用户名
解锁用户:passwd -u 用户名
清除用户密码,使得该用户可无密码登陆:passwd -d 用户名
2.对用户与组之间的关系的命令
若用户属于多个组,则属于一个主要组,多个附属组。该用户在默认条件下创建的文件属于主要组,若需要把文件创建到附属组,则需要切换到附属组的身份。
把用户添加到附属组:gpasswd -a 用户名 附属组名1,附属组名2, ....
把用户移出附属组:gpasswd -d 用户名 附属组名1,2,3.....
切换组:newgrp 组名(若有组密码,则此时要输入)
5、关于用户与用户组的其他命令
显示当前登陆用户名:whoami
显示指定用户信息:id 用户名
显示用户所在组:groups 用户名
设置用户资料(root下):chfn 用户名
显示用户详细资料:finger 用户名