用户和用户组管理
前言: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