Java工程师日常研发工作中会使用到的Linux命令系列第二篇,今天我们来练习一些常用的用户和组管理的命令吧。
注:本系列文章所有操作都是基于RedHat系列的Centos 7。所以开始学习前,请大家先安装Centos 7。
1. 用户管理
1.1 创建用户
命令格式:
useradd [选项] 用户名
常用选项:
-b 指定该用户的根路径,默认为/home
-d 指定该用户的家目录,默认为/home/加上用户名,比如jack用户,就是/home/jack
-u 指定用户的uid,如果不指定,默认从500开始,最大到60000,500之前的是预定给系统用户使用的
-g 指定用户所属组名或组的gid,组名或组ID必须是存在的。如果不指定,gid与uid相同。
例如,创建新用户jacky
可以看到系统自动在/home目录下创建了jacky目录,作用jacky用户的家目录
1.2 修改用户密码
命令格式:
passwd [用户名]
注意:只有root用户可以修改所有用户的密码。普通用户只能修改自己的密码,所以普通用户输入这条命令时,不需要指定用户名。
1.3 切换用户
现在我们试着切换到新创建的用户
命令格式:
su - 用户名
注意:-号左右要有空格。
那要退出当前会话,回到刚才上一级会话(也就是刚才的root用户),需要使用exit命令:
1.4 查看用户
1.4.1 查看单一用户
命令格式:
id 用户名
1.4.2 查看所有用户
所有的用户信息都存放在/etc/passwd配置文件中。
通过查看这个文件的内容,可以查看所有用户的基本信息
cat /etc/passwd
超级用户root可以编辑这个文件,从而改变、新增、删除用户。
1.5 修改用户
命令格式:
usermod [选项] 用户名
常用选项:
-u 修改uid
-g 修改gid
-l 修改用户名,注意这里只是修改掉用户的登录用户名,不会修改用户的家目录等其他信息。
例如:修改用户uid
1.6 删除用户
命令格式:
userdel [选项] 用户名
注意:删除一个用户后,再次添加同名的用户时,如果报错,是因为该用户附属的home目录、mailbox文件并没有删除。
想要彻底删除,需要加上-r选项。例如:
2. 用户组管理
2.1 新建组
命令格式:
groupadd [选项] 组名
常用选项:
-g 指定组的gid
例如:创建gid为666的组 组名为glory
2.2 查看组
系统/etc/group配置文件存放着所有组的信息
cat /etc/group
2.3 将用户添加到组中
命令格式:
gpasswd -a 用户名 组名
例如:将jacky用户添加到glory组里
再次查看jacky用户,会发现它被从属于两个组了
所以:用户与组可以是多对多的关系,也就是一个用户可以同时属于多个组,一个组可以包含多个用户
2.4 将用户移出组
命令格式:
gpasswd -d 用户名 组名
2.5 删除组
命令格式:
groupdel 组名
注意:如果组里有用户存在,则需要先删除掉或者移出这些用户
hydra 删除hydra组(组里有用户的话,需要先删除用户)