红帽系统管理一 6章节 管理本地用户和组

描述用户和组的概念

用户

用户账户有三种主要类型,超级用户,系统用户和普通用户。
超级用户账户用于管理系统名称为root,uid为0,对系统具有完全访问权限。
系统的系统用户账户供提供支持服务进程使用这些进程或者叫守护进程,通常不需要以超级用户的身份运行,系统会为他们分配非特权账户,允许他们确保其文件和其他资源不受彼此以及系统上普通用户的影响。用户无法使用系统用户账户与交互式方式登录。
大多数用户用于日常工作的为普通用户账户。
使用 id 查看用户基本信息。

[root@#test ~]# id
uid=0(root) gid=0(root)=0(root)
[root@#test ~]# id guoj
uid=1000(guoj) gid=8899(guoj)=8899(guoj)

ls - l 命令的第三列显示的是文件的所有者。
ls - l 命令的第三列显示的是目录文件的所有者。

要查看进程信息,可使用PS命令,默认仅显示当前shell中的进程,添加 a 选项查看与某一终端相关的所有进程。若要查看与进程相关联的用户,请在命令中包含u选项,在下列输出中第一列显示用户名。

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       6779  0.0  0.2 115668  2128 tty1     Ss+  10月04   0:00 -bash
root       6799  0.0  0.2 115672  2160 pts/0    Ss   10月04   0:00 -bash
root       7381  0.0  0.1 155464  1872 pts/0    R+   00:40   0:00 ps au

以上命令的输出按名称显示用户,但在操作系统内部利用UID来跟踪用户用户名到UUD的映射账户信息数据库中定义。默认情况下,系统使用 /etc/passwd 文件存储有关本地用户的信息。

[root@#test ~]# tail -n 1 /etc/passwd
nginx:x:1003:1003::/home/nginx:/sbin/nologin

nginx:用户名
x:用户密码曾加密后存储在此处,后已移至/etc/shawow文件。
1003:UID
1003:GID
空格:真实姓名(可自行设置)
/home/nginx :用户的主目录。这是shell启动时的初始工作目录
/sbin/nologin:该用户的默认shell程序,普通用户为/bin/bash

组是需要共享文件和其他系统资源访问权限的用户的集合组,可用于向一族用户授予文件访问权限,而非仅仅向一个用户授予访问权限。
与用户相识主也有主名称,以增加操作的便利性,在内部系统通过分配的唯一标准号来区分不同的组。
组名称到GID的映射在组账户信息数据库中定义,默认情况下系统使用 /etc/group 文件存储有关本地组的信息。

主要组和补充组
每个用户有且只有一个主要组,对于本地用户而言,这是按 /etc/passwd 文件中的ID号列出的。通常在创建新的普通用户是会创建一个与该用户名同名的新组,该组将用作新用户的主要组,而该用户是这一用户专用组的唯一成员。这有助于简化文件权限的管理。
用户也可以有补充组,补充组的成员资格由 /etc/ group 文件确定,根据所在的组是否具有访问权限,将授予用户对文件的访问权限。具有访问权限的组是用户的主要组还是补充无关紧要。
如果用户user3拥有主要组user3,补充组xx和aaa,那么user3可以读取其中任意一个组的可读文件。

获取超级用户访问权限

大多数操作系统具有某种类型的超级用户即具有系统全部权限的用户。在Linux中为root用户,普通用户能控制大部分设备,但也有一些例外,因此才需要root用户。无限制的特权带来了职责问题,root用户拥有足以破坏系统的无限制权限,删除文件和目录,删除用户和账户以及添加后门的。如果root用户泄露,这其他人就有可能拥有系统的管理控制权限。在Linux中大多数系统管理员都作为无特权的用户登录,然后使用各种工具临时获得root权限。

su 命令可以让用户切换至另一个用户账户,如果从普通用户账户运行su系统会提示您输入要切换的账户的密码,当以root用户身份运行su时,则无需输入用户密码。

如果省略用户名,默认情况下 su 或 su- 命令会尝试切换到 root 。

注意:命令 su 将启动非登录 shell。而命令 su -(带有短画线选项)会启动登录 shell ,两个命令的主要区别在于 su - 会将 shell 环境设置为如同以该用户身份重新登录一样,而仅以该用户身份启动 shell ,但使用的是原始用户的环境设置。
在大多数情况下,管理员应该运行 su - 已获得包含目标用户常规环境设置的需要。

通过sudo运行命令

有时为安全起见,root 用户的账户可能根本没有有效的密码,在这种情况下,用户无法使用密码,直接 root 身份登录系统也不能使用 su 获取 shell 。在这种情况下,一个可以用于获取 root 的访问权限的工具就是 sudo 。

与su不同,sudo 通常要求用户输入其自己的密码,以进行身份验证,而不是输入他们正在尝试访问的用户账户的密码,也就是说用户使用 sudo 以 root 运行命令时,不需要知道 root 的密码。

sudo 命令可以配置为允许指定用户像某个用户一样执行任何命令,或者仅允许指定用户以某用户的身份运行部分命令。例如,如果 sudo 已配置为允许用户 guoj 以 root 身份运行命令 usermod ,那么 guoj 就可以运行一下命令来锁定或解锁用户账户。

[user01@#test ~]# sudo usermod -L guoj

如果用户尝试以另一身份运行命令,但是不被sudo允许,命令将会被阻止,且这一行为会被记录。使用sudo,所有命令都将默认的将日志记录到 /var/log/secure 中。

注意:在红帽企业Linux 7和红帽企业Linux 8中wheel组的所有成员都可以使用与任何用户身份运行命令,包括root在内。系统将提示用户输入其自己的密码,这是与红帽企业Linux 6及更早版本相比的变化。

通过sudo获取root shell

如果系统上的非管理员用户账户能够使用 sudo 来运行 su 命令,则可以从该账户运行 sudo - 来获取 root 用户的交互式 shell 。这是因为sudo 将以root用户身份运行 su - ,而 root 用户无需输入密码即可使用 su 。

sudo -i 命令,将切换到 root 账户并运用该用户账户的 shell 以及关联的登录脚本。
注意:sudo -i 命令和 sudo su - 命令的行为不完全相同。

配置sudo

sudo 命令的配置文件为 /etc/sudoers。为了避免多个管理员同时编辑此文件,只能使用特殊命令 visudo 命令对此文件进行编辑。

%wheel   ALL=(ALL)    ALL

以上来之sudoers文件的一行可为 wheel 组的成员开启 sudo 访问权限。
%wheel 是规则适用的组或用户,% 指定这是一个组。ALL=(ALL) 指定在可能包含此文件的任何主机上,wheel 可以运行任何命令。ALL 指定wheel 可以像系统上的任何用户一样运行这些命令。
此处待查阅其他资料补充。。。/sudoers.d目录与sudoers文件的关系?

管理本地用户账户

useradd
usermod:修改现有的用户。

usermod选项用法
-c将用户真实姓名添加到注释字段
-g为用户添加组
-G为用户指定补充组的逗号分隔列表
-d为用户指定特定的主目录
-m将用户的主目录移动到新的位置
-s为用户指定特定的shell
-L ,-U锁定用户,解锁用户

userdel
userdel -r username 将从passwd中删除username的详细信息,并删除用户的主目录。
注意,使用未指定 -r 选项的userdel 删除用户 和 当被删除的用户拥有在其主目录以外的地方的文件时删除用户,系统将会具有留下不拥有UID的文件。这种情况容易引起信息泄露或者其他安全问题,应当避免。root 用户可以通过 find 、 -nouser -o -nogroup 命令来查找所有无人拥有的文件和目录。

passwd usename 可以为用户设置密码。

UID 0 root
UID 1~999 系统用户
UID 1000~ 普通用户范围

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值