linux系统下是否可以为某些用户组配置进程隐藏?
例如: 来自组 X 的用户不应在 ps/top 或 /proc 下看到来自组 Y 的用户拥有的进程。
是否可以使用 SELinux 配置这样的设置?
(我依稀记得有趣的 grsecurity 补丁集中有一个类似的功能——但 IIRC,它更通用——此外,我想配置一个股票 linux 发行版而不必维护自定义内核。)
编辑:为了更好地说明,Solaris 10 有一个类似的特性。这个例子不是那么通用,但可以配置一个用户或一些用户只能在 ps 等中看到自己进程的信息。
假设您已获悉这样的坏扇区:
[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) 考虑一个像这样的无头服务器:一个典型的远程位置的 x86 机器,你可以用一个股票 - 例如 - Ubuntu 映像远程初始化。初始化后,您只能通过 ssh 登录 - 或远程重置它,即您无法访问 BIOS 或引导管理器提示(例如 Grub 1)。
也许某种KVM可用,但KVM的使用非常昂贵,您必须按小时预订。
在这种情况下,人们可能会对启动问题产生偏执。例如:
还有其他需要注意的问题吗?
对于内核升级,我配置了 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 …
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。如果另一个工具更适合该用例,我想阅读它。
解决方案的奖励积分,其中
当我journalctl -f -a在 Fedora 20 下为不同的用户执行时,我得到了不同的结果。对于 root 我得到类似于tail -f /var/log/syslog旧系统上的东西。作为普通用户,我收到 gnome-shell 警告、一些 su 消息、Firefox 写入标准输出的内容等 - 基本上是用户会话日志。
我理解journalctl有不同期刊的概念(journalctl(1)):
输出从所有可访问的日志文件中交错,无论它们是轮换的还是当前正在写入的,也无论它们是属于系统本身还是可访问的用户日志。
但是如何获取给定用户可用的期刊列表?
以及如何让普通用户也可以访问根日志?
journalctl 手册页指出:
所有用户都有权访问他们的私人每用户日志。但是,默认情况下,只有 root 用户和作为“systemd-journal”组成员的用户才能访问系统日志和其他用户的日志。
但这听起来太多了——用户不应该访问其他普通用户的日志(只能访问根日志)。
我想在两个系统之间同步一个目录。为了使它更有趣,同步必须只在一个方向上完成,即:
这意味着源系统基本上具有主控角色,只是不会强制返回目标中已删除的文件。
两个 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)
此外,源目录中的现有文件不会更改,即同步不需要检查已经(完全)传输的文件中的差异。
我有一个有两条腿的 BTRFS RAID-1 文件系统。由于再次出现读取错误,需要更换一张磁盘。
因此,计划是:
因此,我做了以下步骤:
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) Zsh 首次运行配置向导通常会添加
zstyle :compinstall filename '$HOME/.zshrc'
Run Code Online (Sandbox Code Playgroud)
到新生成的~/.zshrc.
该指令的目的是什么?我可以找到一些关于 zstyle 的一般文档,但不能找到特定的配置键。
如果您有一个网络服务器(例如 nginx),您通常会使用 fast-cgi 服务器或其他应用程序 http-server 来获取动态内容。这意味着在这两种情况下,web-server 进程和 fast-cgi(或 application-http-server 进程 - 在下面称为 slave)之间有一个很好的进程分离。
网络服务器的配置使得 fast-cgi 通过套接字或 http 请求被代理。
如果从属进程中存在安全问题,则为从属和 Web 服务器创建不同的用户可以保护文件系统位置。
但是我如何在 Linux 下更多地监禁从进程?
(例如无法上网、发邮件等)
我可以想到以下路线:
在当前发行版(例如 Debian)上,最方便的方法是什么?在实践中如何做到?任何配置示例?
我想在 Fedora 上测试一个(上游)自定义内核。
目前的计划是:
/boot/config-3.6.6-1.fc17.x86_64/boot但是 initramfs...img 文件呢?我如何生成它?
还有什么重要的?