平时使用 ubuntu 服务器都是用 root 账号在操作,这样会有一些安全隐患,比如在执行一些外来脚本的时候,如果用 root 账号执行,恶意脚本就可以损害系统。还有在使用 composer 安装 php 包的时候,也会提醒我们不要用 root 账号运行 composer 命令。所以记录一下 ubuntu 配置用户和用户组的过程。

1. 用户组

1.1 查看当前系统用户组

cat /etc/group

显示格式为

用户组名称:用户组密码:GID:用户列表(用户之间用逗号分隔)

1.2 新建用户组

groupadd admin    # 新建admin用户组

1.3 修改用户组

groupmod -n admin_new admin    # 将 admin 用户组修改为 admin_new

1.4 删除用户组

groupdel admin    # 删除admin用户组

2. 用户

2.1 查看用户

cat /etc/passwd

2.1 新建用户

第一种方法:

adduser ggg   # 创建用户 ggg,会要求输入密码,其他选项可以直接回车跳过

第二种方法:

useradd ggg  # 添加用户 ggg
passwd ggg   # 为用户 ggg 指定登录密码
usermod -s /bin/bash ggg  # 为用户 ggg 指定 shell
usermod -d /home/ggg ggg  # 为用户 ggg 指定 home 目录

两种方法最终结果相同,第一种适合快速创建用户,第二种适合精确控制各个选项。

2.2 删除用户

第一种:

deluser ggg  # 删除用户
deluser --remove-home ggg  # 删除用户、home 目录和邮箱

第二种:

userdel ggg # 删除用户
userdel --remove ggg  # 删除用户、home 目录和邮箱

3. 怎样比较安全的创建 sudo 使用的用户

3.1 禁用新创建用户通过 ssh 登录

vim /etc/ssh/sshd_config  # 打开 ssh 配置

按 o 在当前行之下插入新行,并进入 vim 编辑模式,输入:
DenyUsers ggg
按 Esc 退出 vim 编辑模式,再输入 :wq 保存退出。

service sshd restart

重启ssh服务。

3.2 创建用户组

我们通过 vim /etc/sudoers 发现 root 用户和 admin 用户组默认拥有sudo权限。但是系统里其实还没创建admin用户组,则我们先创建一个admin用户组。

groupadd admin

3.3 创建用户

adduser --group admin ggg # 创建用户 ggg 并加入 admin 用户组

同时设置一个比较好记的密码。

这样完成以后,ggg 用户就获得了 sudo 权限,可以执行 root 的命令。比如:

sudo apt update && sudo apt upgrade

这样我们平时的命令就可以通过 su ggg 切换到 ggg 用户来执行,增加一定的安全性。

--End--