SK 发布的文章

Make Raspberry Pi Images Smaller With PiShrink In Linux

树莓派不需要过多介绍。它是一款小巧、价格实惠,只有信用卡大小的电脑,它可以连接到显示器或电视。我们可以连接一个标准的键盘和鼠标,并将其用作一台成熟的台式计算机来完成日常任务,如互联网浏览、播放视频/玩游戏、文字处理和电子表格制作等。它主要是为学校的计算机科学教学而开发的。如今,树莓派被广泛用于大学、中小型组织和研究所来教授编码。

如果你有一台树莓派,你可能需要了解一个名为 PiShrink 的 bash 脚本,该脚本可使树莓派镜像更小。PiShrink 将自动缩小镜像,然后在启动时将其调整为 SD 卡的最大大小。这能更快地将镜像复制到 SD 卡中,同时缩小的镜像将更好地压缩。这对于将大容量镜像放入 SD 卡非常有用。在这个简短的指南中,我们将学习如何在类 Unix 系统中将树莓派镜像缩小到更小。

安装 PiShrink

要在 Linux 机器上安装 PiShrink,请先使用以下命令下载最新版本:

$ wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh

接下来,将下载的 PiShrink 变成二进制可执行文件:

$ chmod +x pishrink.sh

最后,移动到目录:

$ sudo mv pishrink.sh /usr/local/bin/

使树莓派镜像更小

你可能已经知道,Raspbian 是所有树莓派型号的官方操作系统。树莓派基金会为 PC 和 Mac 开发了树莓派桌面版本。你可以创建一个 live CD,并在虚拟机中运行它,甚至也可以将其安装在桌面上。树莓派也有少量非官方​​操作系统镜像。为了测试,我从官方下载页面下载了官方的 Raspbian 系统。

解压下载的系统镜像:

$ unzip 2019-04-08-raspbian-stretch-lite.zip

上面的命令将提取当前目录中 2019-04-08-raspbian-stretch-lite.zip 文件的内容。

让我们看下提取文件的实际大小:

$ du -h 2019-04-08-raspbian-stretch-lite.img
1.7G 2019-04-08-raspbian-stretch-lite.img

如你所见,提取的树莓派系统镜像大小为 1.7G。

现在,使用 PiShrink 缩小此文件的大小,如下所示:

$ sudo pishrink.sh 2019-04-08-raspbian-stretch-lite.img

示例输出:

Creating new /etc/rc.local
rootfs: 39795/107072 files (0.1% non-contiguous), 239386/428032 blocks
resize2fs 1.45.0 (6-Mar-2019)
resize2fs 1.45.0 (6-Mar-2019)
Resizing the filesystem on /dev/loop1 to 280763 (4k) blocks.
Begin pass 3 (max = 14)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 4 (max = 3728)
Updating inode references XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/loop1 is now 280763 (4k) blocks long.

Shrunk 2019-04-08-raspbian-stretch-lite.img from 1.7G to 1.2G

正如你在上面的输出中看到的,树莓派镜像的大小已减少到 1.2G。

你还可以使用 -s 标志跳过该过程的自动扩展部分。

$ sudo pishrink.sh -s 2019-04-08-raspbian-stretch-lite.img newpi.img

这将创建一个源镜像文件(即 2019-04-08-raspbian-stretch-lite.img)的副本到一个新镜像文件(newpi.img)并进行处理。有关更多详细信息,请查看最后给出的官方 GitHub 页面。

就是这些了。希望本文有用。还有更多好东西,敬请期待!

资源:


via: https://www.ostechnix.com/pishrink-make-raspberry-pi-images-smaller/

作者:sk 选题:lujun9972 译者:geekpi 校对:wxy

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

Duc:一个能够洞察并可视化硬盘使用情况的工具包

Duc 是一个在类 Unix 操作系统上可以用来索引、洞察及可视化硬盘使用情况的工具包。别把它当成一个仅能用漂亮图表展现硬盘使用情况的 CLI 工具。它对巨大的文件系统也支持的很好。Duc 已在由超过五亿个文件和几 PB 的存储组成的系统上测试过,没有任何问题。

Duc 是一个快速而且灵活的工具。它将你的硬盘使用情况存在一个优化过的数据库里,这样你就可以在索引完成后迅速找到你的数据。此外,它自带不同的用户交互界面与后端以访问数据库并绘制图表。

以下列出的是目前支持的用户界面(UI):

  1. 命令行界面(duc ls
  2. Ncurses 控制台界面(duc ui
  3. X11 GUI(duc gui
  4. OpenGL GUI(duc gui

支持的后端数据库:

  • Tokyocabinet
  • Leveldb
  • Sqlite3

Duc 默认使用 Tokyocabinet 作为后端数据库。

安装 Duc

Duc 可以从 Debian 以及其衍生品例如 Ubuntu 的默认仓库中获取。因此在基于 DEB 的系统上安装 Duc 是小菜一碟。

$ sudo apt-get install duc

在其它 Linux 发行版上你需要像以下所展示的那样手动从源代码编译安装 Duc。

可以从 Github 上的发行页面下载最新的 Duc 源代码的 .tgz 文件。在写这篇教程的时候,最新的版本是1.4.4。

$ wget https://github.com/zevv/duc/releases/download/1.4.4/duc-1.4.4.tar.gz

然后一个接一个地运行以下命令来安装 DUC。

$ tar -xzf duc-1.4.4.tar.gz
$ cd duc-1.4.4
$ ./configure
$ make
$ sudo make install

使用 Duc

duc 的典型用法是:

$ duc <subcommand> <options>

你可以通过运行以下命令来浏览总的选项列表以及子命令:

$ duc help

你也可以像下面这样了解一个特定子命令的用法。

$ duc help <subcommand>

要查看所有命令与其选项的列表,仅需运行:

$ duc help --all

让我们看看一些 duc 工具的特定用法。

创建索引(数据库)

首先,你需要创建一个你文件系统的索引文件(数据库)。使用 duc index 命令以创建索引文件。

比如说,要创建你的 /home 目录的索引,仅需运行:

$ duc index /home

上述命令将会创建你的 /home 目录的索引,并将其保存在 $HOME/.duc.db 文件中。如果你以后需要往 /home 目录添加新的文件或目录,只要在之后重新运行一下上面的命令来重建索引。

查询索引

Duc 有不同的子命令来查询并探索索引。

要查看可访问的索引列表,运行:

$ duc info

示例输出:

Date Time Files Dirs Size Path
2019-04-09 15:45:55 3.5K 305 654.6M /home

如你在上述输出所见,我已经索引好了 /home 目录。

要列出当前工作目录中所有的文件和目录,你可以这样做:

$ duc ls

要列出指定的目录,例如 /home/sk/Downloads 中的文件/目录,仅需像下面这样将路径作为参数传过去。

$ duc ls /home/sk/Downloads

类似的,运行 duc ui 命令来打开基于 ncurses 的控制台用户界面以探索文件系统使用情况,运行duc gui 以打开图形界面(X11)来探索文件系统。

要了解更多子命令的用法,仅需参考帮助部分。

$ duc help ls

上述命令将会展现 ls 子命令的帮助部分。

可视化硬盘使用状况

在之前的部分我们以及看到如何用 duc 子命令列出文件和目录。在此之外,你甚至可以用一张漂亮的图表展示文件大小。

要展示所提供目录的图表,像以下这样使用 ls 子命令。

$ duc ls -Fg /home/sk

示例输出:

使用 “duc ls” 命令可视化硬盘使用情况

如你在上述输出所见,ls 子命令查询 duc 数据库并列出了所提供目录包含的文件与目录的大小,在这里就是 /home/sk/

这里 -F 选项是往条目中用来添加文件类型指示符(/),-g 选项是用来绘制每个条目相对大小的图表。

请注意如果未提供任何路径,就会使用当前工作目录。

你可以使用 -R 选项来用树状结构浏览硬盘使用情况。

$ duc ls -R /home/sk

用树状结构可视化硬盘使用情况

要查询 duc 数据库并打开基于 ncurses 的控制台以探索所提供的目录,像以下这样使用 ui 子命令。

$ duc ui /home/sk

类似的,我们使用 gui * 子命令来查询 duc 数据库以及打开一个图形界面(X11)来了解指定路径的硬盘使用情况。

$ duc gui /home/sk

像我之前所提到的,我们可以像下面这样了解更多关于特定子命令的用法。

$ duc help <子命令名字>

我仅仅覆盖了基本用法的部分,参考 man 页面了解关于 duc 工具的更多细节。

$ man duc

相关阅读:

总结

Duc 是一款简单却有用的硬盘用量查看器。如果你想要快速简便地知道哪个文件/目录占用你的硬盘空间,Duc 可能是一个好的选择。你还等什么呢?获取这个工具,扫描你的文件系统,摆脱无用的文件/目录。

现在就到此为止了。希望这篇文章有用处。更多好东西马上就到。保持关注!

欢呼吧!

资源:


via: https://www.ostechnix.com/duc-a-collection-of-tools-to-inspect-and-visualize-disk-usage/

作者:sk 选题:lujun9972 译者:tomjlw 校对:wxy

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

如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间。你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名、主机名、SSH 端口号和 IP 地址等。此外,它避免了在 SSH 到 Linux 服务器时重复输入相同的用户名、主机名、IP 地址、端口号。

在 Linux 中创建 SSH 别名

在我知道这个技巧之前,我通常使用以下任意一种方式通过 SSH 连接到远程系统。

使用 IP 地址:

$ ssh 192.168.225.22

或使用端口号、用户名和 IP 地址:

$ ssh -p 22 [email protected]

或使用端口号、用户名和主机名:

$ ssh -p 22 [email protected]

这里

  • 22 是端口号,
  • sk 是远程系统的用户名,
  • 192.168.225.22 是我远程系统的 IP,
  • server.example.com 是远程系统的主机名。

我相信大多数 Linux 新手和(或一些)管理员都会以这种方式通过 SSH 连接到远程系统。但是,如果你通过 SSH 连接到多个不同的系统,记住所有主机名或 IP 地址,还有用户名是困难的,除非你将它们写在纸上或者将其保存在文本文件中。别担心!这可以通过为 SSH 连接创建别名(或快捷方式)轻松解决。

我们可以用两种方法为 SSH 命令创建别名。

方法 1 – 使用 SSH 配置文件

这是我创建别名的首选方法。

我们可以使用 SSH 默认配置文件来创建 SSH 别名。为此,编辑 ~/.ssh/config 文件(如果此文件不存在,只需创建一个):

$ vi ~/.ssh/config

添加所有远程主机的详细信息,如下所示:

Host webserver
    HostName 192.168.225.22
    User sk

Host dns
    HostName server.example.com
    User root

Host dhcp
    HostName 192.168.225.25
    User ostechnix
    Port 2233

使用 SSH 配置文件在 Linux 中创建 SSH 别名

HostHostnameUserPort 配置的值替换为你自己的值。添加所有远程主机的详细信息后,保存并退出该文件。

现在你可以使用以下命令通过 SSH 进入系统:

$ ssh webserver
$ ssh dns
$ ssh dhcp

就是这么简单!

看看下面的截图。

使用 SSH 别名访问远程系统

看到了吗?我只使用别名(例如 webserver)来访问 IP 地址为 192.168.225.22 的远程系统。

请注意,这只使用于当前用户。如果要为所有用户(系统范围内)提供别名,请在 /etc/ssh/ssh_config 文件中添加以上行。

你还可以在 SSH 配置文件中添加许多其他内容。例如,如果你已配置基于 SSH 密钥的身份验证,说明 SSH 密钥文件的位置,如下所示:

Host ubuntu
    HostName 192.168.225.50
    User senthil
    IdentityFIle ~/.ssh/id_rsa_remotesystem

确保已使用你自己的值替换主机名、用户名和 SSH 密钥文件路径。

现在使用以下命令连接到远程服务器:

$ ssh ubuntu

这样,你可以添加希望通过 SSH 访问的任意多台远程主机,并使用别名快速访问它们。

方法 2 – 使用 Bash 别名

这是创建 SSH 别名的一种应急变通的方法,可以加快通信的速度。你可以使用 alias 命令使这项任务更容易。

打开 ~/.bashrc 或者 ~/.bash_profile 文件:

alias webserver='ssh [email protected]'
alias dns='ssh [email protected]'
alias dhcp='ssh [email protected] -p 2233'
alias ubuntu='ssh [email protected] -i ~/.ssh/id_rsa_remotesystem'

再次确保你已使用自己的值替换主机、主机名、端口号和 IP 地址。保存文件并退出。

然后,使用命令应用更改:

$ source ~/.bashrc

或者

$ source ~/.bash_profile

在此方法中,你甚至不需要使用 ssh 别名 命令。相反,只需使用别名,如下所示。

$ webserver
$ dns
$ dhcp
$ ubuntu

这两种方法非常简单,但对于经常通过 SSH 连接到多个不同系统的人来说非常有用,而且非常方便。使用适合你的上述任何一种方法,通过 SSH 快速访问远程 Linux 系统。

建议阅读:

目前这就是全部了,希望它对你有帮助。更多好东西要来了,敬请关注!

干杯!


via: https://www.ostechnix.com/how-to-create-ssh-alias-in-linux/

作者:sk 选题:lujun9972 译者:MjSeven 校对:wxy

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

Kindd - A Graphical Frontend To dd Command

前不久,我们已经学习如何在类 Unix 系统中 使用 dd 命令创建可启动的 ISO。请记住,dd 命令是最具危险性和破坏性的命令之一。如果你不确定你实际在做什么,你可能会在几分钟内意外地擦除你的硬盘数据。dd 命令仅仅从 if 参数获取数据,并写入数据到 of 参数。它将不关心它正在覆盖什么,它也不关心是否在磁道上有一个分区表,或一个启动扇区,或者一个家文件夹,或者任何重要的东西。它将简单地做它被告诉去做的事。如果你是初学者,一般地尝试避免使用 dd 命令来做实验。幸好,这有一个支持 dd 命令的简单的 GUI 实用程序。向 “Kindd” 问好,一个属于 dd 命令的图形化前端。它是自由开源的、用 Qt Quick 所写的工具。总的来说,这个工具对那些对命令行不适应的初学者是非常有用的。

它的开发者创建这个工具主要是为了提供:

  1. 一个用于 dd 命令的现代化的、简单而安全的图形化用户界面,
  2. 一种简单地创建可启动设备的图形化方法,而不必使用终端。

安装 Kindd

Kindd 在 AUR 中是可用的。所以,如果你是 Arch 用户,使用任一的 AUR 助手工具来安装它,例如 Yay

要安装其 Git 发布版,运行:

$ yay -S kindd-git

要安装正式发布版,运行:

$ yay -S kindd

在安装后,从菜单或应用程序启动器启动 Kindd。

对于其它的发行版,你需要从源文件手动编译和安装它,像下面所示。

确保你已经安装下面的必要条件。

  • git
  • coreutils
  • polkit
  • qt5-base
  • qt5-quickcontrols
  • qt5-quickcontrols2
  • qt5-graphicaleffects

一旦所有必要条件安装,使用 git 克隆 Kindd 储存库:

git clone https://github.com/LinArcX/Kindd/

转到你刚刚克隆 Kindd 的目录,并编译和安装它:

cd Kindd
qmake
make

最后运行下面的命令来启动 Kindd 应用程序:

./kindd

Kindd 内部使用 pkexec。pkexec 代理被默认安装在大多数桌面环境中。但是,如果你使用 i3 (或者可能还有一些其它的桌面环境),你应该首先安装 polkit-gnome ,然后粘贴下面的行到 i3 配置文件:

exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &

使用 Kindd 创建可启动的 ISO

为从一个 ISO 创建一个可启动的 USB,插入 USB 驱动器。然后,从菜单或终端启动 Kindd 。

这是 Kindd 默认界面的外观:

Kindd 界面

正如你所能看到的,Kindd 界面是非常简单的和明白易懂的。这里仅有两部分,即设备列表,它显示你的系统上的可用的设备(hdd 和 Usb),并创建可启动的 .iso 。默认情况下,你将在“创建可启动 .iso”部分。

在第一列中输入块大小,在第二列中选择 ISO 文件的路径,并在第三列中选择正确的设备(USB 驱动器路径)。单击“转换/复制”按钮来开始创建可启动的 ISO 。

一旦进程被完成,你将看到成功的信息。

现在,拔出 USB 驱动器,并用该 USB 启动器启动你的系统,来检查它是否真地工作。

如果你不知道真实的设备名称(目标路径),只需要在列出的设备上单击,并检查 USB 驱动器名称。

Kindd 还处在早期开发阶段。因此,可能有错误。如果你找到一些错误,请在这篇的指南的结尾所给的 GitHub 页面报告它们。

这就是全部。希望这是有用的。更多的好东西将会来。敬请期待!

谢谢!

资源:

相关阅读:


via: https://www.ostechnix.com/kindd-a-graphical-frontend-to-dd-command/

作者:sk 选题:lujun9972 译者:robsean 校对:wxy

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

Ping Multiple Servers And Show The Output In Top-like Text UI

不久前,我们写了篇关于 fping 的文章,该程序能使我们能够同时 ping 多台主机。与传统的 ping 不同,fping 不会等待一台主机的超时。它使用循环法,这表示它将 ICMP Echo 请求发送到一台主机,然后转到另一台主机,最后一次显示哪些主机开启或关闭。今天,我们将讨论一个名为 pingtop 的类似程序。顾名思义,它会一次 ping 多台服务器,并在类似 top 的终端 UI 中显示结果。它是用 Python 写的自由开源程序。

安装 pingtop

可以使用 pip 安装 pingtoppip 是一个软件包管理器,用于安装用 Python 开发的程序。确保已在 Linux 中安装了 Python 3.7.x 和 pip。

要在 Linux 上安装 pip,请参阅以下链接。

安装 pip 后,运行以下命令安装 pingtop

$ pip install pingtop

现在让我们继续使用 pingtop ping 多个系统。

ping 多台服务器并在类似 top 的终端 UI 中显示

要 ping 多个主机/系统,请运行:

$ pingtop ostechnix.com google.com facebook.com twitter.com

现在,你将在一个漂亮的类似 top 的终端 UI 中看到结果,如下所示。

使用 pingtop ping 多台服务器

建议阅读:

我个人目前没有使用 pingtop 的情况。但我喜欢在这个在文本界面中展示 ping 命令输出的想法。试试看它,也许有帮助。

就是这些了。还有更多好东西。敬请期待!干杯!

资源:


via: https://www.ostechnix.com/ping-multiple-servers-and-show-the-output-in-top-like-text-ui/

作者:sk 选题:lujun9972 译者:geekpi 校对:wxy

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

虽然 Linux 的设计是安全的,但还是存在许多安全漏洞的风险,弱密码就是其中之一。作为系统管理员,你必须为用户提供一个强密码。因为大部分的系统漏洞就是由于弱密码而引发的。本教程描述了在基于 DEB 系统的 Linux,比如 Debian、Ubuntu、Linux Mint 等和基于 RPM 系统的 Linux,比如 RHEL、CentOS、Scientific Linux 等的系统下设置像密码长度密码复杂度密码有效期等密码策略。

在基于 DEB 的系统中设置密码长度

默认情况下,所有的 Linux 操作系统要求用户密码长度最少 6 个字符。我强烈建议不要低于这个限制。并且不要使用你的真实名称、父母、配偶、孩子的名字,或者你的生日作为密码。即便是一个黑客新手,也可以很快地破解这类密码。一个好的密码必须是至少 6 个字符,并且包含数字、大写字母和特殊符号。

通常地,在基于 DEB 的操作系统中,密码和身份认证相关的配置文件被存储在 /etc/pam.d/ 目录中。

设置最小密码长度,编辑 /etc/pam.d/common-password 文件;

$ sudo nano /etc/pam.d/common-password

找到下面这行:

password [success=2 default=ignore] pam_unix.so obscure sha512

在末尾添加额外的文字:minlen=8。在这里我设置的最小密码长度为 8

password [success=2 default=ignore] pam_unix.so obscure sha512 minlen=8

保存并关闭该文件。这样一来,用户现在不能设置小于 8 个字符的密码。

在基于 RPM 的系统中设置密码长度

在 RHEL、CentOS、Scientific Linux 7.x 系统中, 以 root 身份执行下面的命令来设置密码长度。

# authconfig --passminlen=8 --update

查看最小密码长度,执行:

# grep "^minlen" /etc/security/pwquality.conf

输出样例:

minlen = 8

在 RHEL、CentOS、Scientific Linux 6.x 系统中,编辑 /etc/pam.d/system-auth 文件:

# nano /etc/pam.d/system-auth

找到下面这行并在该行末尾添加:

password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8

如上设置中,最小密码长度是 8 个字符。

在基于 DEB 的系统中设置密码复杂度

此设置会强制要求密码中应该包含多少类型,比如大写字母、小写字母和其他字符。

首先,用下面命令安装密码质量检测库:

$ sudo apt-get install libpam-pwquality

之后,编辑 /etc/pam.d/common-password 文件:

$ sudo nano /etc/pam.d/common-password

为了设置密码中至少有一个大写字母,则在下面这行的末尾添加文字 ucredit=-1

password requisite pam_pwquality.so retry=3 ucredit=-1

设置密码中至少有一个小写字母,如下所示。

password requisite pam_pwquality.so retry=3 lcredit=-1

设置密码中至少含有其他字符,如下所示。

password requisite pam_pwquality.so retry=3 ocredit=-1

正如你在上面样例中看到的一样,我们设置了密码中至少含有一个大写字母、一个小写字母和一个特殊字符。你可以设置被最大允许的任意数量的大写字母、小写字母和特殊字符。

你还可以设置密码中被允许的字符类的最大或最小数量。

下面的例子展示了设置一个新密码中被要求的字符类的最小数量:

password requisite pam_pwquality.so retry=3 minclass=2

在基于 RPM 的系统中设置密码复杂度

在 RHEL 7.x / CentOS 7.x / Scientific Linux 7.x 中:

设置密码中至少有一个小写字母,执行:

# authconfig --enablereqlower --update

查看该设置,执行:

# grep "^lcredit" /etc/security/pwquality.conf

输出样例:

lcredit = -1

类似地,使用以下命令去设置密码中至少有一个大写字母:

# authconfig --enablerequpper --update

查看该设置:

# grep "^ucredit" /etc/security/pwquality.conf

输出样例:

ucredit = -1

设置密码中至少有一个数字,执行:

# authconfig --enablereqdigit --update

查看该设置,执行:

# grep "^dcredit" /etc/security/pwquality.conf

输出样例:

dcredit = -1

设置密码中至少含有一个其他字符,执行:

# authconfig --enablereqother --update

查看该设置,执行:

# grep "^ocredit" /etc/security/pwquality.conf

输出样例:

ocredit = -1

RHEL 6.x / CentOS 6.x / Scientific Linux 6.x systems 中,以 root 身份编辑 /etc/pam.d/system-auth 文件:

# nano /etc/pam.d/system-auth

找到下面这行并且在该行末尾添加:

password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1

如上设置中,密码必须要至少包含 8 个字符。另外,密码必须至少包含一个大写字母、一个小写字母、一个数字和一个其他字符。

在基于 DEB 的系统中设置密码有效期

现在,我们将要设置下面的策略。

  1. 密码被使用的最长天数。
  2. 密码更改允许的最小间隔天数。
  3. 密码到期之前发出警告的天数。

设置这些策略,编辑:

$ sudo nano /etc/login.defs

在你的每个需求后设置值。

PASS_MAX_DAYS 100
PASS_MIN_DAYS 0
PASS_WARN_AGE 7

正如你在上面样例中看到的一样,用户应该每 100 天修改一次密码,并且密码到期之前的 7 天开始出现警告信息。

请注意,这些设置将会在新创建的用户中有效。

为已存在的用户设置修改密码的最大间隔天数,你必须要运行下面的命令:

$ sudo chage -M <days> <username>

设置修改密码的最小间隔天数,执行:

$ sudo chage -m <days> <username>

设置密码到期之前的警告,执行:

$ sudo chage -W <days> <username>

显示已存在用户的密码,执行:

$ sudo chage -l sk

这里,sk 是我的用户名。

输出样例:

Last password change : Feb 24, 2017
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

正如你在上面看到的输出一样,该密码是无限期的。

修改已存在用户的密码有效期,

$ sudo chage -E 24/06/2018 -m 5 -M 90 -I 10 -W 10 sk

上面的命令将会设置用户 sk 的密码期限是 24/06/2018。并且修改密码的最小间隔时间为 5 天,最大间隔时间为 90 天。用户账号将会在 10 天后被自动锁定,而且在到期之前的 10 天前显示警告信息。

在基于 RPM 的系统中设置密码效期

这点和基于 DEB 的系统是相同的。

在基于 DEB 的系统中禁止使用近期使用过的密码

你可以限制用户去设置一个已经使用过的密码。通俗的讲,就是说用户不能再次使用相同的密码。

为设置这一点,编辑 /etc/pam.d/common-password 文件:

$ sudo nano /etc/pam.d/common-password

找到下面这行并且在末尾添加文字 remember=5

password        [success=2 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512 remember=5

上面的策略将会阻止用户去使用最近使用过的 5 个密码。

在基于 RPM 的系统中禁止使用近期使用过的密码

这点对于 RHEL 6.x 和 RHEL 7.x 和它们的衍生系统 CentOS、Scientific Linux 是相同的。

以 root 身份编辑 /etc/pam.d/system-auth 文件,

# vi /etc/pam.d/system-auth

找到下面这行,并且在末尾添加文字 remember=5

password     sufficient     pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

现在你了解了 Linux 中的密码策略,以及如何在基于 DEB 和 RPM 的系统中设置不同的密码策略。

就这样,我很快会在这里发表另外一天有趣而且有用的文章。在此之前请保持关注。如果您觉得本教程对你有帮助,请在您的社交,专业网络上分享并支持我们。


via: https://www.ostechnix.com/how-to-set-password-policies-in-linux/

作者:SK 选题:lujun9972 译者:liujing97 校对:wxy

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