用户和用户组管理

前言:Linux系统实行的用户与用户组管理和windows有所不同,Linux中可以实现多用户同时在线访问系统资源,但是每个用户的权限却不同,他们以用户组划分,不同的用户有不同的权限,他们只能访问或者操作他们权限范围内的资源,不同的用户不能互相查看修改彼此的资源,这种规则极大地提高了工作效率,实现了多人协同工作,Linux在服务器领域有着广泛的应用,比windows server更加受欢迎。

那么Linux中如何来管理不同的用户和用户组呢?又如何来添加和删除用户呢?

1. 查看用户

命令who am i
作用:查看当前登录用户

who,who命令也可以查看,跟上一些不同的参数可以选择不同的内容。

作用: 展示出当前登录用户的详细信息,如用户名、伪终端、最后登录时间等,whoami也可以查看当前用户的用户名。

语法:who [-Himqsw][--help][--version][am i][记录文件]

执行这项指令可得知目前有那些用户登入系统,单独执行who指令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个X显示器。

参数 作用
-H或--heading 显示各栏位的标题信息列。
-i或-u或--idle 显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串。
-m 此参数的效果和指定"am i"字符串相同。
-q或--count 只显示登入系统的帐号名称和总人数。

2. 创建用户

命令:adduser

例如adduser jiatest

创建一个用户名为jiatest的用户并为其分配一个家目录/home/jiatest,如果没有设置其用户组,默认会分配一个jiatest用户组,在Ubuntu系统中这个命令会出现执行进程,并为其设置初始的配置,类似一个程序,但是在centos中不会出现执行过程。

命令:useradd

例如,useradd jiatest

创建一个jiatest用户,但是不会出现执行过程,初始密码可以使用passwd jiatest来修改或设置,基本和adduser命令相同。

3. 删除用户

3.1. 命令:userdel

例如,userdel jiatest

就会删除jiatest这个用户,加上参数-f强制删除,即使该用户已经登录,参数-r则会删除该用户相关的所有目录,递归删除.

命令:deluser,该命令比userdel命令复杂,不同的参数有不同的作用,

3.2. 命令: deluser USER

删除普通用户
例: deluser mike

删除用户mike。

参数 作用
--remove-home 删除用户的主目录和邮箱
--remove-all-files 删除用户拥有的所有文件
--backup 删除前将文件备份。
--backup-to 备份的目标目录,默认是当前目录。
--system 只有当该用户是系统用户时才删除。

4. 用户组:

4.1. delgroup GROUP

格式: deluser --group groupname

4.1.1. 从系统中删除用户组

例如: deluser --group students

参数 作用
--system 只有当该用户组是系统用户组时才删除
--only-if-empty 只有当该用户组中无成员时才删除

4.1.2. 将用户从一个组中删除

deluser USER groupname

例: deluser mike students

将mike从students用户组中删除.

参数 作用
--quiet/-q 不将进程信息发给stdout
--help/-h 帮助信息
--version/-v 版本号和版权
--conf/-c 文件 以制定文件作为配置文件

5. 查看用户组

命令:groups username

该命令可以查看username用户所在的用户组。

例如,如果以root身份登录,执行命令:groups root

那么会得到结果:


root:root

前面代表的是用户名,后面代表的是所在用户组。

6. 改变用户信息

6.1. 改变用户组

命令:usermod

格式: usermod -G groupname username

就可以将username用户添加到groupname用户组中。

6.2. 改变用户的shell

命令: chsh -s /bin/*sh

6.3. 改变用户默认shell

命令: usermod -s /bin/*sh username