systemd的团队希望您采用一种新的方式来管理主目录。称之为“新方式”是轻描淡写的,这是Linux的一个真正的范式转变。以下是您需要了解的有关systemd homed的所有信息,它可能会出现在您附近的Linux发行版中。
2010年引入systemd时,Linux社区分成了三个阵营。有人认为这是一种改进,也有人认为这是一种有缺陷的设计,不符合Unix的理念。有些人不在乎这样或那样。
反对者的强烈反应是响亮的,激烈的,在某些情况下,几乎是狂热的。红帽公司的软件工程师、systemd的联合开发者伦纳特·波特林(Lennart Poettering)甚至收到了死亡威胁。
在YouTube上发布了鼓吹对poetter使用暴力的歌曲,一些网站似乎试图强迫Linux用户**systemd。他的合作开发者凯·西弗斯(Kay Sievers)也受到批评和辱骂,但波特林无疑首当其冲。
然而,不到8个月,Fedora就开始使用systemd了。到2013年底,Arch、Debian、Manjaro和Ubuntu都已迁移到systemd。当然,开源的荣耀在于,如果你不喜欢某样东西,你可以用开源代码来做你自己的事情。像Devuan这样的新发行版是Debian的一个分支,它的创建完全是为了避免使用systemd。
相关:如何在Linux系统上管理Systemd服务
在Linux目录结构中,您所做的一切都驻留在“/home”目录中。您的数据文件、图像、音乐和整个个人目录树都存储在这个以您的用户帐户命名的目录中。
应用程序的设置存储在主文件夹中隐藏的“点目录”中。如果文件或目录名的第一个字符是句点(.),则它是隐藏的。因为这些设置存储在本地,而不是在中心注册表中,因为主目录的备份包含这些隐藏的文件和文件夹,所以所有设置也会备份。
当您还原备份并启动应用程序(如LibreOffice或Thunderbird)时,它会查找其隐藏目录。它还可以查找您的文档首选项、工具栏设置和任何其他自定义设置。雷鸟找到你的电子邮件帐户信息和你的电子邮件。您不必经历缓慢设置每个应用程序的痛苦。
您可以使用ls和-a(all)选项来查看隐藏的文件和目录。首先,键入以下内容:
ls这将显示常规文件和目录。接下来,键入以下内容:
ls -a现在,您可以看到隐藏的文件和目录。
因为它是安装过程中最宝贵的部分,“/home”目录通常安装在自己的分区或单独的硬盘上。这样,如果操作系统或它所在的分区发生灾难性的事情,您可以重新安装Linux发行版,也可以换成新的发行版。然后,您可以在“/home”上重新安装现有的主分区
相关:Linux目录结构,说明
您的主目录不仅存储您的数据,还存储有关您的信息。包括你的数字身份的一些属性。例如,“.ssh”目录存储有关您与其他计算机的远程连接的信息,以及您生成的任何ssh密钥。
其他系统属性(如帐户用户名、密码和唯一用户ID)存储在“/etc/passwd”和“/etc/shadow”等文件中。任何人都可以读取其中的一些属性,但其他属性只能由具有root权限的人读取。
以下是“/etc/passwd”文件的内容:
cat /etc/passwd相关:如何在Linux上使用chfn和usermod更改用户数据
systemd homed更改的目的是提供一个完全可移植的主目录,其中存储有您的数据和Linux数字标识。您的UID和所有其他标识和身份验证机制将只存储在主目录中。
由于他们的“所有鸡蛋在一个篮子里”的设计,主目录是加密的。它们会在您登录时自动解密,并在您注销时再次加密。首选方法是使用Linux统一密钥设置(LUKS)磁盘加密。但是,还有其他可用的方案,例如fscrypt。
JavaScript对象表示法(JSON)用户记录将您的所有身份信息存储在一个名为“~/.identity”的目录中,它是用一个您无法控制的密钥进行加密签名的。
每个人的主目录都安装在环回设备上,类似于安装snap应用程序的方式。这就是主目录中的目录树作为操作系统目录树的无缝部分出现的原因。装载点默认为“/home”/$用户.homedir“(“$USER”替换为此人的帐户名)。
因为您的主目录成为所有数据的安全封装,所以您甚至可以将主目录放在可移动设备上。例如,您可以使用USB驱动器在您的工作和家庭计算机或任何其他系统家庭计算机之间移动它。
这就是Poettering所说的“完全可移植的主目录”的意思。他说,即使你不想在便携设备上移动主目录,这也会使升级和迁移更容易,并提高安全性。
它删除了他所说的“sidecar数据库”,其中包含了Poettering认为应该集中的关于您的重要信息片段。“/etc/passwd”和“/etc/shadow”文件包含身份验证信息和散列密码。但是,它们也保存了一些信息,比如您的默认shell,General Electric Comprehensive operation Supervisor(GECOS)字段。
Poettering说,这些元数据应该合理化,并以有意义的组存储在每个人的主目录的JSON记录中。
systemd homed服务通过新的homectl命令行工具进行控制。
有创建用户和主目录以及为每个用户设置存储限制的选项。你也可以设置密码,锁定某人的帐户,或完全删除帐户。用户可以被检查,他们的JSON用户记录也可以被读取。
还可以为每个用户设置时区和其他基于位置的信息。您可以指定默认shell,甚至可以设置环境变量,以便在有人登录时处于特定状态。
如果在“/home”目录中查找,您会看到systemd homed managed条目,这些条目如下所示,用户名后面附加了“.homedir”:
/home/dave.homedir记住,这只是一个挂载点。实际加密的主目录的位置在别处。
systemd homed仅用于人类的用户帐户。它无法处理UID小于1000的用户帐户。换句话说,根、守护进程、bin等不能使用新方案进行管理。总是需要管理用户的标准方法。因此,systemd homed不是一个全局解决方案。
有一个已知的第二十二条军规需要解决。正如我们前面提到的,一个人的主目录在他或她登录时被解密。但是,如果有人通过SSH远程访问计算机,则无法引用主目录中的SSH密钥,因为在该人登录之前,主目录仍然是加密的。当然,在登录之前,需要对SSH密钥进行身份验证。
这是systemd homed团队已经认识到的问题,但是我们找不到任何关于此修复的参考。我们确信他们会想出一个解决办法;如果他们不这样做,那将是一场壮观的闹剧。
假设有人把他的主目录传输到一台新机器上。如果UID已经被其他人在新机器上使用,他将被自动分配一个新的UID。当然,他的所有文件都必须将其所有权重新分配给新的UID。
目前,这是由chown-R命令的递归自动应用程序处理的。在未来,当一个更优雅的方案被开发出来时,这可能会得到不同的处理。这种繁重的方法不考虑作为其他用户运行的守护程序和进程。
相关:如何从Linux Shell创建和安装SSH密钥
这种情况正在发生。代码更改于2020年1月20日提交,并包含在systemd的build 245中,该版本于2020年4月随Ubuntu20.04发布。
要检查您的版本,请键入以下内容:
systemd --version不过,homectl命令还不存在。ubuntu20.04使用传统的/home目录,不使用systemd homed。
当然,何时包含和支持SystemdHomed和homectl将取决于各个发行版。
所以,没有必要让任何人进入完全的干草叉和燃烧火炬模式。因为管理用户和主目录的标准方法仍将保留,所以我们仍有选择。
相关:ubuntu20.04 LTS“Focal Fossa”的新功能
... 然而,一旦Debian(Ubuntu软件包的上游源)切换到systemd,Canonical决定也这样做。Ubuntu 15.04(生动的Vervet)的发布是第一个默认情况下使用新的启动系统的版本。 ...
...希望的多。另外,许多命令会根据基于Linux的操作系统而改变,或者需要安装其他程序。上面的命令在大多数Linux机器上可能是现成的。 ...
您可能会对Linux社区的危机感到惊讶。几年前,systemd init系统的创建加重了许多开发人员和用户的负担。大多数基于Linux的操作系统都采用了systemd,但也有一些选择了另一种方法。 ...
... ls命令用于列出当前工作目录中的所有文件和文件夹。您还可以使用同一命令获取有关文件的各种信息。因为它已经包含在GNU核心实用程序包中,所以您不需要在系统上安装任何附加包就可以使用...
当主流Linux发行版采用systemd时,异议者会分叉分发并启动新项目。那么,如果您正在寻找非系统发行版,您有什么选择?我们来看看。 系统D:快速回顾 在历史上,Linux系统中的启动序列是systemv Unix(SysV)引入的初始化系统...
...。然而,其他的并不普遍。例如,hostnamectl只适用于基于systemd的发行版。 不过,不管您面对的是哪种发行版,下面至少有一种方法对您有效。 l**\u释放命令 当我们测试这个命令时,l**èu release命令已经安装在Ubuntu和Manjaro上,但...
需要在引导时启动Linux程序吗?systemd软件提供了一种方法,可以在任何Linux发行版上使用systemd来完成这一操作,而systemd是目前大多数版本的版本,包括Ubuntu。我们将带领您完成创建集成服务的过程,甚至与杂志进行对话。 本教...
systemd已经有10年的历史了,但是Linux社区对它的感觉还没有成熟,它现在和以前一样具有分裂性。尽管许多主要的Linux发行版都使用它,但铁杆反对者并没有松懈。 linux引导序列 打开计算机电源后,硬件将引导,然后(根据计...