作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

Linux是一个多用户多任务操作系统,这意味着它可以同时支持多个用户登录并使用系统。但是我们之前所有的操作都是基于超级管理员root来操作的,但是从Linux设计来说,是不推荐的。因为root的权限太大,所以才需要使用普通用户来进行日常运维,那如果普通用户需要做的操作需要root权限的时候又该怎么做呢?我们将通过以下几个方面来讲解。
1.Linux用户(本章节)
2.Linux用户组
3.SU命令
4.SUDO命令
Linux操作系统的用户体系非常灵活,这使得它成为了一个很好的多用户系统。它有三种类型的用户:超级用户(root),系统用户和常规用户。
mail 的系统用户,网页服务器可能会有一个名为 www 或 http 的用户。在Linux系统中,每个用户都有一个唯一的用户ID(UID),系统内部通过UID来识别用户。UID 0通常被赋予root用户,UID 1-999一般为系统用户,1000以上的UID用于常规用户。
Linux 用户管理可以通过命令行进行,以下是一些常用的用户管理命令:
useradd [options] username:创建新的用户。例如 useradd -m username 将会创建一个新的用户,并创建用户的主目录。passwd username:设置或修改用户的密码。不加用户名则默认修改当前用户,只有root可以修改其他用户的密码。userdel [options] username:删除用户。例如 userdel -r username 将会删除用户以及用户的主目录。usermod [options] username:修改用户的信息。例如 usermod -l newname username 将会修改用户的用户名。groups username:显示用户所属的组。id username:显示用户的 UID(用户 id)、GID(用户组 id)以及所属的组。su username:切换到其他用户。例如 su - username 将会切换到用户,并加载用户的环境变量。whoami:显示当前的用户名。who:显示当前登录的所有用户。last:显示系统的登录记录。注意在使用这些命令时可能需要 root 权限,可以使用 sudo 命令获取 root 权限。例如 sudo useradd username。
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
#省略中间部分
nginx:x:997:995:Nginx web server:/var/lib/nginx:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
#省略中间部分
user01:x:1000:1000::/home/user01:/bin/bash/etc/passwd 文件中的每一行都代表系统上的一个用户账号,每行由多个字段组成,字段之间使用冒号(:)分隔。典型的字段包括:
x)原本是存储加密的密码,现在通常是存储在 /etc/shadow 文件中,或者指向其他安全存储的文件。root 属于超级管理员,无论用户ID还是组ID都是0
nginx&ntp 属于系统用户,都是服务自带的用户,/sbin/nologin 就是不允许登录,包括ssh和通过控制台
user01 属于常规用户,属于通过useradd 增加的用户的,没有nologin就是允许ssh和通过[root@localhost ~]# cat /etc/shadow
root:*:18961:0:99999:7:::
#省略中间部分
ntp:!!:19885::::::
user01:!!:19893:0:99999:7:::/etc/shadow 文件用于存储用户账号的加密密码、密码过期信息以及账号是否被锁定等敏感信息。相比于 /etc/passwd 文件,它具有更高的安全性,因为普通用户无法直接读取此文件。
/etc/passwd 中的用户名对应。:)分隔。/etc/shadow 文件具有非常严格的访问控制,通常只有 root 用户或具有相应特权的用户能够读取和修改此文件。这是为了确保用户密码和账户信息不被未经授权的用户获取。1.如果自己是一个普通运维角色,我们能拿到的账号和密码,应该是一个普通用户和密码。
2.如果自己是运维管理员的情况,则分配给其他人的账号也只能是一个普通账号。
3.普通用户可以可以通过su及sudo命令来提升自己的权限,用于完成需要超级管理员权限才能完成运维的操作。
4.当然,这并不是标准方案,你可以根据自己的实际情况选择。
5.有的应用程序则要求必须使用非root用户启动,比如es,使用root则会被提示不允许使用root启动。