小编max*_*zig的帖子

基于组隐藏其他用户的进程(在 Linux 下)?

linux系统下是否可以为某些用户组配置进程隐藏?

例如: 来自组 X 的用户不应在 ps/top 或 /proc 下看到来自组 Y 的用户拥有的进程。

是否可以使用 SELinux 配置这样的设置?

(我依稀记得有趣的 grsecurity 补丁集中有一个类似的功能——但 IIRC,它更通用——此外,我想配置一个股票 linux 发行版而不必维护自定义内核。)

编辑:为了更好地说明,Solaris 10 有一个类似的特性。这个例子不是那么通用,但可以配置一个用户或一些用户只能在 ps 等中看到自己进程的信息。

security process selinux grsecurity hardening

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

如何找出哪个文件受到坏扇区的影响?

假设您已获悉这样的坏扇区:

[48792.329933] Add. Sense: Unrecovered read error - auto reallocate failed
[48792.329936] sd 0:0:0:0: [sda] CDB:
[48792.329938] Read(10): ...
[48792.329949] end_request: I/O error, dev sda, sector 1545882485
[48792.329968] md/raid1:md126: sda: unrecoverable I/O read error
               for block 1544848128
[48792.330018] md: md126: recovery interrupted.
Run Code Online (Sandbox Code Playgroud)

如何找出哪个文件可能包含该扇区?如何将扇区映射到文件?或者如何确定它是否只是映射到可用的文件系统空间?

映射过程应该能够处理通常的存储堆栈。

例如,在上面的示例中,堆栈如下所示:

/dev/sda+sdb -> Linux MD RAID 1 -> LVM PV -> LVM VG -> LVM LV -> XFS
Run Code Online (Sandbox Code Playgroud)

但是,当然,它甚至可以是这样的:

/dev/sda+sdb -> Linux MD RAID 1 -> DM_CRYPT -> LVM PV -> LVM VG -> LVM LV …
Run Code Online (Sandbox Code Playgroud)

linux filesystems data-recovery disk

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

如何设置用于无头使用的 linux 服务器?

考虑一个像这样的无头服务器:一个典型的远程位置的 x86 机器,你可以用一个股票 - 例如 - Ubuntu 映像远程初始化。初始化后,您只能通过 ssh 登录 - 或远程重置它,即您无法访问 BIOS 或引导管理器提示(例如 Grub 1)。

也许某种KVM可用,但KVM的使用非常昂贵,您必须按小时预订。

在这种情况下,人们可能会对启动问题产生偏执。例如:

  1. 如果内核升级失败怎么办?
  2. 早期启动过程中的 fsck-prompt 怎么样?可能,ssh 尚不可用...

还有其他需要注意的问题吗?

对于内核升级,我配置了 grub(旧版),以便menu.lst序言包含

default saved
fallback 2  # counts from 0
Run Code Online (Sandbox Code Playgroud)

第一个条目以:

savedefault fallback
Run Code Online (Sandbox Code Playgroud)

第一个 grub 条目是升级后的内核,第三个是已知的工作内核。另请参阅有关回退引导grub 手册部分

我更改了启动脚本/etc/rc.local(在类似 Debian 的系统上),以便在成功启动的情况下重置默认条目设置:

grub-set-default 0
Run Code Online (Sandbox Code Playgroud)

这个 grub-setup 有效,但例如在 Ubuntu 上,这不是默认设置,必须menu.lst在每次内核更新后手动调整。

我供应

panic=60
Run Code Online (Sandbox Code Playgroud)

作为内核参数,例如在错误root=参数或损坏内核的情况下,系统会在出现错误时自动重新启动。

关于 fsck 问题,我不确定最好的方法是什么。在类似 Debian 的系统上,您可以设置

FSCKFIX=yes
Run Code Online (Sandbox Code Playgroud)

in /etc/default/rcS,它告诉 fsck 默认情况下自动修复。

但是如果自动修复失败,也许我仍然会收到无法远程访问的提示?

或者,我可以通过第六列中的零禁用 fsck …

remote-management headless

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

如何记录交互 socat TCP/TLS 会话?

Socat非常适合交互式测试基于行的人类可读协议,如 HTTP 或 IMAP。

例如:

$ socat -d -d READLINE,history=$HOME/s.hist openssl:host:port,crnl,cafile=some.ca
Run Code Online (Sandbox Code Playgroud)

为了更好地分析,我需要捕获这样一个交互式会话 - 即接收和发送的字节。

仅仅通过 eg 硬拷贝终端输出tux是不够的,因为客户端/服务器部分没有被标记,像 '\t' 这样的字符会丢失/静默转换。

使用tcpdump捕获仅对未加密的连接有帮助。

因此我的问题。

答案不一定是基于 socat。如果另一个工具更适合该用例,我想阅读它。

解决方案的奖励积分,其中

  • 时间戳也被记录
  • 可以选择交错记录(客户端/服务器端)或记录到单独的文件

tcp tcpdump tls socat

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

如何访问 systemd 的根日志?

当我journalctl -f -a在 Fedora 20 下为不同的用户执行时,我得到了不同的结果。对于 root 我得到类似于tail -f /var/log/syslog旧系统上的东西。作为普通用户,我收到 gnome-shell 警告、一些 su 消息、Firefox 写入标准输出的内容等 - 基本上是用户会话日志。

我理解journalctl有不同期刊的概念(journalctl(1)):

输出从所有可访问的日志文件中交错,无论它们是轮换的还是当前正在写入的,也无论它们是属于系统本身还是可访问的用户日志。

但是如何获取给定用户可用的期刊列表?

以及如何让普通用户也可以访问根日志?

journalctl 手册页指出:

所有用户都有权访问他们的私人每用户日志。但是,默认情况下,只有 root 用户和作为“systemd-journal”组成员的用户才能访问系统日志和其他用户的日志。

但这听起来太多了——用户不应该访问其他普通用户的日志(只能访问根日志)。

fedora systemd systemd-journald

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

单向同步目录,但在目标上删除已删除的文件

我想在两个系统之间同步一个目录。为了使它更有趣,同步必须只在一个方向上完成,即:

  • 如果文件在源目录中被删除,则它也必须在目标目录中删除,如果之前已传输
  • 目标目录中已删除的文件一定不能在源中删除
  • 部分传输的文件(例如由于网络问题)必须在下一次同步时完成
  • 源目录中的新文件必须传输到目标
  • 目标目录中已删除的文件不得重新传输

这意味着源系统基本上具有主控角色,只是不会强制返回目标中已删除的文件。

两个 Linux 系统都有 rsync/ssh/scp 可用。

源目录中的新文件以一种可以使用它们的 mtime 来检测它们的方式创建,例如:

if mtime(file) > date-of-last-sync then: it is a new file that needs to be transfered
Run Code Online (Sandbox Code Playgroud)

此外,源目录中的现有文件不会更改,即同步不需要检查已经(完全)传输的文件中的差异。

rsync synchronization

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

如何替换 BTRFS RAID-1 文件系统中的设备?

我有一个有两条腿的 BTRFS RAID-1 文件系统。由于再次出现读取错误,需要更换一张磁盘。

因此,计划是:

  1. 添加第 3 条腿 -> 结果应为:3 路镜像
  2. 移除故障磁盘 -> 结果应该是:2 way mirror

因此,我做了以下步骤:

btrfs dev add /dev/new_device /mnt/foo
btrfs balance /mnt/foo
Run Code Online (Sandbox Code Playgroud)

我假设 btrfs 做正确的事情,即创建一个 3 路镜像。

我猜,另一种方法是使用平衡过滤器。但是既然文件系统已经是 RAID-1 了,那应该没有必要了吧?

我有点担心,因为 abtrfs fi show打印了这个:

平衡开始前:

    Total devices 3 FS bytes used 2.15TiB
    devid    1 size 2.73TiB used 2.16TiB path /dev/left
    devid    2 size 2.73TiB used 2.16TiB path /dev/right
    devid    3 size 2.73TiB used 0.00B path /dev/new_device
Run Code Online (Sandbox Code Playgroud)

平衡时:

    Total devices 3 FS bytes used 2.15TiB
    devid …
Run Code Online (Sandbox Code Playgroud)

btrfs

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

zstyle :compinstall 文件名有什么作用?

Zsh 首次运行配置向导通常会添加

zstyle :compinstall filename '$HOME/.zshrc'
Run Code Online (Sandbox Code Playgroud)

到新生成的~/.zshrc.

该指令的目的是什么?我可以找到一些关于 zstyle 的一般文档,但不能找到特定的配置键。

zsh

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

如何监禁 fastcgi 服务器(或网络代理服务器)?

如果您有一个网络服务器(例如 nginx),您通常会使用 fast-cgi 服务器或其他应用程序 http-server 来获取动态内容。这意味着在这两种情况下,web-server 进程和 fast-cgi(或 application-http-server 进程 - 在下面称为 slave)之间有一个很好的进程分离。

网络服务器的配置使得 fast-cgi 通过套接字或 http 请求被代理。

如果从属进程中存在安全问题,则为从属和 Web 服务器创建不同的用户可以保护文件系统位置。

但是我如何在 Linux 下更多地监禁从进程?

(例如无法上网、发邮件等)

我可以想到以下路线:

  • SELinux
  • Linux 系统命名空间('containers', cgroups

在当前发行版(例如 Debian)上,最方便的方法是什么?在实践中如何做到?任何配置示例?

jails cgroups

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

如何构建自定义内核?

我想在 Fedora 上测试一个(上游)自定义内核。

目前的计划是:

  • 使用最近的 Fedora 配置作为起点,例如 /boot/config-3.6.6-1.fc17.x86_64
  • 查找构建依赖项
  • 查找正确的 make 命令
  • 执行一些 make 命令
  • cp 生成的 vmlinuz/System.map 到 /boot
  • 调整grub

但是 initramfs...img 文件呢?我如何生成它?

还有什么重要的?

compiling linux-kernel

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