Ubuntu系统下的用户管理
- 一、ubuntu介绍
- 1.1 ubuntu简介
- 1.2 主要特点
- 二、创建新用户
- 2.1 查看当前Ubuntu版本
- 2.2 创建新用户
- 2.3 修改密码
- 2.4 查看用户id
- 三、新建用户组
- 3.1 新建用户组
- 3.2 查询用户组
- 3.3 加入某个用户组
- 四、赋予sudo权限
- 4.1 将用户添加到 sudo 组
- 4.2 查看admin用户的用户组
- 4.3 切换admin用户登录
- 五、查看passwd文件
- 六、总结
一、ubuntu介绍
1.1 ubuntu简介
Ubuntu 是一个基于 Debian 的开源 Linux 操作系统,由 Canonical Ltd. 公司及其全球社区共同开发和维护。自 2004 年首次发布以来,Ubuntu 已经成为最受欢迎的 Linux 发行版之一,被广泛应用于个人电脑、服务器以及云计算等领域。
1.2 主要特点
- 易用性:Ubuntu 设计为对新手用户友好,提供图形化安装界面和直观的桌面环境(默认使用 GNOME 桌面环境),使得即使是第一次接触 Linux 的用户也能快速上手。
- 免费且开源:遵循自由软件和开源的原则,Ubuntu 及其所有组件都是免费提供的,并且源代码开放给公众查阅和修改。
- 定期更新与支持:Ubuntu 有规律地每六个月发布一次新版本,每个版本都提供至少九个月的支持。长期支持(LTS)版本则每隔两年发布一次,提供长达五年的安全更新和技术支持。
- 庞大的软件库:通过 APT 包管理系统,用户可以方便地访问成千上万种软件包,涵盖了从办公软件到游戏娱乐的各种应用。
- 社区支持:Ubuntu 拥有一个活跃的国际社区,成员们不仅贡献代码,也帮助解答其他用户的问题,促进了知识共享和技术交流。
二、创建新用户
2.1 查看当前Ubuntu版本
查看Ubuntu系统版本,当前版本为
22.04.1 LTS
。
root@jeven01:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
2.2 创建新用户
使用
adduser
命令来创建一个新的用户。这个命令会询问一些信息,如用户的密码、全名等。
adduser admin
2.3 修改密码
可以使用passwd命令修改新建用户admin的密码
root@jeven01:~# passwd admin
New password:
Retype new password:
passwd: password updated successfully
2.4 查看用户id
使用以下命令,查看admin用户的id信息。
root@jeven01:~# id admin
uid=1001(admin) gid=1001(admin) groups=1001(admin)
三、新建用户组
3.1 新建用户组
使用
addgroup
命令,新建IT用户组。
root@jeven01:~# addgroup it
Adding group `it' (GID 1002) ...
Done.
3.2 查询用户组
- 查看系统所有用户组
root@jeven01:~# getent group |head
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,jeven
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
- group_name 是用户组的名字。
- password 通常是占位符 x 或者空的,因为现代 Linux 系统通常将密码存储在影子文件中。
- GID 是用户组的 ID。
- user_list 列出了属于该组的所有用户,用逗号分隔。
- 查询个特定用户的所属组
root@jeven01:~# groups admin
admin : admin
3.3 加入某个用户组
- 加入IT用户组
usermod -aG it admin
- 查询admin用户的所属用户组
root@jeven01:~# groups admin
admin : admin it
- 新建用户时加入用户组
useradd -m -G it zhangsan
四、赋予sudo权限
4.1 将用户添加到 sudo 组
. 将admin用户添加到 sudo 组
usermod -aG sudo admin
4.2 查看admin用户的用户组
验证用户是否已成功添加到 sudo 组
root@jeven01:~# groups admin
admin : admin sudo it
4.3 切换admin用户登录
- 切换admin用户登录
root@jeven01:~# su - admin
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
admin@jeven01:~$
执行以下命令,如果一切正常,命令应该返回 root,并且可能会提示输入用户的密码。
admin@jeven01:~$ sudo whoami
root
五、查看passwd文件
- 查看/etc/passwd密码文件
admin@jeven01:~$ cat /etc/passwd |head
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
/etc/passwd
文件中的每一行代表一个用户,并且每行由七个字段组成,这些字段用冒号(:
)分隔。
/etc/passwd
文件字段解释
字段编号 | 字段名称 | 说明 |
---|---|---|
1 | 用户名 | 用户的登录名。 |
2 | 密码占位符 | 实际密码存储在 /etc/shadow 文件中,这里通常是一个 x 。 |
3 | 用户 ID (UID) | 每个用户的唯一标识符。root 用户的 UID 是 0。 |
4 | 组 ID (GID) | 用户的主要组 ID。 |
5 | 用户信息 | 通常是用户的全名或描述信息。 |
6 | 主目录 | 用户登录时的初始工作目录。 |
7 | 登录 shell | 用户登录时使用的 shell,默认通常是 /bin/bash 。 |
六、总结
- 使用
sudo
而不是直接以root
用户身份进行操作:尽量使用sudo
来执行需要超级用户权限的命令,以减少安全风险。 - 定期审查用户和组:定期检查
/etc/passwd
和/etc/group
文件,确保所有用户和组都是必要的,并删除不再需要的账户。 - 设置强密码策略:确保所有用户都设置了强密码,并启用密码复杂性和过期策略。
- 禁用不必要的系统账户:禁用或删除不需要的系统账户(如
daemon
、bin
等),并确保它们没有登录权限。 - 限制
sudo
权限:仅授予真正需要sudo
权限的用户,并根据最小权限原则配置具体的sudo
规则。 - 使用
visudo
编辑/etc/sudoers
文件:使用visudo
命令编辑/etc/sudoers
文件,以防止语法错误导致系统无法使用sudo
。 - 备份重要文件:在进行任何用户管理操作之前,备份重要的配置文件如
/etc/passwd
、/etc/shadow
和/etc/sudoers
。 - 记录和审计用户活动:启用日志记录并定期检查日志文件,以便跟踪用户的活动,特别是
sudo
命令的使用情况。 - 使用 PAM 模块增强安全性:利用 Pluggable Authentication Modules (PAM) 模块来增强认证机制,例如启用双因素认证。
- 更新和打补丁:定期更新系统和相关软件包,以修复已知的安全漏洞。