为什么需要进行分组管理?Linux中只有一个超级管理员,就是root,UID为0。其他用户根据任务不同分配不同的权限,一个用户组可以包括多个用户,这样,新建用户时分配权限就更加方便。
自己安装的虚拟机都会在安装系统时要求新建一个用户,登录时使用自己的指定的用户名,需要临时借用root权限可以加sudo或者sudo su root,在当前窗口一直使用root权限。
而云服务器,一般首次登录时,以root身份登录,在超级管理员权限下进行的操作是非常危险的,很容易误操作造成系统崩溃。
这就需要临时分配一个普通用户,下面先使用一个简单的方式创建普通用户:
输入命令后,两次确认密码,之后一路回车,y确定即可。
查看当前用户信息:id blackcat
切换到其他用户:sudo su hioier
提示错误:当前blackcat用户不在sudo附加组,这就需要我们添加一个附加组权限。
给用户blackcat分配sudo权限:usermod -aG sudo blackcat
注:当前用户需要新开一个终端切换到root用户操作
用户管理
/etc/passwd文件
查看文件:
1.登录用户名
2.用户密码:x是占位符号,代表当前用户有密码,可以登录,真正的密码在/etc/shadow文件,信息经过加密处理,只有特定的程序,比如,登录程序才可以访问文件里面的内容。
3.用户账号UID:0是唯一的一个超级管理员,当前系统Ubuntu20.04 1~999 是系统账户,有些版本Linux 是1~499。系统账户是指运行的各种服务进程访问资源的特殊账户。所有运行在后台的服务都需要用一个系统账户登录到Linux系统上。
4.用户账户的组ID
5.用户账户的文本描述,成为备注字段
6.用户HOME目录的位置
7.用户默认shell
添加用户
之前使用adduser,然后分配sudo权限,可以简单快速创建新用户,如果要实现更多自定义参数,可以使用useradd。系统默认值在/etc/default/useradd中。
快速查看默认值:
useradd命令格式:
- 选项:
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录。
- -m 用户目录如不存在则自动建立。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell文件 指定用户的登录Shell。
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
更改默认值:useradd -D -s /bin/bash
添加和修改密码
删除用户
更改用户
usermod [选项] 用户名