chroot -- 限制其他用户liunx空间且监控生成子账户输出命令日志

【SFTP禁锢用户实践】sshd配置文件中关于ChrootDirectoy的详细说明 在sshd配置文件中的Match模块中,ChrootDirectory字段用于指定在用户进行SSH会话时,其根目录被限定在指定的目录中。具体来说,ChrootDirectory字段可以用来创建一个被限制的环境,将用户限制在指定的目录中,防止其访问系统中的其他文件和目录。禁锢用户用的,光改这个么的用,被禁锢的目录必须是指定的署主和属组,并且从指定的目录到根目录不能高于755及以上的权限。6.修改sftpiser家目录,署主改为root,属组改为sftponly。7.再次重启sshd服务就能连上了。 阅读详情


前言

前提

  1. ecs 服务器,centos系统/乌班图系统
  2. 需要root榕湖

开始处理监狱问题

  1. 首先,登录到您的ECS机器。
  2. 创建一个新用户: 使用 adduser 命令创建一个新用户。例如,要创建一个名为 xushouchun 的用户,您需要运行:
sudo adduser xushouchun
sudo passwd xushouchun
  1. 对于通过 SSH 登录的用户,你需要在 /etc/ssh/sshd_config 文件中设置 ChrootDirectory 指令
cat /etc/ssh/sshd_config 
Match User xushouchun
ChrootDirectory /chroot
X11Forwarding no
AllowTcpForwarding no
systemctl restart sshd

限制文件上传下载

   #  ForceCommand internal-sftp
  1. 绑定设备和其他必要的目录 (可选):你可能需要把/dev、/proc、/sys等系统目录绑定到chroot环境中以确保某些功能能够正常工作:
mkdir -p /chroot/{dev,proc,sys}
sudo mount --rbind /dev /chroot/dev
sudo mount --rbind /proc /chroot/proc
sudo mount --rbind /sys /chroot/sys
  • . /dev:/dev 目录包含了代表系统中所有设备的特殊文件,包括硬盘、输入设备、随机数生成器等。在 chroot 环境中,如果你需要访问这些设备文件(例如,/dev/null, /dev/random),你需要将其绑定到 chroot 的 /dev 下。
  • . /proc:/proc 是一个虚拟文件系统,包含了内核与进程的信息,许多程序都依赖于此目录来收集系统信息。绑定 /proc 到 chroot 环境中,允许在 chroot 环境中运行的程序访问到这些信息。
  • . /sys:与 /proc 类似,/sys 是另一个虚拟文件系统,提供了内核的设备和硬件信息,它允许用户态程序读取或对设备和驱动进行配置。将其
    绑定到 chroot 环境中可以让这些操作和信息在 chroot 中同样可用。
  1. 配置目录
 sudo mkdir -pv /chroot/{bin,lib64,etc,home,usr/share/terminfo}
  1. 配置环境隔离
cp /home/xushouchun/.bash_profile /chroot/home/xushouchun/.bash_profile
  1. 配置命令
mkdir -p /chroot/usr/share/terminfo/x/
mkdir -p /chroot/usr/bin/


cp -R /usr/share/terminfo/x/* /chroot/usr/share/terminfo/x/
sudo cp  -f /bin/clear /chroot/bin
sudo cp  -f /bin/bash /chroot/bin/
sudo cp  -f /bin/su /chroot/bin/
sudo cp  -f /bin/ls /chroot/bin/
sudo cp /usr/bin/ldd /chroot/usr/bin/
sudo cp /usr/bin/bash /chroot/usr/bin/

其次,你需要找出ls依赖了哪些库,你可以在系统的根环境(不是chroot 内)使用ldd 命令:

sudo ldd /bin/ls
  1. 所有依赖拉进来

cp -rf /lib64/* /chroot/lib64/

# 拉取对应的
sudo cp /lib64/libselinux.so.1 /chroot/lib64/
sudo cp /lib64/libcap.so.2 /chroot/lib64/
sudo cp /lib64/libacl.so.1 /chroot/lib64/
sudo cp /lib64/libc.so.6 /chroot/lib64/
sudo cp /lib64/libpcre.so.1 /chroot/lib64/
sudo cp /lib64/libdl.so.2 /chroot/lib64/
sudo cp /lib64/ld-linux-x86-64.so.2 /chroot/lib64/
sudo cp /lib64/libattr.so.1 /chroot/lib64/
sudo cp /lib64/libpthread.so.0 /chroot/lib64/

sudo ldd /bin/clear

在这里插入图片描述
10. 在chroot 环境中为 xushouchun 创建 home目录,并设置相应的权限和归属。

sudo mkdir -p /chroot/home/xushouchun
sudo chown -R xushouchun:xushouchun /chroot/home/xushouchun




vim  /chroot/home/gene/.bash_profile 
PATH="$HOME/.local/bin:$HOME/bin:/bin"
export PATH
11. 收回权限:(略)
```sehll
sudo chown -R root:root /chroot

进入监狱

sudo chroot /chroot



---
### 监狱方面总结 

`ssh ` 限制了` xushouchun `账户在 `home `家目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ac477e38d5734d999ae57f4ba9fbfd4a.png)
给定了对应的命令
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9fa0473dbdb949b2bb9c26ca3224e37f.png)
提供了对应的配置
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d6824a558f0f45c59c9d4e2219b9477a.png)
关于越狱问题,除非待讨论 除非对方有计算机基础,不然很难越狱

---
## 开始关于子账户监控命令日志

```shell
# 安装 auditd
yum install audit
# 启动auditd
systemctl start auditd
#  xushouchun 用户的 user ID(UID)
id -u xushouchun
# 配置规则
auditctl -a always,exit -F arch=b64 -S execve -F uid=1001 -k xushouchun-commands

当前脚本时间日志为当前日子的午夜(00:00)开始直到脚本运行时间为止的日志条目

cd /xushouchun
vim audit_commands.sh
#!/bin/bash
FILE="/xushouchun/log"
LOG_FILE="/xushouchun/log/xushouchun_commands.log"
ARCHIVE_FILE="/var/log/xushouchun_commands_$(date +'%Y%m%d').log"

if [ ! -f "$FILE" ];then
mkdir -p /xushouchun/log
fi

echo "------ $(date +'%Y-%m-%d %H:%M:%S') ------" >> $LOG_FILE
ausearch -k xushouchun-commands --start today -i | \
awk '
  /type=EXECVE/ {
    cmd_start = index($0, "a0=");
    cmd = substr($0, cmd_start);
    gsub(/a[0-9]+="/, "", cmd);
    gsub(/"/, "", cmd);
  }
  /type=SYSCALL/ {
    timestamp_start = index($0, "time->");
    timestamp = substr($0, timestamp_start, 23);
    gsub(/time->/, "", timestamp);
    printf("%s -> %s\n", timestamp, cmd);
  }
' >> $LOG_FILE

# 关于归档问题 定时每天执行
# mv $LOG_FILE $ARCHIVE_FILE
# touch $LOG_FILE

chmod +x audit_commands.sh
sh /xushouchun/audit_commands.sh

如果输出某一天的使用这个配置规则

ausearch -k xushouchun-commands --start 2021-04-17 18:00:00 --end 2021-04-17 19:00:00 -i

结果

在这里插入图片描述
关于定时追加
在终端中输入 crontab -e 来编辑当前用户的 crontab 文件。如果是第一次使用 crontab,可能会让您选择一个编辑器来编辑 crontab 文件。
在 crontab 文件的末尾添加一行以定义新的定时任务。cron 使用特定的格式来设定任务的执行时间,格式如下:


* * * * * /path/to/command arg1 arg2
其中,五个星号分别代表分钟、小时、日(月中的哪一天)、月(一年中的哪个月)、星期几。例如,若要每天早上 6 点运行脚本,添加以下内容:
0 6 * * * /path/to/your/audit_commands.sh
这表示在每天的 6:00 AM 运行 /path/to/your/audit_commands.sh(请把这个路径替换为您的脚本实际的路径)。
crontab -l 来列出当前用户的所有 cron 任务

总结查看日志

cat /xushouchun/log/xushouchun_commands.log
通过chroot实现Linux子系统 版权声明:本文为博主原创文章,转载请注明出处。 前言 在一些精简的Linux发行版里,很多时候会有无法运行需要某些依赖的程序的情况。 然而,会搭载这种精简系统的设备,一般无法重新安装系统;例如:路由器、手机等其他嵌入式设备。 而且受限于系统内核(缺少cgroup的一些高级特性等),也无法安装docker。 同时,在不同的Linux发行版下,使用的C语言标准库也不尽相同;如:glibc、musl等。 即使CPU支持程序所使用的指令集,使用glibc所编译的程序,也无法在musl环境下运行。(使. 阅读详情

相关推荐

linux-chroot-jail:为 ssh、sftp 和 vsftp 监禁 Linux 用户的脚本

linux-chroot-监狱 用于 ssh、sftp 和 vsftp 监禁 Linux 用户的脚本 监狱用户.sh jailuser.sh <user> 此脚本会在指定用户此后登录服务器时强制执行监禁的 ssh 会话。 用户仅限于$APPS 中指定的命令列表。 它应该适用于大多数 Linux 发行版。 目前已经在 Ubuntu 和 Centos 上测试过了。 用户被监禁的家在/jail/home/user 下将用户的旧 /home 目录备份到/home/user.orig 指定的 $APPS 所需的所有库都会自动复制到 chrooted 环境中。 笔记 脚本更改/etc/ssh/sshd_config以设置ChrootDirectory 。 需要手动重新启动 ssh 服务器才能使更改生效。 以下是对sshd_config所做的更改 Match group jailed

第十一单元

系统恢复技术 1.系统引导过程概述 通电——>进入初始化阶段——>bios 初始化——>grub2 磁盘引导阶段——>grub2 文件引导阶段——>  指定 boot 所在分区——>启动内核,只读挂在 / 设备启动——>init 程序进入初始化阶段——>  启动 systemd 初始化进程——>读取 /etc/systemd/中的文件——>启动程序——>启动登陆环境 (1)bios

wcczb的博客 561

Hadoop与Kafka集群部署与优化实践指南

分布式系统是现代大数据处理的核心架构,其中Hadoop作为分布式存储与计算框架,Kafka作为分布式消息队列系统,共同构成了实时数据处理的基础设施。通过HDFS实现海量数据存储,结合YARN进行资源调度,而Kafka则保障了数据流的实时传输与高吞吐。这种技术组合在电商用户行为分析、物联网数据采集等场景中表现卓越。部署过程中需关注硬件资源配置、关键参数调优以及集群监控方案,例如通过调整HDFS块大小和Kafka partition数量来优化性能。合理运用Flume、Spark Streaming等工具可实现系

weixin_29061997的博客 358

linux chroot shell,Linux chroot Shell —— 简单chroot指定用户

对于Linux服务器,有时需要开放登录权限给一部分用户,但并非所有用户都愿意安分守己,也无法知道谁是不安分守己的,给多一个这些用户开放登录权限,系统的威胁就多了一分。目前来说比较好的方案是chroot,调用了chroot(),就能把的根目录改成指定的根目录。何为根目录?顾名思义,“根”就是所有目录的“根”,一切目录均从“根”而生,没有“根”就没有其他目录,换句话说,“根目录”就是最原始的目录。你无...

weixin_33158887的博客 698

PredFormer实战:用Transformer搞定交通流量预测(附TaxiBJ数据集代码)

本文详细介绍了如何利用PredFormer这一基于Transformer的先进模型进行交通流量预测,特别针对TaxiBJ数据集提供了完整的实战代码和优化策略。PredFormer通过门控Transformer块(GTB)的创新设计,在时空预测任务中展现出显著优势,相比传统方法将MSE降低33.1%,推理速度提升4.4倍。文章还涵盖了模型轻量化、部署优化等实用技巧,为智慧城市建设中的交通预测提供了高效解决方案。

weixin_29194817的博客 444

AutoCAD提示找不到acdb24.dll、AcGe24.dll、AcPal.dll、AcUt.dll怎么办?

在我们安装了AutoCAD 2023版本以后,打开CAD,可能会出现dll文件丢失的情况,如下所示:1、由于找不到acdb24.dll,无法继续执行代码。重新安装程序可能解决此问题。2、由于找不到AcGe24.dll,无法继续执行代码。重新安装程序可能解决此问题。3、由于找不到AcPal.dll,无法继续执行代码。重新安装程序可能解决此问题。4、由于找不到AcUt.dll,无法继续执行代码。重新安装程序可能解决此问题。遇到AutoCAD启动系统错误,由于找不到dll文件该怎么处理呢?

huoxu369的博客 1万+

linux 以指定用户运行命令,linux里面以指定用户运行命令

一、chroot方式[root@localhost ~]# chroot --userspec "nginx:nginx" "/" sh -c "whoami"nginx[root@localhost ~]# chroot --userspec "kibana:kibana" "/" sh -c "whoami"kibana以kibana用户启动kibana示例:chroot --userspec...

weixin_36015213的博客 2278

STM32F407步进电机控制及DM542驱动器使用

基于DM542驱动器的步进电机简单控制

qq_43868701的博客 1万+

Linux系统引导过程与服务控制

目录一.Linux操作系统引导过程1.1系统引导过程1.2init进程1.3Systemd进程1.3.1Systemd单元类型1.3.2运行级别对应的Systemd二.服务控制及切换运行级别系统服务控制–systemctl三、MBR 扇区故障四、GRUB引导故障五、忘记root密码​ 1.开机自检 服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。 总结:检测出第一个能够引导系统的设备,比如硬盘

zyy1020075955的博客 392

Zemax实现微透镜阵列光束整形(原理+仿真)

通过Zemax实现微透镜阵列的光场整形仿真。

VJCP_90909Bu0的博客 1万+

别再手动写JSON了!用Node-RED OPC UA节点5分钟搞定楼宇温湿度数据采集

本文介绍了如何利用Node-RED和OPC UA节点快速实现楼宇温湿度数据的自动化采集与JSON格式转换。通过可视化工具Node-RED,开发者无需编写复杂代码,5分钟内即可完成从传感器到数据输出的全流程配置,大幅提升智慧楼宇和工业物联网项目的实施效率。

weixin_30368405的博客 430

Linux系统root密码重置全攻略:从原理到实战的完整解决方案

在Linux系统管理与运维中,用户身份认证是一个基础且核心的安全机制,它通过PAM(可插拔认证模块)框架与/etc/shadow文件协同工作,确保只有授权用户才能访问系统资源。其原理在于系统启动时,引导加载程序(如GRUB)提供了一个关键的可干预窗口,允许通过修改内核启动参数来临时绕过常规认证流程。这项技术的核心价值在于赋予系统管理员在遗忘root密码等紧急情况下恢复系统控制权的能力,是保障业务连续性与系统可维护性的重要手段。在实际应用场景中,无论是服务器运维、虚拟化平台(如Proxmox VE)管理,还是

weixin_33985507的博客 682

CATIA二次开发一一一计算 CATIA 零件模型在全局坐标系下的包围盒方法

本文介绍了一种在CATIA中计算零件模型全局坐标系下包围盒(BoundingBox)的方法。通过遍历零件几何体特征点,并应用坐标变换矩阵,最终返回精确的零件包围盒。核心步骤包括初始化与输入校验、坐标变换处理、几何体特征点遍历以及全局坐标变换。关键方法涉及CATMathBox操作和坐标变换接口。该方法适用于碰撞检测、可视化优化和装配分析等场景,能够快速判断零件间的空间干涉,提升渲染性能,并计算零件在装配体中的全局位置范围。

工业软件开发 891

硬核 Linux“ 修炼 “之路

“多一句没有,少一句不行,用最短的时间,干最硬的事! "

难~赴 422

uniapp:解决微信小程序包体积超过2M的优化方案+详解分包问题,编译小程序体积大于2M不能上传和预览提示体积太大的处理教程,uniApp微信小程序主包过大问题如何解决(排查可疑点+分包+最小改动)

uniapp微信小程序开发,如何解决打包太大无法预览发布的问题,uniApp微信小程序包体积超过2M的优化方法,uni-app打包微信小程序主包超2M终极解决方案,使用uniapp开发微信小程序使用uni_modules导致主包文件过大,无法发布的解决方法,UniApp开发的微信小程序主包过大问题及解决方案 编译小程序时Node-modules被打入主包,小程序体积大于2M不能上传和预览,怎么处理,解决微信小程序主包太大问题,微信小程序中主包和分包过大,详解分包问题,uni-app 微信小程序发布时,主包超

✅ 精选推荐文章 5064

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

[手机Linux] 四,Linux修改yum源为阿里源,寻找systemctl的替代品

背景: 我们直接用yum install 下载安装包,因为用的是国外的源,下载速度难免会受限,我们可以改为用阿里源,当然你不改也是没问题的。还有因为在手机安装的linux是安装在一个容器里的,当我们使用systemctl命令时,无法启用服务,提示:Running in chroot, ignoring request. 百度了很多,找到有可以替代的方法。

tyler880的专栏 6189

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

centos7的启动流程(systemctl)(1)

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)最新整理电子书《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!)][外链图片转存中…(img-80O22hSh-1713070617827)][外链图片转存中…(img-cOoIlFRH-1713070617827)]

2401_84048671的博客 1227

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

使用chroot限制SFTP用户到主目录

文章目录1. 将用户限制到主目录1.1 创建或修改用户和组1.2 修改SSH配置文件1.3 验证SSH和SFTP用户登录2. 将用户限制到特定目录2.1 创建组和新用户2.2 配置SSH以进行SFTP访问3. 结论4. 参考 在本教程中,我们将讨论如何将SFTP用户限制为他们的主目录或特定目录。这意味着用户只能访问其各自的主目录,而不能访问整个文件系统。 限制用户的主目录至关重要,尤其是在共享服务器环境中,这样,未经授权的用户就不会偷窥其他用户的文件和文件夹。 重要说明:还请注意,本文的目的是仅提供SFTP

Clement 2845

在centos下利用chroot实现一个和宿主机隔离的虚拟系统

在centos下利用chroot实现一个测速用的隔离虚拟系统,类似网吧的系统

baidu_33209239的博客 587

在chroot中挂载/dev/,使用系统设备节点

由于开发板上的内存空间较小,因此在开发板上内置了一块250G的硬盘,通过chroot的方式进行开发,在chroot的/dev下显示NULL,想要使用系统设备节点需要提前挂载,再进入chroot。 1、挂载命令 mount -t proc proc /rootfs/proc mount -t sysfs sys /rootfs/sys mount -o bind /dev /rootfs/dev chroot rootfs #进入chroot目录 2、查看设备节点 ls /dev/ v4l2-ctl --

sinat_37322535的博客 3964

使用Chroot限制SSH用户的访问

使用Chroot限制SSH用户的访问

weixin_44308897的博客 818

centos 切换用户_linux进入单用户模式的几种方法

前言:记得初中时有个刚毕业的老师要走了,同学们纷纷送礼,不过班上总有几个家庭拮据的同学,送的可能不入流或者没送吧,结果,老师一一数出了送的什么礼物,谁谁送的,哪些同学没心意,哪些同学没送,当时懵懂虫一般,好像并没啥,直到后来步入社会回想起,才悟到,其实那对于那几个掉队的人来说,实在有点太受伤害。后来有个家境很不好的同学退学了,9年义务的最后一年还是放弃了,时隔多年我做一个恶意的猜测吧,那...

weixin_39645003的博客 1311

linux限制用户访问目录6,使用 chroot 监狱限制 SSH 用户访问指定目录

将SSH 用户会话限制访问到特定的目录内,特别是在 web 服务器上,这样做有多个原因,但最显而易见的是为了系统安全。为了锁定 SSH 用户在某个目录,我们可以使用chroot机制。在诸如 Linux 之类的类 Unix 系统中更改 root(chroot)是将特定用户操作与其他 Linux 系统分离的一种手段;使用称为chrooted 监狱的新根目录更改当前运行的用户进程及其子进程的明...

weixin_32596893的博客 593

linux如何切换到设备,Linux chroot使用介绍和挂载之前系统的设备文件方法

chroot是什么chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以 `/`,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 `/` 位置。Linux 系统的目录结构为什么使用chroot在经过 chroot 之后,系统读取到的目录和文件将不在是旧系统根下的而是新根...

weixin_31082779的博客 1532

chroot命令

当然我们也可以拷贝旧系统的下的命令到新的目录结构中使用,但是那些命令通常是动态编译的,这就意味着我们不得不拷贝相关的动态库文件到相应的目录结构中。但是由于在经过chroot之后,系统读取到的bin/等与系统相关目录将不再是旧系统根目录下的,而是切换后新根下的目录结构和文件,因此我们有必要准备一些目录结构以及必要的文件。chroot的作用就是切换系统的根位置,而这个作用最为明显的是在系统初始引导磁盘的处理过程中使用,从初始RAM磁盘(initrd)切换系统的根位置并执行真正的init。...

szembed的博客 1万+

为特定用户创建监牢 chroot

什么是chroot?有什么好处? 这里不多介绍.这里直说我的环境和做法.最后给一个自动脚本. 环境: centos 5.4 64位 需求: 在一台物理机器上,要跑很多java应用.但是每个应用可能不是同一个人负责维护.但是又需要控制他们的权限,使他们之间不能互相访问. 实现: 配置chroot环境.一个脚本完成. 把jdk和resin拷贝到...

weixin_34319640的博客 143
上一篇: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not al
下一篇: 集成框架 -- OSS
徐寿春
博客等级 码龄8年 469粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值