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 中给予用户数据库。

挂载点清单

有些移动式设备在链接时系统自动挂载,尤其在 GNOME、Plasma 或其他图形桌面环境。有些情况就需要用户手动挂载。同样的,也需要卸载 (从文件树移除)。标准的用户权限不允许运行挂载 mount 与卸载 umount 命令。只有管理者才能够设置 /etc/fstab 文件内的 user 选项,授权用户运行该等命令 (独立于每个挂载点)。

The /etc/fstab file gives a list of all possible mounts that happen either automatically on boot or manually for removable storage devices. Each mount point is described by a line with several space-separated fields:

  • file system: this indicates where the filesystem to be mounted can be found, it can be a local device (hard drive partition, CD-ROM) or a remote filesystem (such as NFS or even SSHFS).

    This field is frequently replaced with the unique ID of the filesystem (which you can determine with blkid device) prefixed with UUID=. This guards against a change in the name of the device in the event of addition or removal of disks, or if disks are detected in a different order. 第 8.8.1 节 “辨识磁盘” covers this topic in more detail.
  • mount point:这是把设备、远程系统或分区挂载到本地文件系统的位置。
  • type:这个字段定义挂载设备使用的文件系统。ext4、ext3、vfat、ntfs、btrfs、xfs 等。
  • options:依文件系统的不同,而有多种选项,详情见 mount 手册页面。最常用的是

rw 或 ro,表示该设备挂载后可以读/写,或只有读取的权限。

noauto 开机时关闭自动挂载。

nofail 允许在启动时处理设备,即使该设备不存在。确认启动时,该外置磁盘机可能未插入,因为 systemd 将确认所有挂载点在启动完成前必须自动挂载。可将此与 x-systemd.device-timeout=5s 并用,告诉 systemd 不必等 5 秒以上的时间,直接进入下个作业阶段 (见 systemd.mount(5))。

user 授权所有的用户均可挂载此文件系统 (若无此选项,则只有根用户才有此权限)。

  • defaults 表示缺省的选项群组为:rw、suid、dev、exec、auto、nouser 与 async,使用了 defaults 之后,还可以用 nosuid 命令、nodev 及其他类似的命令,中止 suid、dev 等作用。加入 user 选项可再启用它,因为 defaults 包括 nouser。
  • dump: this field is almost always set to 0 and kind of a relic. When it is greater then zero, it tells the dump tool that the partition contains data that is to be backed up frequently. The tool supports Ext2/3/4 filesystems only and will use the value here when run via dump -W or dump -w to determine which partitions need to be backed up. Consider the examples in /usr/share/doc/dump/examples/ if you want to use this feature. But there are better alternatives to backup a filesystem, like fsarchiver.
  • pass:最后一个字段告知系统在启动时,或其他时机,检查文件系统的完整性。若设为 0,则不检查。根文件系统的值为 1,其他固定文件系统的值为 2。

例 8.5. 范例 /etc/fstab 文件

  1. # /etc/fstab: static file system information.
  2. #
  3. # Use 'blkid' to print the universally unique identifier for a
  4. # device; this may be used with UUID= as a more robust way to name devices
  5. # that works even if disks are added and removed. See fstab(5).
  6. #
  7. # systemd generates mount units based on this file, see systemd.mount(5).
  8. # Please run 'systemctl daemon-reload' after making changes here.
  9. #
  10. # <file system> <mount point> <type> <options> <dump> <pass>
  11. # / was on /dev/sda1 during installation
  12. UUID=7a250fb8-c16d-4a4e-9808-ec08ae92b6c6 / ext4 errors=remount-ro 0 1
  13. # swap was on /dev/sda5 during installation
  14. UUID=13f367ae-dbaf-40ed-85c0-4072a2ebe426 none swap sw 0 0
  15. /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
  16. /dev/fd0 /media/floppy auto rw,user,noauto 0 0
  17. arrakis:/shared /shared nfs defaults 0 0

The last entry in the example corresponds to a network filesystem (NFS): the /shared/ directory on the arrakis server is mounted at /shared/ on the local machine.

The format of the /etc/fstab file is documented in the fstab(5) manual page.

进一步 自动挂载

systemd is able to manage automount points: those are filesystems that are mounted on-demand when a user attempts to access their target mount points. It can also unmount these filesystems when no process is accessing them any longer.

Like most concepts in systemd, automount points are managed with dedicated units, using the .automount suffix. See systemd.automount(5) for their precise syntax.

还有其他自动挂载实用程序,诸如 autof role="pkg">autofs 软件包中的 automount 或 am-utils 软件包中的amd。

Note also that GNOME, Plasma, and other graphical desktop environments work together with udisks2, and can automatically mount removable media when they are connected.

Debian11管理员手册的更多相关文章

  1. Oracle GoldenGate OGG管理员手册(较早资料)

    第一章 系统实现简述 前言 编写本手册的目的是为系统管理员以及相关操作人员提供 Oracle  Goldengat  软 件的日常维护和使用的技术参考: 3 ORACLE 第二章 OGG 日常维护操作 ...

  2. Oracle GoldenGate OGG管理员手册

    第一章 系统实现简述 前言 编写本手册的目的是为系统管理员以及相关操作人员提供 Oracle  Goldengat  软 件的日常维护和使用的技术参考: 3 ORACLE 第二章 OGG 日常维护操作 ...

  3. Ubuntu管理员手册

    hostname cat /etc/hosts apt-get install iproute2 iproute2-doc ip a ps -aux

  4. Manual | BSD手册| Linux手册 | 数据库手册 | 编程开发手册 | WEB开发手册 | 软件应用手册 | 网络技术手册 | GNU手册

    豆豆手册 □ BSD手册 □ Linux手册 □ 数据库手册 □ 编程开发手册 □ WEB开发手册 □ 软件应用手册 □ 网络技术手册 □ GNU手册 在线手册 首 页 BSD手册   ·FreeBS ...

  5. 如何成为一名出色的Oracle数据库管理员

    主要针对Oracle DBA在成长阶段的定位,学习方法等几大方面进行了经典的论述,详细内容请参考下文. 一.定位 Oracle分两大块,一块是开发,一块是管理.开发主要是写写存储过程.触发器什么的,还 ...

  6. 成为OpenStack工程师

    OpenStack Hacker 态度:开放.主动.沟通 影响力:能说.能写.能分享 四化:自动化.流程化.系统化.文档化 0级 掌握一些基本技能:python.c.linux.git.unittes ...

  7. 关于OpenStack的学习路线及相关资源汇总

    首先我们想学习openstack,那么openstack是什么?能干什么?涉及的初衷是什么?由什么来组成?刚接触openstack,说openstack不是一个软件,而是由多个组件进行组合,这是一个更 ...

  8. Symantec Backup Exec 2012 Agent for Linux 卸载

    本文介绍一下如何卸载Symantec Backup Exec 2012 Agent for Linx.首先我们来看看Symantec_Backup_Exec2012管理员手册的文档介绍: 卸载 Age ...

  9. postgreSQL使用

    1.1. 安装     自然,在你想开始使用 PostgreSQL 之前, 你必须安装它.PostgreSQL 很有可能 已经安装到你的节点上了,因为它包含在你的操作系统的发布里, 或者是系统管理员已 ...

随机推荐

  1. C#/VB.NET 替换 PDF 文件上的现有图像

    我们都知道对PDF文件进行修改和编辑不是一件容易的事.但有时当我们想用新的图像来替换PDF文件上的现有图像时,该怎么办呢?别担心,本文将向您展示如何在 C#/VB.NET 中替换 PDF 文件中的现有 ...

  2. 209. 长度最小的子数组--LeetCode

    来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/minimum-size-subarray-sum 著作权归领扣网络所有.商业转载请联系官方授权,非商业 ...

  3. Web 布局设计(一):固定侧边栏

    前言 闲着无事,做一些实战练习,今天实现一个如标题所示的布局设计.通过此次布局设计,我希望掌握position属性值 fixed.absolute.relative.width和height属性值 i ...

  4. Excel 单元格的相对引用和绝对引用

    引用方式 单元格的地址由该单元格所在的行号和列标构成,一个引用代表工作表上的一个或者一组单元格,指明公式中数据所在的位置. 编号 消费记录 价格 1 乒乓球 1 2 火腿肠 2 3 乒乓球 1 4 羽 ...

  5. MQ系列5:RocketMQ消息的发送模式

    MQ系列1:消息中间件执行原理 MQ系列2:消息中间件的技术选型 MQ系列3:RocketMQ 架构分析 MQ系列4:NameServer 原理解析 在之前的篇章中,我们学习了RocketMQ的原理, ...

  6. django_day01

    内容回顾 django处理浏览器的请求流程: 请求发送到wsgi wsgi封装了请求的相关数据(request) django去匹配路径 根据路径判断要执行哪个函数 执行函数 函数执行具体的业务逻辑 ...

  7. 第五十五篇:Axios的封装

    好家伙, 上图 1.为什么需要封装axios? 当我们改变项目的使用环境时候,url也会随之改变,那么我们就需要改很多axios请求中的url配置 现在我们将axios封装,在项目使用环境改变时我们只 ...

  8. webpack打包优化点

    目录 1. noParse 2. 包含和排除目录 3. IgnorePlugin 4. happypack 5. DllPlugin动态链接库 6. 热更新 7. 开发环境 tree-shaking ...

  9. Netty 学习(三):通信协议和编解码

    Netty 学习(三):通信协议和编解码 作者: Grey 原文地址: 博客园:Netty 学习(三):通信协议和编解码 CSDN:Netty 学习(三):通信协议和编解码 无论使用 Netty 还是 ...

  10. tar、gzip、zip、jar是什么,怎么查看?

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 如果你是后端程序员,我想你一定见过*.tar.gz.*.zip.*.jar后缀的文件吧,这些都是压缩文件,那这些文 ...