小编loo*_*bee的帖子

获取 SSH 服务器密钥指纹

有没有办法以编程方式获取 SSH 服务器密钥指纹而不对其进行身份验证

我正在尝试ssh -v user@host false 2>&1 | grep "Server host key",但如果未设置基于密钥的身份验证,则会挂起等待密码。

ssh

119
推荐指数
6
解决办法
17万
查看次数

在我的猫的帮助下更改文件的权限

root@system:~# less myfile
-bash: /bin/less: Input/output error
Run Code Online (Sandbox Code Playgroud)

根文件系统已死。但我的猫还活着(在我的记忆中):

root@system:~# cat > /tmp/somefile
C^d
root@system:~#
Run Code Online (Sandbox Code Playgroud)

虽然他有点孤独,但他所有的朋友都走了:

root@system:~# mount
-bash: /bin/mount: Input/output error
root@system:~# dmesg
-bash: /bin/dmesg: Input/output error
root@system:~# less
-bash: /bin/less: Input/output error
root@system:~# chmod
-bash: /bin/chmod: Input/output error
Run Code Online (Sandbox Code Playgroud)

该系统仍在运行,并实现其目的。我知道,我知道,对此唯一明智的反应是关闭系统并更换根驱动器。不幸的是,这不是一个选择,因为它会花费大量的时间和金钱。此外,它会杀死我的猫,这会让我感到难过。

我想从捐赠者那里带他平时的朋友。我不敢尝试 scp 它们,以防 ssh 尝试加载它并切断线路(无论如何二进制文件已经消失了)。这听起来像是我猫表弟的工作:

root@system:~# netcat -l 1234 > /tmp/less
-bash: netcat: command not found
Run Code Online (Sandbox Code Playgroud)

可惜他早已不在了。

现在,我可以尝试欺骗我的猫执行一个仪式来复活他:

cat > netcat < /dev/tcp/localhost/9999
Run Code Online (Sandbox Code Playgroud)

那种工作。他几乎还活着:

root@system:/tmp# /tmp/netcat
-bash: /tmp/netcat: Permission denied
Run Code Online (Sandbox Code Playgroud)

他只需要一点点生命的火花。那个+x我现在无法背诵的小魔法咒语。

你能帮我把我猫的朋友带回来吗?

filesystems bash cat root-filesystem system-recovery

53
推荐指数
1
解决办法
3609
查看次数

安全删除 btrfs 文件系统上的文件

有时,需要删除文件系统中的文件,并确保该文件确实消失了。例如,包含敏感密码的文件应该从磁盘中彻底擦除。

rm在典型的文件系统上发出一个简单的命令会删除文件的 inode(“指针”),但它不会删除物理磁盘中文件的内容 - 这些内容会保留在那里,直到文件系统需要可用空间时被覆盖。

在许多文件系统上,shred 程序可以实现这种安全删除。但是,在诸如 btrfs 之类的 CoW 文件系统上,这种方法是无用的。该文件可能存在于卷快照中这一事实加剧了该问题。

有没有办法安全地删除一个文件上的btrfs文件系统?删除所有指针(在所有卷上)并用零填充可用空间是否足够?

filesystems security data-recovery btrfs

23
推荐指数
3
解决办法
6405
查看次数

将默认子卷 (subvolid=0) 上使用 btrfs 的 Linux 安装移动到另一个子卷

安装到根 btrfs 文件系统时,许多 Linux 发行版安装到默认子卷。如果不修改,此布局将强制在根文件系统内创建任何新快照或子卷,这非常令人困惑,因为快照包含自己:

/ 
??dev
??home
??var
??usr
??...
??snapshots
  ??snap1 
Run Code Online (Sandbox Code Playgroud)

一个更容易理解的默认子卷布局是:

/ 
??subvolumes
? ??root
?   ??dev
?   ??home
?   ??var
?   ??usr
?   ??...
??snapshots
  ??snap1 
Run Code Online (Sandbox Code Playgroud)

如何在不从 livecd 启动的情况下更改发行版默认的 btrfs 安装以使用此子卷布局?

linux btrfs system-installation

17
推荐指数
1
解决办法
8831
查看次数

为什么普通用户不能删除 btrfs 子卷

使用循环挂载用户创建的 btrfs 文件系统,并正确设置权限,用户可以自由创建 btrfs 子卷:

user@machine:~/btrfs/fs/snapshots$ /sbin/btrfs sub create newsubvol
Create subvolume './newsubvol'
Run Code Online (Sandbox Code Playgroud)

但是,尝试删除新创建的子卷会导致错误:

user@machine:~/btrfs/fs/snapshots$ /sbin/btrfs sub del newsubvol
Delete subvolume '/home/user/btrfs/fs/snapshots/newsubvol'
ERROR: cannot delete '/home/user/btrfs/fs/snapshots/newsubvol'
Run Code Online (Sandbox Code Playgroud)

当然,root 用户可以删除它:

root@machine:/home/user/btrfs/fs/snapshots# /sbin/btrfs sub del newsubvol
Delete subvolume '/home/user/btrfs/fs/snapshots/newsubvol'
Run Code Online (Sandbox Code Playgroud)

create 和 delete 操作之间的这种行为差异似乎有点奇怪。任何人都可以对此有所了解吗?

这是命令的确切顺序:

user@machine:~$ dd if=/dev/zero of=btrfs_disk bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 1.2345 s, 84.9 MB/s
user@machine:~$ mkdir mountpoint
user@machine:~$ /sbin/mkfs.btrfs btrfs_disk

WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before …
Run Code Online (Sandbox Code Playgroud)

btrfs

12
推荐指数
2
解决办法
5094
查看次数

了解目录符号链接遍历和父目录

假设您有目录/dir1and /dir2/linked,其中后者是前者的符号链接。

当您cd使用linked和 时pwd,您会得到输出/dir2/linked。如果你那样cd ..,你会被穿上/dir2。这种行为与你/dir2/linked之前的概念是一致的。但是,据我所知,..任何目录的父目录 ( ) 都存储在目录 inode 中(即:物理上在磁盘中)。显然,既然/dir2/linked是真的/dir1,那么inode上的父目录必须是/

为了进一步使问题复杂化,而里面/dir2/linked的输出ls ..cd .. ; ls .是不同的!似乎cd尊重符号链接的路径,同时ls尊重“物理”路径。正如在这个问题中提到的cd -P,这个用例是有的。

man pwd 提到了“物理”和“逻辑”工作目录,但此时我仍然有几个问题:

  • 这种行为是否总是由PWD环境变量提供,如man pwd?
  • 为什么默认cdls有不同的行为,如果它们都是 shell 命令(即:不是程序)?
  • 典型程序(不是 shell 命令)是否使用PWD物理路径而不是物理路径?我意识到这取决于实施,但有什么经验法则吗?

shell directory cd-command symlink

10
推荐指数
1
解决办法
2345
查看次数

Aptitude 不会删除自动安装的软件包

如果任何其他(手动安装的)软件包建议这些软件包,似乎 aptitude 不会删除不依赖的自动安装的软件包。

root@host:/# aptitude install unattended-upgrades 
The following NEW packages will be installed:
  iso-codes{a} lsb-release{a} python-apt{a} python-apt-common{a} python2.6{a} python2.6-minimal{a} unattended-upgrades 
...

root@host:/# aptitude remove unattended-upgrades 
The following packages will be REMOVED:  
  unattended-upgrades 

...

root@host:/# aptitude why python-apt
i   apt Suggests python-apt
Run Code Online (Sandbox Code Playgroud)

我可以(以某种方式)理解为什么这是可取的,但是有什么方法可以覆盖它

aptitude dependencies

7
推荐指数
2
解决办法
1926
查看次数

在线重新挂载不同子卷的根文件系统的 btrfs(快照)

假设您在在线系统上有一个 btrfs 根文件系统。您想将文件系统恢复到较早的状态,其中您有一个快照:

remount /dev/sdaX / -o remount,subvol=snapshots/Y

为了记录在案,我一直在测试系统中做到了这一点,它并没有正常工作。命令返回没有错误,但安装的子卷是相同的。

如果这样有效,会产生什么后果?我的猜测是打开的文件描述符仍会指向旧的子卷,因此如果不小心,可能会导致新子卷上的“数据丢失”。假设一个人在关闭和重新打开所有打开的文件描述符时遇到了麻烦,这听起来可行吗?或者还有其他类型的问题?

mount btrfs snapshot

6
推荐指数
1
解决办法
1660
查看次数

获取块设备父级

给定一个块设备,我怎样才能得到它的“父”?

一个例子是 LUKS 虚拟解密设备 (/dev/mapper/decrypted),其父设备将是加密块设备 (/dev/sdb)

linux block-device

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

如何判断加密 (LUKS) 设备是否已打开?

有没有办法告诉,给定一个 LUKS 块设备的路径,并且不知道密码,设备是否已经打开(解密)?

知道解密设备的路径怎么样?

encryption block-device luks device-mapper

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

EC2 计算机如何阻止 ssh root 访问并发出警告?

我已经在 EC2 上设置了一台运行 Debian Stretch 的机器。在尝试以 root 身份进行 ssh 时,我收到以下消息:

$ ssh -i "mykey" root@machine
Please login as the user "admin" rather than the user "root".

^C
Connection to machine closed.
Run Code Online (Sandbox Code Playgroud)

请注意^C- 命令不会终止。

我可以毫无问题地登录admin,并且我知道为什么这样做 - 但我不确定如何登录

我的第一直觉是贝壳

admin@machine:~$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
Run Code Online (Sandbox Code Playgroud)

没有。我检查了 nologin 以防万一:

admin@machine:~$ /usr/sbin/nologin  This account is currently not available.
Run Code Online (Sandbox Code Playgroud)

不同的消息。

使系统在登录时打印出消息的机制是什么?

shell root ssh amazon-ec2 aws

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