小编Tom*_*che的帖子

删除特定接口的默认路由的正确语法?

概括:

me@client:~$ sudo route del default ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del default dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default gw 10.144.15.234 dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default netmask 128.0.0.0 gw 10.144.15.234 dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default gw 0.0.0.0 dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo …
Run Code Online (Sandbox Code Playgroud)

networking route network-interface

12
推荐指数
1
解决办法
8万
查看次数

'PermitRootLogin no' 时远程 root 拥有的文件的脚本副本

我正在设置一个带有“PermitRootLogin no”的云节点(仅可通过 ssh 访问,不推荐使用 GUI,运行 Debian 7)以确保安全。对于某些应用程序,我想将一些 root 拥有的配置文件从远程复制到本地(例如,设置本地客户端)。而且,为了可重复性,我想编写这个脚本(已经从格式错误的命令行中处理了几次)。考虑到“PermitRootLogin no”(并且没有物理访问权限),启用sudo 从脚本远程获取的最佳实践是什么(并且,是的,我知道我会输入密码 -完全非交互性会很好,但不是必需的) )?我尝试过的一些事情:

(1) scp: 失败,因为我不知道scp我想要sudo远程。(AFAICS--我错过了什么吗?)

(2) 裸体rsync-path:我试过了

me@local ~ $ rsync --rsync-path='sudo rsync' remote:/path/to/file ${HOME}/backups/cloud_9/path/to/file
X11 forwarding request failed on channel 0
sudo: no tty present and no askpass program specified
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
...
Run Code Online (Sandbox Code Playgroud)

可以启用非图形询问通行证吗?Casual DuckDuckGo -ing 没找到。Note rsync-path will (IIRC) 与 'visiblepw' 一起工作,但不能裸露/没有。

(3) sudoers.d/visiblepw: 找到 DDG

http://www.sudo.ws/pipermail/sudo-users/2009-August/004142.html …
Run Code Online (Sandbox Code Playgroud)

ssh remote sudo

5
推荐指数
1
解决办法
831
查看次数

如何对 Debian 软件包进行版本特定的备份/恢复?

概括

请注意version-specific问题标题!这个问题不是,如何

  1. 在一台 Debian 主机上,捕获所有已安装软件包的列表。
  2. 在另一台 Debian 主机上,安装列出的软件包的最新版本。

这个问题更确切地说是如何

  1. 在某个时间点的 Debian 主机上,
    1. 捕获包含以下内容的 映射
      • 每个已安装包的名称
      • 当前安装的每个软件包的版本
    2. ... 所需的任何附加数据
  2. 稍后在同一主机上恢复包映射,以便随后
    1. 仅安装包映射中的包
    2. 对于地图中的每个包,仅安装适当的版本

细节

动机

最近,我对我的一个 Debian 机器进行了一次“大更新”(即涉及大量软件包或内核等主要软件包,或两者兼而有之),但它没有“干净地”更新(即没有重大问题)。将来,当我对 Debian 机器应用错误更新时,我希望能够将(a)同一机器上设置的软件包(b)回滚到以前的版本。(之前没有进行图像备份,这很慢。)不幸的是我不知道该怎么做。我知道如何

  1. 在一个 Debian 机器上,捕获其已安装软件包集中的每个软件包名称的列表。
  2. 在另一个框中,安装列表中每个软件包的最新版本。

感谢许多讨论如何做到这一点的网页,包括几个 SE。大多数(包括这个这个这个)都会或多或少地进行复杂的变化

  1. 备份: dpkg --get-selections > ${PACKAGE_LIST_FILEPATH}
  2. 恢复: dpkg --set-selections < ${PACKAGE_LIST_FILEPATH}

可能是关于这个主题的最全面的(也是最脚本化的,我更喜欢的)SE 是这个:它是少数几个推荐备份存储库列表(使用cp -R /etc/apt/sources.list*)和存储库密钥(使用apt-key exportall)的 SE 之一,但它也使用dpkg上面的方法。此 SE建议使用aptitude …

backup debian package-management restore

5
推荐指数
1
解决办法
2355
查看次数

如何解释“cryptsetup benchmark”的结果?

总结:我可以cryptsetup benchmark对结果进行运行和排序,但在解释时寻求指导。例如,我应该更重视加密速度还是解密速度?密钥派生速度是否应该覆盖?我的用例应该如何影响我如何衡量/解释结果?

感谢指向文档的指针:我已经进行了网络搜索,但没有看到任何明确的外观。特别是,这似乎不是

细节:

我准备在 2007 年左右的笔记本电脑上重新安装操作系统(因此大概没有处理器支持 AES),这次是使用 LUKS+LVM2。(这是我剩下的一个盒子Plain Old Partitions。)我没有时间运行序列的几个循环[安装 LUKS+LVM2+OS,运行一个真正的磁盘基准测试,测量结果],尽管这显然会提供更多的经验指导。相反,我试图选择一个合理的(甚至是最佳的 :-) LUKS 密码规范字符串“cryptsetup benchmark预先”使用,尽管我知道“无法直接预测真实的存储加密速度”[2]。

当此框运行时,sudo cryptsetup benchmark它会输出(在调整以标记和分离问题并按速度降低排序后):

# key derivation:
PBKDF2-sha1       557753 iterations per second
PBKDF2-sha256     356173 iterations per second
PBKDF2-ripemd160  336082 iterations per second
PBKDF2-sha512     256000 iterations per second
PBKDF2-whirlpool  112219 iterations per second

# encryption:
#  Algorithm | Key |  Encryption 
 serpent-xts   512b   144.7 MiB/s     
 serpent-xts   256b   144.0 MiB/s     
 twofish-xts   256b …
Run Code Online (Sandbox Code Playgroud)

benchmark luks cryptsetup

5
推荐指数
1
解决办法
2万
查看次数

“一次写入存档”:ext2 vs ext4^has_journal vs

概括

假设一个人正在将一个外部驱动器设置为“一次写入存档”:一个人打算重新格式化它,复制一些(希望)永远不会更新的文件,然后将其放在一边,直到我需要阅读某些内容(这可能是很长一段时间或永​​远不会)来自另一个Linux机器的存档。我还希望能够在存档中获得尽可能多的文件空间;即,我希望文件系统为其自身目的消耗尽可能少的可用空间。

特定问题 1:哪个文件系统更适合此用例:ext2 或 ext4 没有日志记录?

由于我以前从未做过后者(我通常用GParted做这种事情),为了确定:

具体问题 2:是安装无日志 ext4 的“方式”mke2fs -t ext4 -O ^has_journal /dev/whatever吗?

一般问题 3:这个用例有更好的文件系统吗?还是完全不同的东西?

细节

我在各种外部驱动器上保存了来自死盒(因此永远不会更新)上的旧项目的一堆文件。总大小(文件)~= 250 GB。这对于 DVD 来说太大了(即,需要太多——除非我遗漏了什么),而且我没有磁带驱动器。因此,我正在设置一个旧的 USB2 HFS 外部驱动器作为他们的存档。我更喜欢使用“真正的 Linux”文件系统,但也更喜欢一个文件系统

  1. 占用存档驱动器上的最小空间(因为它几乎不足以容纳我想要放在上面的东西。
  2. 可以从我将来使用的任何(大概是 Linux)盒子中读取。

我计划使用 GParted 执行以下顺序:[删除旧分区,创建单个新分区,创建 ext2 文件系统,重新标记]。但是,我读到这里

recent Linux kernels support a journal-less mode of ext4
which provides benefits not found with ext2
Run Code Online (Sandbox Code Playgroud)

并注意到以下文字 man mkfs.ext4

"mke2fs -t ext3 -O ^has_journal /dev/hdXX"
will create a filesystem that does not have a …
Run Code Online (Sandbox Code Playgroud)

filesystems backup ext4 ext2 journaling

5
推荐指数
1
解决办法
1365
查看次数

新的十年:如何说出类似`find /path/ -name 'file.20{19,20}*'`(但有效)

概括:

  1. 一个给定的系统有很多带有名称的文本文件~= [type of file].[8-digit date]
  2. 要搜索这些文件,我喜欢(并想保留)使用以下习语:(find /path/ -name 'file.nnnn*' -print | xargs -e fgrep -nH -e 'text I seek'其中nnnn== 4 位数字年份)
  3. ......在过去的十年里,我也findfind /path/ -name 'file.201[89]*' -print | xargs ...
  4. ...但现在我无法find在 2019 年和 2020 年与find /path/ -name 'file.20{19,20}*' -print | xargs ...
  5. ...虽然“花括号通配符”(正确的术语?)与ls!

是否有一种{简洁、优雅}的方式来告诉find我想要什么,而无需进行后期find清理(​​即我现在正在做的事情)à la

find /path/ -name 'file.*' -print | grep -e '\.2019\|\.2020' | xargs ...
Run Code Online (Sandbox Code Playgroud)

? FWIW,我更喜欢与xargs.

细节: …

find gnu wildcards

3
推荐指数
2
解决办法
763
查看次数

如何在本地重新定义'command_not_found_handle'?

我想让一个特定的 bash 脚本在找不到命令时快速失败,同时在全局范围内保留通常友好的 command_not_found 行为。例如,如果我将以下内容保存到/tmp/foo.sh...

# ----------------------------start foo.sh----------------------------
THIS_FP="$0"
THIS_FN="$(basename ${THIS_FP})"
THIS_DIR="$(dirname ${THIS_FP})"

function setup {
  for CMD in \
    'foo' \
  ; do
    echo -e "\n$ ${THIS_FN}::${FUNCNAME[0]}::${CMD}"
    eval "${CMD}"
  done
} # end function setup

function teardown {
  for CMD in \
    "ls -alt ${THIS_DIR} | head" \
  ; do
    echo -e "\n$ ${THIS_FN}::${FUNCNAME[0]}::${CMD}"
    eval "${CMD}"
  done
} # end function teardown

for CMD in \
  'setup' \
  'teardown' \
; do
  echo -e "\n$ ${THIS_FN}::main loop::${CMD}" …
Run Code Online (Sandbox Code Playgroud)

bash function error-handling command-not-found

2
推荐指数
1
解决办法
3050
查看次数

为什么“find -xdev”显示所有分区上的目录?

在研究另一个问题时,我注意到(添加了注释)

\n\n
me@it: ~ $ date ; sudo find / -maxdepth 1 -xdev -type d | grep -ve '/$' | sort\nThu Aug 31 14:58:25 MST 2017\n/bin\n/boot         [*]\n/.config\n/dev\n/etc\n/home         [*]\n/lib\n/lib64\n/lost+found\n/media\n/mnt\n/opt\n/proc\n/root\n/run\n/sbin\n/srv\n/sys\n/tmp\n/usr\n/var\n
Run Code Online (Sandbox Code Playgroud)\n\n

不过我也知道

\n\n
me@it: ~ $ date ; lsblk\nThu Aug 31 14:52:58 MST 2017\nNAME                  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT\nsda                     8:0    0 465.8G  0 disk\n\xe2\x94\x9c\xe2\x94\x80sda1                  8:1    0  16.6G  0 part\n\xe2\x94\x9c\xe2\x94\x80sda2                  8:2    0  97.7G  0 part\n\xe2\x94\x9c\xe2\x94\x80sda3                  8:3    0   500M  0 part  /boot  [*]\n\xe2\x94\x9c\xe2\x94\x80sda4                  8:4    0     1K  0 part\n\xe2\x94\x94\xe2\x94\x80sda5                  8:5    0   351G  0 part\n …
Run Code Online (Sandbox Code Playgroud)

filesystems partition find

2
推荐指数
1
解决办法
1万
查看次数