5 ubuntu 用户管理
在 Ubuntu 中,用户管理是系统管理的重要组成部分。通过用户管理,可以控制谁可以访问系统,哪些资源可以访问,如何分配权限等。以下是一些常见的用户管理操作,以及如何添加基本权限(如 Docker 和 sudo 权限)。
1. 创建用户
在 Ubuntu 中,使用 useradd 命令来创建一个新的用户。如果要创建一个包含主目录并设置默认 shell 的用户,可以使用 adduser 命令,它会提供更多的交互式提示。
使用 useradd 创建用户:
sudo useradd -m -s /bin/bash username
-m:创建用户的主目录(如 /home/username)。
- -s /bin/bash:设置用户的默认 shell 为 Bash。
使用 adduser 创建用户:
sudo adduser username
adduser 命令会引导你设置密码、用户信息(如全名、房间号等),并自动创建主目录。
2. 删除用户
要删除用户,可以使用 userdel 命令。使用 -r 参数可以同时删除用户的主目录。
sudo userdel username
sudo userdel -r username # 删除用户及其主目录
3. 修改用户信息
- 修改用户的全名、登录 shell、家目录等,使用
usermod命令。
修改用户的登录 shell:
sudo usermod -s /bin/zsh username # 更改用户的默认 shell 为 zsh
修改用户的主目录:
sudo usermod -d /new/home/directory -m username
-d /new/home/directory:更改用户主目录。
- -m:将原目录内容迁移到新目录。
修改用户的用户名:
sudo usermod -l newusername oldusername
4. 列出用户
要查看系统中的所有用户,可以查看 /etc/passwd 文件,或者使用 getent 命令。
cat /etc/passwd # 显示所有用户
getent passwd # 显示所有用户
5. 查看当前登录用户
使用 whoami 命令可以查看当前登录的用户名。
whoami
6. 设置密码
使用 passwd 命令来设置或更改用户密码:
sudo passwd username # 设置某个用户的密码
如果想要禁止用户登录,可以将密码设置为空(无密码):
sudo passwd -l username # 锁定用户账户
sudo passwd -u username # 解锁用户账户
7. 用户组管理
在 Linux 系统中,用户是属于一个或多个组的。管理组的命令包括创建组、删除组、添加用户到组等。
创建用户组:
sudo groupadd groupname
删除用户组:
sudo groupdel groupname
将用户添加到组:
sudo usermod -aG groupname username
-aG:将用户添加到指定的组中,保留原有的组。
查看用户所属的组:
groups username
删除用户从组中:
sudo gpasswd -d username groupname
8. 修改文件和目录的权限
在 Linux 中,权限是通过 chmod、chown 和 chgrp 等命令来控制的。
chmod:修改文件或目录的权限
-
给文件或目录添加可执行权限:
chmod +x filename -
设置权限为
rwxr-xr-x(所有者可读写执行,组和其他用户可读执行):chmod 755 filename
chown:修改文件或目录的所有者
-
修改文件的所有者为
username和组为groupname:sudo chown username:groupname filename -
修改目录及其内容的所有者:
sudo chown -R username:groupname /path/to/directory
chgrp:修改文件或目录的组
- 修改文件的组为
groupname:sudo chgrp groupname filename
9. 管理 sudo 权限
Sudo 允许普通用户以超级用户权限运行命令。在 Ubuntu 中,普通用户必须添加到 sudo 组才能使用 sudo 命令。
将用户添加到 sudo 组:
sudo usermod -aG sudo username
添加完成后,用户就可以使用 sudo 命令了。
编辑 sudoers 文件:
sudoers 文件定义了哪些用户和组可以使用 sudo。使用 visudo 编辑 sudoers 文件:
sudo visudo
可以为特定用户或组添加权限。例如,允许 username 执行所有命令:
username ALL=(ALL) ALL
10. 添加 Docker 权限
为了让普通用户执行 Docker 命令,必须将用户添加到 Docker 组。这样用户就不需要每次执行 Docker 命令时都使用 sudo。
将用户添加到 Docker 组:
sudo usermod -aG docker username
检查用户是否成功加入 Docker 组:
groups username # 确认用户已经加入 docker 组
修改完后,用户需要注销并重新登录才能生效,或者执行以下命令使其生效:
newgrp docker
11. 查看和管理用户的登录状态
-
查看当前登录的用户:
who -
查看特定用户的登录历史:
last username -
强制注销某个用户:
sudo pkill -KILL -u username
12. 自动化和定时任务
用户可以使用 cron 来设置定时任务,系统管理人员可以通过编辑 /etc/crontab 文件,或使用 crontab 命令为用户设置任务。
查看当前用户的 crontab:
crontab -l
编辑 crontab:
crontab -e
13. 审计和日志
- 查看系统日志:用户的行为、登录事件、sudo 使用等会记录在
/var/log/auth.log文件中。可以查看该日志来审计用户行为:
sudo cat /var/log/auth.log | grep username
总结
在 Ubuntu 中进行用户管理涉及的操作包括:创建用户、删除用户、修改用户信息、管理组、控制文件和目录权限、配置 sudo 和 Docker 权限等。通过使用这些基本的命令和方法,可以有效地管理系统中的用户、权限和资源。