• 欢迎光临~

Debian11管理员手册

开发技术 开发技术 2022-10-13 次浏览

1 用户与群组数据库

用户清单通常保存在 /etc/passwd 文件内,把哈希编码后的密码保存在 /etc/shadow 文件内。这两个文件都是纯文本档,以简单的格式保存,可以用文本编辑器读取与修改。每个用户占一行,其字段以冒号分隔 (“:”)。

最好使用 vipw 命令编辑 /etc/passwd 文件,或使用 vigr 命令编辑 /etc/group 文件。这些命令会先锁住该文件再运行文本编辑器, (缺省使用 vi 命令,除非 EDITOR 环境变量有其他的设置)。加上 -s 选项可同时编辑对应的 shadow 文件。

1.1 用户清单:/etc/passwd

在 /etc/passwd 文件内的字段清单:

登录,例如 rhertzog;
uid:用于辨识用户的不重复数字;
gid:用户主要群组 (Debian 的默认值系为每个用户创建一个群组) 的不重复号码;
GECOS:通常保存用户全名的数据栏;
登入目录,用于保存用户的个人文件 (环境变量 $HOME 通常指向此处);
登录时运行的程序。通常是命令解译器 (shell),若指定为 /bin/false (不做任何事并立即回到控制),则用户无法登录。

1.2 隐藏与加密的密码档:/etc/shadow

/etc/shadow 文件含以下的字段:

登录;
加密的密码;
管理密码期限的字段。

安全 /etc/shadow 文件的安全
/etc/shadow,不同于它的分身,/etc/passwd,不能被一般用户读取。保存在 /etc/passwd 内的哈希编码后的密码可被任何人读取;破坏者可以用 “暴力” 法破坏它们,以常见的编码字符破解。这种攻击方式 — 称为 "字典攻击" — 对于使用 /etc/shadow 的系统是无效的。

1.3 群组清单:/etc/group

群组列在 /etc/group 文件内,类似 /etc/passwd 文件的纯文本数据库,包括以下的字段:

群组名称;
密码 (可选):只在加入群组时会用到 (使用 newgrp 或 sg 命令,见专栏 基本知识 在多个群组工作);
gid:不重复的群组识别码;
成员清单:属于此群组的用户名清单,以逗号分隔。

基本知识 在多个群组工作
用户可能加入多个群组;其中一个是 “主群组”。用户自己的主群组默认是初始化用户配置时自动产生的。默认情况下,用户添加的文件自动属于该用户,以及其主群组。这种方式并不重视可取的;例如,用户需要在自己主群组文件夹之外工作,与其他群组共享其文件。在这种情况下,用户需以命令:newgrp 变更其主要群组,启动新的 shell,或以 sg 命令,使用其他群组执行一个命令。这些命令也允许用户加入其他群组。若该群组受密码保护,则需先取得密码才能运行该等命令。

用户还可以设置文件夹的 setgid 位,让该文件夹内的文件自动属于特定群组。详情见专栏 安全 文件夹的 setgid 和 sticky bit。
id 命令显示用户的当前状态,包括个人辨识码 (uid 变量)、当前的主群组 (gid 变量)、以及其所属群组的清单 (groups 变量)。
addgroup 与 delgroup 命令可以添加或删除群组。groupmod 命令修改群组的信息 (其 gid 或辨识码)。命令 gpasswd group 可变更群组的密码,gpasswd -r group 命令可删除群组的密码。

秘诀 getent
getent (get entries) 命令使用适当的程序库函数,调用配置于 /etc/nsswitch.conf 文件的 NSS 模块,以标准方式检查系统数据库。此命令需要一个或两个参数:被检查的数据库名称、以及可能的搜索键词。因此,getent passwd rhertzog 命令将从用户 rhertzog 中给予用户数据库。

程序员灯塔
转载请注明原文链接:Debian11管理员手册
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com