跳转至

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 中,权限是通过 chmodchownchgrp 等命令来控制的。

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 权限等。通过使用这些基本的命令和方法,可以有效地管理系统中的用户、权限和资源。