小编Kam*_*Cuk的帖子

如何保护 /dev/sdX 免遭意外格式化?

我经常处理格式化 USB 驱动器,这些驱动器注册为 /dev/sdX。这包括执行mkfsfdisk以及mount其他通常以 root 身份执行的命令。然而,我担心我可能会不小心输错一个字母,并格式化我的硬盘。

理想情况下,我希望将/dev/sdX*设备设置为“只读”模式,这样任何fdisk mkfs wipefs设备都会失败,除非通过手动命令将设备切换到“读写”模式。

我以为chmod ugo-w /dev/sdX会像那样工作。然而令我惊讶的是,chmod 0000 /dev/sdc1接下来的mkfs /dev/sdc1作品完全没问题。

如何防止所有用户(包括 root 用户)修改硬盘驱动器及其分区表、对硬盘驱动器进行分区以及以通过已安装的文件系统以外的方式写入分区?如果我愿意,如何使用此方法启用对驱动器的写入?

我知道我可以使该设备归用户所有。然而,这需要我在用户和 root 之间切换才能发出类似chrootormount或 之类的命令umount,这是一个安全漏洞。我不希望所有 USB 存储设备都归用户所有。我正在寻找更好的解决方案。理想情况下,我希望保留 root 用户身份,但不会格式化错误的光盘。

linux block-device

31
推荐指数
5
解决办法
3460
查看次数

是否可以保存`bc` 命令行历史记录?

bash有一个方便的文件.bash_history,它保存命令的历史记录,并且在下次执行bash历史记录时填充保存的命令。

是否可以以bc相同的方式将命令历史记录保存到文件中,然后在启动时加载它以便保留 bc 历史记录?

我尝试阅读GNU bc 手册,它提到了readlinelibedit。从ldd /usr/bin/bc我看到我的使用readline,并readline具有write_historyread_history功能。这个功能是在里面实现的bc还是我需要修补的bc

gnu readline bc

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

模块缺少 /sys/module/*/parameters 目录,如何启用它们?

我的许多模块缺少 /sys/module/*/parameters 目录,我无法检查模块加载的参数。

# printf "%s\n" /sys/module/*/parameters | wc -l
125
# lsmod | wc -l
151
# comm -13 <(printf "%s\n" /sys/module/*/parameters | xargs dirname | xargs basename -a | sort) <(lsmod | awk '{print $1}' | sort) | fmt
Module aesni_intel at24 blake2b_generic bpf_preload btbcm btintel
btmtk btrfs btrtl crc16 crc32_pclmul crc32c_generic crc32c_intel
crct10dif_pclmul cryptd crypto_simd crypto_user dummy ecdh_generic fat
gf128mul ghash_clmulni_intel i2c_smbus iTCO_vendor_support iTCO_wdt
intel_cstate intel_pmc_bxt intel_rapl_common intel_rapl_msr intel_uncore
ip6_tables ip6t_REJECT ip6table_filter ip6table_mangle ip6table_nat
ip6table_raw ip_tables ipt_REJECT …
Run Code Online (Sandbox Code Playgroud)

linux kernel kernel-modules linux-kernel

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

如何设置要在 ssh 别名中使用的“默认”用户名?

我想设置一个别名,该别名将“默认”使用与我当前不同的用户名。像这样:

$ echo $USER          # outputs kamil
$ alias myssh='ssh -o User=somebody'   # non-working example of what I want to do
$ myssh server        # Uses somebody@server - all fine!
$ myssh root@server   # I want it to use root@server, but it does not. It connects to `somebody@server`!

# Easy testing:
$ myssh -v root@localhost |& grep -i 'Authenticating to'
debug1: Authenticating to localhost:22 as 'somebody'
#                                          ^^^^^^^^ - I want root!
Run Code Online (Sandbox Code Playgroud)

上面的代码不工作-在用户root@server覆盖-o User=somebody。我可以做一些事情: …

bash ssh

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

标签 统计

linux ×2

bash ×1

bc ×1

block-device ×1

gnu ×1

kernel ×1

kernel-modules ×1

linux-kernel ×1

readline ×1

ssh ×1