用户管理

1. 用户与用户组

2. 文件信息

3. 用户操作

答:

1. Linux是一个多用户的系统,允许使用者在系统上通过规划不同类型、不同层级的用户,并公平地分配系统资源与工作环境

Linux以 “用户与用户组” 的概念,建立用户与文件权限之间的联系,保证系统能够充分考虑每个用户的隐私保护,很大程度上保障了 Linux 作为多用户系统的可行性

从文件权限的角度出发,“用户与用户组” 引申为三个具体的对象:

每一个对象对某一个文件的持有权限是不同的

文件所有者

当一个用户创建了一个文件,这个用户就是这个文件的文件所有者。文件所有者对文件拥有最高权限,同时排他性地拥有该文件

除非文件所有者开放权限,否则其他人无法对文件执行查看、修改等操作

用户组

将 “其他用户” 区分为用户组成员和其他人后,若文件所有者希望对部分用户开放权限,而对其他人继续保持私有,则只需要将这部分用户与文件所有者划入一个用户组

这样,这部分用户就成了与文件所有者同组的用户组成员。用户可以对用户组成员开放文件权限,用户组成员则具备了查看、修改文件的权限,而对其他无关用户保持私有

例如,团队成员之间保持文件资源共享,但对非团队成员保持私有,这就需要将文件所有者与团队成员用户划分为同一个用户组,再对用户组成员开放权限即可

其他人

既与文件所有者没有任何联系的其他用户

小结

用户和用户组的对应关系是:一对一、多对一、一对多或多对多:

2. 当我们使用ls -l的时候,会列出当前目录的文件信息,如下:

drwxr-xr-x   3  osmond   osmond    4096  05-16 13:32   nobp

下面主要看看文件权限分析,实际上是由9个字符组成,每3个一组:

-代表当前没有,rwx对应代表的意思如下:

3. 用户操作

用户管理

来源整理自:vue3js.cn 面试官系列

新增用户

useradd 可以用来创建新用户,简要语法为:

useradd [options] [username]

为添加的用户指定相应的用户组

# useradd -g root kk //添加用户kk,并指定用户所在的组为root用户组

创建一个系统用户

# useradd -r kk //创建一个系统用户kk

设置密码

创建的用户还没有设置登录密码,需要利用passwd进行密码设置

passwd [options] [username]

修改用户

chage 命令用来修改与用户密码相关的过期信息,如密码失效日、密码最短保留天数、失效前警告天数等

chage [option] [username]

删除用户

userdel 命令用来删除用户的相关的所有数据。

userdel [options] [username]

新增用户组

groupadd用于创建一个新的工作组,新工作组的信息将被添加到系统文件中

groupadd [options] [groupname]

修改用户组

groupmod命令用来修改 group相关的参数,例如群组识别码或者名称

groupmod [options] [groupname]

删除用户组

groupdel 用于删除用户组,如果该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组

groupdel [groupname]

sudo

sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行

不是所有的用户都能执行 sudo 命令的,而是在 /etc/sudoers 文件内的用户才能执行这个命令

例如sudo命令使用ls:

$ sudo ls

补充

补充:Linux 用户管理围绕「用户 / 用户组 / 权限」展开,核心命令是 useradd、usermod、userdel、passwd、groupadd、groupmod、groupdel、chmod、chown、sudo。

补充要点:

  • 三类对象:文件所有者(u)、所属组(g)、其他人(o),对应三种动作:读(r=4)、写(w=2)、执行(x=1)。
  • 权限位:rwxr-xr-x 表示 7-5-5(所有者可读写执行,其他人读 + 执行)。
  • 常用命令:
    • useradd -g group user 新建用户并指定组。
    • useradd -r user 创建系统用户(无密码、不能登录)。
    • passwd user 设置 / 修改密码。
    • usermod -aG group user 把用户追加到附加组。
    • chage -m 0 -M 90 user 设置密码有效期。
    • userdel -r user 删除用户并清理家目录。
  • sudo:通过 /etc/sudoers 配置文件赋予指定用户执行 root 命令的能力,常用 visudo 编辑避免语法错误。

补充:服务器运维应遵循「最小权限原则」:日常用普通用户,必要时 sudo;禁止多人共用 root 账号,关键操作记入审计日志。