Linux常用命令学习8---(用户和用户组管理)
1.用户和用户组
用户和用户组概念
用户:使用操作系统的人(Linux支持多个用户在同一时间登陆同一个操作系统)
用户组:具有相同权限的一组用户(Linux系统中可以存在多个用户组)
相关的配置文件
/etc/group:储存当前系统中所有用户组信息
Group: x : 123 : abx,def,xyz
组名称: 组密码占位符: 组编号 : 组中用户列表
1.在linux中,root用户组的编号一定是0
2.组号1~499是系统预留的组编号,一般是预留给安装在这个操作系统中的软件或服务的,比如在服务器上安装了MySQL数据库,那么就会自动的带用户组的列表中创建一个叫做mysql的用户组,并且在1~499中拿一个编号来用,越早安装分配的组号越小
3.用户手动创建的用户组的组号是从500开始的
/etc/gshadow:存储当前系统中用户组的密码信息
Group: * : : abx,def,xyz
组名称: 组密码 : 组管理者: 组中用户列表
/etc/passwd:存储当前系统中所有用户的信息
user : x : 123 : 456 : xxxxx : /home/user : /bin/bash
用户名 : 密码占位符 :用户编号 : 用户组编号: 用户注释信息: 用户主目录 : shell类型
root的用户编号一定是0
/etc/shadow:存储用户密码的文件(一般密码是被一种单向加密方法加密的,所以看到的不是原始的密码)
user : vf;/Zushs.. : : : : : :
用户名 : 密码 : : : : : :
用户组管理的命令
groupadd groupname :创建新的用户组名
groupmod -n newname oldname :将用户组名由oldname改为newname
groupmod -g 668 groupname :将groupname组编号改为 668
groupadd -g 888 groupname :创建用户组groupname,并且设置组编号为 888
groupdel groupname :删除用户组 groupname
在删除用户组之前应该首先删除用户组中的用户,否则用户的配置文件中的关于用户组的信息就和真实情况不符合了,这些用户就会变成“黑户”,在后续的使用中可能就会受到权限的影响
gpasswd groupname :更改groupname用户组的组密码
用户管理的命令
useradd -g groupname username :创建新用户username,并且该用户放到用户组groupname中
useradd -d /home/test username :在创建用户username时,显式指定他的个人文件夹为/home/test,若不显式指定,会默认使用/home/username文件夹
这个时候没有指定用户的用户组,系统就会默认创建一个和新用户名相同的用户组,并将该用户放到该用户组下
usermod -c 备注内容 username :为用户username修改备注信息
usermod -l newname oldname :将oldname用户改名为 newname
usermod -g groupname username :将username用户切换到 groupname用户组
userdel username :删除username用户,但是这样并不会删除他的个人文件夹和其中的文件
userdel -r username :删除username用户,并且删除他的个人文件夹
假如某一天维护系统,不想让某些用户登陆
在/etc/目录下创建文件nologin(空文件即可,不需要内容),就可以实现除了user之外的用户都不能等陆系统
锁定和解锁账户
passwd -l username :锁定用户username,防止用户删除自己的文件
passwd -u username :解锁username用户
passwd -d username :清除username帐号,是这个用户可以无密码登陆
主要组和附属组
一个用户可以同时属于多个用户组(其中只有一个是这个用户的主要组,其他的都是这个用户的附属组)
相关的知识和命令目前几乎用不到,所以暂时不进行深入的学习
gpasswd -a username newgroup1,newgroup2 :为username账户添加到附属组newgroup1和newgroup2
区分于usermod -g groupname username :这个命令修改的是用户的主要组,而不是附属组
gpasswd -d username newgroup1,newgroup2 :为username账户删除附属组newgroup1和newgroup2
useradd -g group -G newgroup1, newgroup username :在创建用户username的时候为用户添加主要组group,并添加附属组groupname1和groupname2
切换用户
su username :从当前用户切换到username用户(如果没有username,就相当于切换到root用户)
从普通用户切换到其他用户时需要用户密码;但是从root切换到任何用户都不需要密码
id username命令
显示指定用户信息,包括用户编号、用户名
主要组编号及名称,附属组列表
groups username命令
显示username用户所在的所有组
chfn username命令
设置用户资料,依次输入用户资料(生日、性别……资料)
finger username命令
显示用户详细资料(和chfn命令对应)