分类 技术 下的文章

本快速教程介绍了在 Ubuntu 和其他发行版中使用 GNOME 桌面环境添加多时区时钟的步骤。

如果你的家人或同事在另一个国家,或者你居住在一个有多个时区的国家,那么了解时差就变得很重要。毕竟,你不想在凌晨 4 点打电话打扰别人。

一些 Linux 用户还会记下 UTC 时间,因为大多数服务器都使用 UTC。

如果你有多个时钟,那么可以更好地管理此类情况。你可以将一个时钟设置为本地时间,并将其他时钟同步到其他时区。这使得了解不同时间变得更加容易。

在本教程中,我将向你展示如何在 Ubuntu 和其他使用 GNOME 桌面环境的 Linux 发行版中添加其他时钟。

在 Ubuntu(以及其他使用 GNOME 的 Linux)中添加多个时区时钟

检查你正在使用的桌面环境。本教程仅适用于 GNOME 桌面。

要添加其他时钟,可以使用一个叫 GNOME Clocks 的小程序。

GNOME Clocks 是一个简单的应用,它可以显示多个位置的时间和日期。你也可以使用它来设置闹钟或计时器,它还包括秒表功能。

GNOME Clocks 存在于 Ubuntu 的 Universe 仓库中。因此,请确保首先启用 Universe 仓库

你可以在软件中心中搜索 “GNOME Clocks” 并从那里安装它。

Gnome Clocks Ubuntu Software Center

或者,你可以打开终端并使用以下命令来安装 GNOME Clocks:

sudo apt install gnome-clocks

如果你使用的是其他 Linux 发行版,那么请使用发行版的软件中心或软件包管理器来安装此程序。

安装后,请按 Super 键( Windows 键)并搜索 clocks:

Gnome Clocks App Search Ubuntu

启动程序,你应该会看到一个界面,提供一些选项,例如添加世界时钟、设置闹钟、使用秒表和计时器。

单击左上角的 “+” 号,它将为你提供搜索地理位置的选项。搜索、选择并添加。

Adding additional clocks

通过地理位置添加所需的时区后,你可以看到现在在消息托盘中添加了这个新时钟。它还显示了你当地时间与其他时区之间的时差。

Multiple clocks for multiple time zones

你可以使用 Super + M 键快速打开消息托盘。你可以掌握这些有用的 Ubuntu 快捷方式来节省时间。

如果要删除其他时钟,你可以从 GNOME Clocks 应用界面执行以下操作:

Remove Additional Clocks

你无法(在这里)删除当前时区并设置为其他时区。有其他方法更改 Linux 中的当前时区

我希望你喜欢这个快速技巧。欢迎提出问题和建议。


via: https://itsfoss.com/add-multiple-time-zones-ubuntu/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

手把手教你怎样以低成本的硬件和简易步骤搭建自己的社交网络。

近年来,社交网络已经革新了人们的生活习惯。人们每天都会使用社交频道与朋友和家人联系。但是涉及到隐私和数据安全时,仍有一些共同的问题。尽管社交网络创建了复杂的隐私策略来保护用户的信息,但如果你不想自己的信息被泄露,最好的办法还是把数据保存在自己的服务器上。

一个树莓派 — 多才多艺的 Raspbian Lite 版本就可以让你搭建很多有用的家庭服务(参照我的文章树莓派项目)。通过搜索开源软件你就可以实现一些令人痴迷的功能,你也可以用这个神奇的设备来感受那些功能。其中一个有趣的尝试就是在你的树莓派上安装 OSSN。

OSSN 是什么?

开源社交网络 OpenSource Social Network (OSSN)是用 PHP 写的一个快速开发社交网络软件,让你可以搭建自己的社交网站。OSSN 可以用来搭建不同类型的社交应用,如:

  • 私人内部网
  • 公用/公开网络
  • 社区

OSSN 支持的功能:

  • 照片
  • 个人资料
  • 朋友圈
  • 表情
  • 搜索
  • 聊天

OSSN 运行在 LAMP 服务器上。硬件需求很简单,却能提供强大的用户界面,也友好支持移动端。

我们需要准备什么

这个项目很简单,而且由于我们只安装远程 Web 服务,因此我们只需要一些便宜的零件就够了。我使用的是树莓派 3B+,但是用树莓派 3A+ 或其他更新的板应该也可以。

硬件:

  • 带有电源模块的树莓派 3B+
  • 一张 SD 卡(最好是性能好点的卡,至少 16 GB)
  • 一台有 SFTP 软件(如免费的 Filezilla)的桌面 PC,用来把安装包传到你的树莓派上

操作步骤

我们首先搭建一个传统的 LAMP 服务器,然后配置数据库用户和安装 OSSN。

1、安装 Raspbian Buster Lite 操作系统

你可以直接参照我的文章在你的树莓派上安装 Raspbian Buster Lite

为了确保你的系统是最新的,ssh 登录到树莓派后在终端输入下面的命令:

sudo apt-get update
sudo apt-get upgrade

2、安装 LAMP 服务

LAMP(Linux–Apache–Mysql–Php)服务通常与 MySQL 数据库配合。在我们的项目中,我们选择 MariaDB,因为它更轻量,完美支持树莓派。

安装 Apache 服务:

sudo apt-get install apache2 -y

你可以通过在浏览器输入 http://<<YouRpiIPAddress>> 来检查 Apache 是否安装正确:

安装 PHP:

sudo apt-get install php -y

安装 MariaDB 服务和 PHP connector:

sudo apt-get install mariadb-server php-mysql -y

安装 phpMyAdmin:

在 OSSN 中 phpMyAdmin 不是强制安装的,但我建议你安装,因为它可以简化数据库的管理。

sudo apt-get install phpmyadmin

在 phpMyAdmin 配置界面,执行以下步骤:

  • 按下空格和 “OK” 选择 apache(强制)。
  • 在 dbconfig-common 选择“Yes”,配置 phpMyAdmin 的数据库。
  • 输入想设置的密码,按下 “OK”。
  • 再次输入 phpMyAdmin 密码来确认,按下 “OK”。

为 phpMyAdmin 用户添加数据库权限来管理数据库:

我们用 root 用户连接 MariaDB(默认没有密码)来设置权限。

sudo mysql -uroot -p
grant all privileges on *.* to 'phpmyadmin'@'localhost';
flush privileges;
quit

最后,重启 Apache 服务:

sudo systemctl restart apache2.service

在浏览器输入 http://<<YouRpiIPAddress>>/phpmyadmin/ 来检查 phpMyAdmin 是否正常:

默认的 phpMyAdmin 登录凭证:

  • 用户名:phpmyadmin
  • 密码:在 phpMyAdmin 安装步骤中你设置的密码

3、安装 OSSN 所需的其他包和配置 PHP

在第一次配置 OSSN 前,我们还需要在系统上安装一些所需的包:

  • PHP 版本 5.6、7.0 或 7.1
  • MYSQL 5 及以上
  • APACHE
  • MOD\_REWRITE
  • 需要打开 PHP 扩展 cURL 和 Mcrypt
  • PHP GD 扩展
  • PHP ZIP 扩展
  • 打开 PHP 设置 allow_url_fopen
  • PHP JSON 支持
  • PHP XML 支持
  • PHP OpenSSL

在终端输入以下命令来安装上述包:

sudo apt-get install php7.3-curl php7.3-gd php7.3-zip php7.3-json php7.3-xml

打开 mod\_rewrite:

sudo a2enmod rewrite

修改默认的 Apache 配置,使用 mod\_rewrite:

sudo nano /etc/apache2/sites-available/000-default.conf

000-default.conf 文件中添加下面的内容:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    # 需要添加的部分开始 --------------------------------
        <Directory /var/www/html>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Require all granted
        </Directory>
    # 需要添加的部分结束 --------------------------------
</VirtualHost>

安装 Mcrypt:

sudo apt install php-dev libmcrypt-dev php-pear
sudo pecl channel-update pecl.php.net
sudo pecl install mcrypt-1.0.2

打开 Mcrypt 模块:

/etc/php/7.3/apache2/php.ini 文件中 extension=mcrypt.so(或取消注释):

sudo nano /etc/php/7.3/apache2/php.ini

allow_url_fopen 应该已经在 /etc/php/7.3/apache2/php.ini 文件中打开了。OpenSSL 应该在 php7.3 中安装了。

我建议的另一个设置是把 PHP 最大上传文件数修改为 16 MB:

sudo nano /etc/php/7.3/apache2/php.ini

搜索到 upload_max_filesize 所在的行,参照下面的设置:

upload_max_filesize = 16M

保存并退出,重启 Apache:

sudo systemctl restart apache2.service

4、安装 OSSN

创建数据库,设置用户

回到 phpmyadmin web 页面(浏览器输入 http://<<YouRpiIPAddress>>/phpmyadmin/)并登录:

  • 用户名: phpmyadmin
  • 密码:在 phpMyAdmin 安装步骤中你设置的密码

点击数据库标签页:

创建一个数据库,记下数据库的名字,因为在之后的安装过程中,你要手动输入它。

现在为 OSSN 创建一个数据库用户,我使用下面的凭证:

  • 用户名: ossn_db_user
  • 密码: ossn_db_password

在终端输入下面的命令(如果你没有修改过密码,root 密码应该仍然是空):

sudo mysql -uroot -p
CREATE USER 'ossn_db_user'@'localhost' IDENTIFIED BY 'ossn_db_password';
GRANT ALL PRIVILEGES ON ossn_db.* TO 'ossn_db_user'@'localhost';
flush privileges;
quit
安装 OSSN 软件

在你 PC 上从 OSSN 下载页面 下载 OSSN 安装压缩文件,保存为文件 ossn-v5.2-1577836800.zip

使用你习惯的 SFTP 软件把整个压缩文件通过 SFTP 传到树莓派的新目录 /home/pi/download 下。常用的(默认)SFP 连接参数是:

  • 主机:你树莓派的 IP 地址
  • 用户名:pi
  • 密码:raspberry(如果没有修改过默认密码)
  • 端口: 22

在终端输入:

cd /home/pi/download/ # 进入上传的 OSSN 安装文件的目录。
unzip ossn-v5.2-1577836800.zip # 从压缩包中提取所有文件
cd /var/www/html/ # 进入 Apache Web 目录
sudo rm index.html # 删除 Apache 默认页面 - 我们将使用 OSSN
sudo cp -R /home/pi/download/ossn-v5.2-1577836800/* ./ #Copy installation files to web directory
sudo chown -R www-data:www-data ./

创建数据文件夹:OSSN 需要一个文件夹来存放数据。出于安全目的,OSSN 建议这个文件夹创建在公开文档根目录之外。所以,我们在 /opt 下创建。

sudo mkdir /opt/ossn_data
sudo chown -R www-data:www-data /opt/ossn_data/

在浏览器输入 http://<<YourRpiIPAddress>> 来开始安装向导。

所有项都检查完后,点击页面最下面的下一步按钮。

阅读证书验证并点击页面最下面的下一步按钮来接受证书。

输入数据库用户名,密码和你选择的数据库名字,记得也要输入 OSSN 数据文件夹名称。点击安装。

输入你的管理员账号信息,点击创建按钮。

现在所有的工作应该都完成了。点击结束,进入管理员首页。

你可以通过 URL http://<<YourRpiIPAddress>>/administrator 进入管理员控制面板,普通用户可以访问链接是 http://<<YourRpiIPAddress>>

本文首发在 peppe8o.com。已获得转载授权。


via: https://opensource.com/article/20/3/raspberry-pi-open-source-social

作者:Giuseppe Cassibba 选题:lujun9972 译者:lxbwolf 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LibreOffice 中为你经常使用的文档创建模板可以为你节省一些时间。它可以是信件、财务表格抑或是简报。

模板不仅可以为你节省时间,另一方面它可以保证在同一机构内参与统一项目的小组成员文档的一致性。

举例而言,如果你是一家需要经常开具工作经验证明的企业,你可以创建一个模板,而不再需要从某个地方复制粘贴已保存的文档。当你需要开具一个新的经验证明时,你可以从模板中创建,稍微编辑一下就可以了。

LibreOffice 默认情况下提供了一些模板,但并不仅仅局限于使用这些,你可以根据自己的需求自由定制。

我认为模板是每个用户都应该了解的 LibreOffice 基础技巧之一。下面我将为你演示如何使用。

如何在 LibreOffice 中创建一个模板

首先,创建你希望通过最少的编辑就可以重复使用的文档。它可以是文档、电子表格或演示文稿。我在示例中使用的是 word 文档,但是所有步骤都是相同的。

然后转到“文件”选项卡并选择“存储为模板”。你将被提示输入“名称”及选择“类别”,再单击“保存”。

Creating a new template in LibreOffice

此文件将以 .ots 格式保存在 LibreOffice 的模板文件夹中。你可以在其他安装了 LibreOffice 的系统上使用这些 .ots 文件,并在这些系统上使用相同的模板。

如何在 LibreOffice 中使用模板

要使用模板,请选择 “文件选项卡”,然后选择 “模板”。

不要担心! LibreOffice 在打开一个模板时会在不影响原始模板的情况下创建一个副本。你可以随意编辑文档而不必担心模板发生改动。

Using templates

选择模板后,单击打开。你就可以随意编辑了。

如何在 LibreOffice 中更改模板

我们需求可能会不时变化,所以需要对模板进行相应。

编辑一个现有的模板,单击“文件” -> “模板”,然后右键单击所需的模板,然后单击“编辑”。

edit Template

当你完成对模板的编辑时,单击“保存”以使更改生效。

总之,模板不仅可以减少重复任务的工作量,还可以防止用户出错。你可以利用电脑优势来灵活的处理重复性的任务,并以此提高你的效率。

福利小贴士

你可以在 LibreOffice 网站上找到大量的附加模板。你可以搜索你需要的,下载并使用它们。请注意,这些模板来自第三方和未经验证的用户。所以使用它们的风险需要自己承担。

之后我会继续分享更多这样的技巧。同时,你还可以学习一下如何创建模板在 GNOME 的右键菜单上下文中添加“创建新文档”选项


via: https://itsfoss.com/create-templates-libreoffice/

作者:Dimitrios Savvopoulos 选题:lujun9972 译者:qfzy1233 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

使用这些简单、经济高效的开源工具构建自己真正的私人聊天和消息解决方案。

互联网提供了大量免费的消息服务。像 WhatsApp 和 Viber 这样的应用已经是我们日常生活的一部分,也是我们与亲朋好友沟通的最常见方式。但是,安全意识的提高,让人们对真正的私密聊天解决方案的需求越来越大。此外,消息类应用在我们的设备中占用了大量空间,因此一个备用聊天渠道可能对于我们与朋友分享媒体、信息和联系人很有作用。

今天,我们将了解如何使用树莓派和 Rocket.Chat 安装一个私人聊天和消息服务器。

什么是 Rocket.Chat?

Rocket.Chat 是一个开源解决方案,它提供了一个增强的聊天服务。它包括媒体共享、屏幕共享和视频/音频呼叫支持等协作工具。

它可以通过浏览器或从所有主要应用商店(Google Play、App Store 等)下载使用。

除了社区版本外,Rocket.Chat 还提供企业版和专业版,包括支持和其他附加功能。

我们需要什么

对于这个项目,我将使用更便宜的树莓派 3A+。树莓派 3B 和 3B+ 以及树莓派 4B 应该也可以用同样的方法。

我也建议使用一块高性能 SD 卡,因为 Rocket.Chat 会给树莓派带来很大的负载。如其他文章中所述,高性能 SD 卡可显著提高 Raspbian 操作系统的性能。

我们将使用 Raspbian 的精简版本,拥有预配置的 WiFi 访问和 SSH 服务,因此不需要键盘或 HDMI 线缆。

分步过程

安装最新版本的 Raspbian Buster Lite 开始。

我们将使用 Snap 简化 Rocket.Chat 安装。通过 SSH 登录并从终端输入:

sudo apt-get update
sudo apt-get upgrade

安装 Snap:

sudo apt-get install snapd

安装 Snap 后,我们需要重启系统使其正常工作:

sudo reboot

再次通过 SSH 登录,并用以下简单的命令安装 Rocket.Chat:

sudo snap install rocketchat-server

从终端安装后,请等待一段时间,让 Rocket.Chat 初始化数据库和服务。休息一下,几分钟后,你应该能够在浏览器中访问 http://<<YOUR_RPI_IP_ADDRESS>>:3000,你应该看到以下内容:

 title=

填写所需的表单就可以了。经过四个简单的设置窗口后,你应该会进入 Rocket.Chat 主页:

 title=

享受吧!

本文最初发表在 peppe8o.com,并获许重新发布。


via: https://opensource.com/article/20/3/raspberry-pi-rocketchat

作者:Giuseppe Cassibba 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这篇教程向你展示如何在 Windows 和 Linux 中以最快的方式在 VirtualBox 上安装 Kali Linux。

Kali Linux最适合脆弱性测试和安全爱好者的 Linux 发行版 之一。

因为它涉及一个像黑客之类的敏感话题,就像一把双刃剑。我们过去在详细的 Kali Linux 评论中讨论过,所以我不会再次赘述。

虽然你可以通过替换现有的操作系统的形式安装 Kali Linux,但是通过虚拟机来使用它可能会是更好、更安全的选择。

使用 VirtualBox,你可以在 Windows/Linux 系统中将 Kail Linux 作为常规应用程序使用。这和在系统中运行 VLC 或游戏几乎是一样的。

在虚拟机中使用 Kali Linux 是安全的。不管你在 Kali Linux 做什么都不会影响你的 ‘宿主系统’(即你原来的 Windows 或 Linux 操作系统)。你的实际操作系统将不会受到影响,并且在你的宿主系统中数据也是安全的。

如何在 VirtualBox 中安装 Kali Linux

在这里我会使用 VirtualBox。它是一个非常好的开源虚拟化解决方案,几乎适合于任何人,无论是专业使用或个人使用。它是免费提供的。

在这篇文章中,我们将特别讨论 Kali Linux,但你也可以安装几乎任何其他的操作系统,只要有 ISO 文件或预建的虚拟机保存文件就可以安装。

注意:同样的步骤适用于运行 VirtualBox 的 Windows 或 Linux。

如上所述 ,你可以安装 Windows 或 Linux 作为你的宿主系统。但是,在我已安装 Windows 10 的情况下(别仇恨我!),我会尝试着在其上的 VirtualBox 中一步步地安装 Kali Linux 。

并且,最棒的是,即使你碰巧使用一个 Linux 发行版作为你的主要操作系统,也将使用同样的步骤!

想知道如何做?让我们来看看…

在 VirtualBox 上安装 Kali Linux 的分步指南

我们将使用一个专门为 VirtualBox 定制的 Kali Linux 镜像。你也可以下载 Kali Linux 的 ISO 文件,并创建一个新的虚拟机,但是当你有一个简单的选择时,为什么还这样做呢?

1、下载并安装 VirtualBox

第一件要做的事是从甲骨文的官方网站下载和安装 VirtualBox。

在你下载了安装器之后,只需要双击它来安装 VirtualBox。在 Ubuntu/Fedora Linux 安装 VirtualBox 也是一样的方式。

2、下载即用型的 Kali Linux 虚拟镜像

在安装成功后,前往 Offensive Security 的下载页面 来下载适用于 VirtualBox 的虚拟机镜像。如果你改变主意使用 VMware,那里也有适用的。

如你所见,文件大小大约 3 GB,你应该使用 torrent 方式,或者使用一个下载管理器来下载它。

3、在 Virtual Box 上安装 Kali Linux

当你安装 VirtualBox 并下载 Kali Linux 镜像后,你只需要将其导入到 VirtualBox 中就可以使其正常工作。

这里是如何导入 Kali Linux 的 VirtualBox 镜像:

步骤 1

启动 VirtualBox。你会看到一个 导入 Import 按钮,点击它。

点击导入按钮

步骤 2

接下来,浏览刚刚下载的文件,选择要导入的文件(如下图所示)。文件名应该以“kali linux”开始,以 .ova 扩展名结束。

导入 Kali Linux 镜像

选择后,单击 下一步 Next 继续进行。

步骤 3

现在,你会看到要导入的虚拟机的设置。所以,你可以自定义它们或者不自定义,这是你的选择。采用默认设置也是可以的。

你需要选择一个有足够可用存储空间的路径。在 Windows 上,我绝不建议使用 C: 盘。

将硬盘驱动器导入为  VDI

在这里,“将硬盘驱动器导入为 VDI”指的是通过分配存储器空间集来虚拟挂载硬盘驱动器。

在你完成设置后,单击 导入 Import ,等待一段时间。

步骤 4

你现在将看到它被列在虚拟机列表中。所以,只需点击 开始 Start 来启动它。

你可能会在开始时得到一个 USB 2.0 端口控制器的错误,你可以禁用它来解决问题,或者只需按照屏幕上的指示来安装一个附加软件包修复问题。然后就大功告成了!

Kali Linux 运行在 VirtualBox 中

以前 Kali Linux 中的默认用户名是 root,默认密码是 toor。但从 2020 年 1 月起,Kali Linux 就不使用 root 账号了。现在,默认账号和密码都是 kali。

你应该可以用它来登录系统了。

请注意,在尝试安装一个新的应用程序或尝试破解 WiFi 密码之前,请先更新 Kali Linux

我希望这篇指南能帮助您在 VirtualBox 上很容易地安装 Kali Linux。当然,Kali Linux 有很多有用的渗透测试工具 – 祝你好运!

提示 : Kali Linux 和 Ubuntu 都是基于 Debian 的,如果你在使用 Kali Linux 时遇到任何问题或错误,你可以按照互联网上的 Ubuntu 和 Debian 的教程解决。

奖励: 免费的 Kali Linux 指南书

如果你刚刚开始使用 Kali Linux, 那么了解如何使用 Kali Linux 就很有必要了。

Kali Linux 背后的公司 Offensive Security 制作了一本指南书,讲解了 Linux 的基础知识、Kali Linux 的基础知识、配置和设置,书中还有一些关于渗透测试和安全工具的章节。

基本上,它包含你上手 Kali Linux 所需要的一切东西。更重要的是,这本书可以免费下载。

如果你在 VirtualBox 上使用 Kali Linux 时遇到问题,请在下面的评论中告诉我们,或者直接分享你的经验。


via: https://itsfoss.com/install-kali-linux-virtualbox/

作者:Ankush Das 选题:lujun9972 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在 Linux 中,点文件是隐藏的文本文件,从 Bash、Git 到 i3 或 VSCode 等更复杂的许多应用程序,都用它存储配置设置。

这些文件大多数都放在 ~/.config 目录中或用户主目录中。编辑这些文件使你可以自定义也许没有提供设置菜单的应用程序,并且它们可以跨设备甚至是跨其它 Linux 发行版移植。但是,整个 Linux 发烧友社区的讨论焦点是如何管理这些点文件以及如何共享它们。

我们将展示一个名为 Chezmoi 的工具,该工具与其它工具略有不同。

点文件管理的历史

如果你在 GitHub 上搜索“dotfiles”,那么你将看到有超过 10 万个存储库在解决一个目标:将人们的点文件存储在可共享且可重复的领地中。但是,除了都在使用 Git 之外,它们存储文件的方式各有不同。

虽然 Git 解决了代码管理问题,也将其转换为配置文件管理,但它并没有解决如何区分发行版、角色(例如家用计算机与工作计算机)、机密信息管理以及按设备配置的问题。

因此,许多用户决定制定自己的解决方案,多年来,社区已经做出了许多成果。本文将简要介绍已有的一些解决方案。

在孤立的环境中进行实验

你想在封闭的环境中快速尝试以下解决方案吗?运行:

$ podman run --rm -it fedora

来创建一个 Fedora 容器尝试应用程序。退出容器时,该容器将自动删除自身。

安装问题

如果将点文件存储在 Git 存储库中,你肯定希望可以让更改轻松地自动应用到主目录之中,乍一看,最简单的方法是使用符号链接,例如 ln -s ~/.dotfies/bashrc ~/.bashrc。这可以使你的更改在更新存储库时立即就绪。

符号链接的问题在于管理符号链接可能很麻烦。Stow 和 RCM(在 Fedora 杂志上介绍过)可以帮助你管理这些,但是这些并不是非常舒服的解决方案。下载后,需要对私有文件进行适当的修改和设置访问模式。如果你在一个系统上修改了点文件,然后将存储库下载到另一个系统,则可能会发生冲突并需要进行故障排除。

解决此问题的另一种方法是编写自己的安装脚本。这是最灵活的选项,但要权衡花费更多时间来构建自定义解决方案是否值得。

机密信息问题

Git 旨在跟踪更改。如果你在 Git 存储库中存储密码或 API 密钥之类的机密信息,则会比较麻烦,并且需要重写 Git 历史记录以删除该机密信息。如果你的存储库是公开的,那么如果其他人下载了你的存储库,你的机密信息将不再保密。仅这个问题就会阻止许多人与公共世界共享其点文件。

多设备配置问题

问题不在于如何将配置拉到多个设备,而是当你有多个需要不同配置的设备的问题。大多数人通过使用不同的文件夹或使用不同的 复刻 fork 来处理此问题。这使得难以在不同设备和角色集之间共享配置。

Chezmoi 是如何干的

Chezmoi 是一种考虑了以上问题的用于管理点文件的工具,它不会盲目地从存储库复制或符号链接文件。 Chezmoi 更像是模板引擎,可以根据系统变量、模板、机密信息管理器和 Chezmoi 自己的配置文件来生成你的点文件。

Chezmoi 入门

目前,Chezmoi 并不在 Fedora 的默认软件库中。你可以使用以下命令下载 Chezmoi 的当前版本。

$ sudo dnf install https://github.com/twpayne/chezmoi/releases/download/v1.7.17/chezmoi-1.7.17-x86_64.rpm

这会将预打包的 RPM 安装到你的系统中。

让我们继续使用以下方法创建你的存储库:

$ chezmoi init

它将在 ~/.local/share/chezmoi/ 中创建你的新存储库。你可以使用以下命令轻松地切换到该目录:

$ chezmoi cd

让我们添加第一个文件:

chezmoi add ~/.bashrc

这将你的 .bashrc 文件添加到 chezmoi 存储库。

注意:如果你的 .bashrc 文件实际上是一个符号链接,则需要添加 -f 标志以跟随它来读取实际文件的内容。

现在,你可以使用以下命令编辑该文件:

$ chezmoi edit ~/.bashrc

现在让我们添加一个私有文件,这是一个具有 600 或类似权限的文件。我在 .ssh/config 中有一个文件,我想通过使用如下命令添加它:

$ chezmoi add ~/.ssh/config

Chezmoi 使用特殊的前缀来跟踪隐藏文件和私有文件,以解决 Git 的限制。运行以下命令以查看它:

$ chezmoi cd

请注意,标记为私有的文件实际上并不是私有的,它们仍会以纯文本格式保存在你的 Git 存储库中。稍后会进一步解释。

你可以使用以下方法应用任何更改:

$ chezmoi apply

并使用如下命令检查有什么不同:

$ chezmoi diff

使用变量和模板

要导出 Chezmoi 可以收集的所有数据,请运行:

$ chezmoi data

其中大多数是有关用户名、架构、主机名、操作系统类型和操作系统名称的信息。但是你也可以添加我们自己的变量。

继续,运行:

$ chezmoi edit-config

然后输入以下内容:

[data]
         email = "[email protected]"
         name = "Fedora Mcdora"

保存文件,然后再次运行 chezmoi data。你将在底部看到你的电子邮件和姓名已经添加成功。现在,你可以将这些与 Chezmoi 的模板一起使用。运行:

$ chezmoi add  -T --autotemplate ~/.gitconfig

来将你的 .gitconfig 作为模板添加到 Chezmoi 中。如果 Chezmoi 成功地正确推断了模板,你将获得以下信息:

[user]
         email = "{{ .email }}"
         name = "{{ .name }}"

如果没有,则可以将文件更改为这样。

使用以下方法检查文件:

$ chezmoi edit ~/.gitconfig

然后使用:

$ chezmoi cat ~/.gitconfig

来查看 Chezmoi 为此文件生成什么。我生成的示例如下:

[root@a6e273a8d010 ~]# chezmoi cat ~/.gitconfig
[user]
    email = "[email protected]"
    name = "Fedora Mcdora"
[root@a6e273a8d010 ~]#

它将在我们的 Chezmoi 配置中生成一个充满变量的文件。你也可以使用变量执行简单的逻辑语句。一个例子是:

{{- if eq .chezmoi.hostname "fsteel" }}
# 如果主机名为 "fsteel" 才包括此部分
{{- end }}

请注意,要使其正常工作,该文件必须是模板。你可以通过查看文件是否在 chezmoi cd 中的文件名后附加 .tmpl 或使用 -T 选项读取文件来进行检查。

让机密信息保持机密

要对设置进行故障排除,请使用以下命令。

$ chezmoi doctor

这里重要的是它还向你显示了所支持的密码管理器

[root@a6e273a8d010 ~]# chezmoi doctor
 warning: version dev
      ok: runtime.GOOS linux, runtime.GOARCH amd64
      ok: /root/.local/share/chezmoi (source directory, perm 700)
      ok: /root (destination directory, perm 550)
      ok: /root/.config/chezmoi/chezmoi.toml (configuration file)
      ok: /bin/bash (shell)
      ok: /usr/bin/vi (editor)
 warning: vimdiff (merge command, not found)
      ok: /usr/bin/git (source VCS command, version 2.25.1)
      ok: /usr/bin/gpg (GnuPG, version 2.2.18)
 warning: op (1Password CLI, not found)
 warning: bw (Bitwarden CLI, not found)
 warning: gopass (gopass CLI, not found)
 warning: keepassxc-cli (KeePassXC CLI, not found)
 warning: lpass (LastPass CLI, not found)
 warning: pass (pass CLI, not found)
 warning: vault (Vault CLI, not found)
 [root@a6e273a8d010 ~]#

你可以使用这些客户端,也可以使用通用客户端,也可以使用系统的密钥环

对于 GPG,你需要使用以下命令将以下内容添加到配置中:

$ chezmoi edit-config
[gpg]
   recipient = "<Your GPG keys Recipient"

你可以使用:

$ chezmoi add --encrypt

来添加任何文件,这些文件将在你的源存储库中加密,并且不会以纯文本格式公开。Chezmoi 会在应用时自动将其解密。

我们也可以在模板中使用它们。例如,存储在 Pass(已在 Fedora 杂志上介绍)中的机密令牌。继续,生成你的机密信息。

在此示例中,它称为 githubtoken

rwaltr@fsteel:~] $ pass ls
 Password Store
 └── githubtoken
 [rwaltr@fsteel:~] $

接下来,编辑你的模板,例如我们之前创建的 .gitconfig 并添加以下行。

token = {{ pass "githubtoken" }}

然后让我们使用检查:

$ chezmoi cat ~/.gitconfig
[rwaltr@fsteel:~] $ chezmoi cat ~/.gitconfig
 This is Git's per-user configuration file.
 [user]
           name = Ryan Walter
           email = [email protected]
           token = mysecrettoken
 [rwaltr@fsteel:~] $

现在,你的机密信息已在密码管理器中妥善保护,你的配置可以公开共享而没有任何风险!

最后的笔记

这里仅仅涉及到表面。请访问 Chezmoi 的网站了解更多信息。如果你正在寻找有关如何使用 Chezmoi 的更多示例,作者还可以公开了他的点文件


via: https://fedoramagazine.org/take-back-your-dotfiles-with-chezmoi/

作者:Ryan Walter 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出