linux限制用户只能在家目录,限制用户在特定目录(监狱)

以root用户执行以下操作。

一、 使用 mkdir 命令开始创建 chroot 监狱(给某用户分配的目录):

a).mkdir -p /home/test

二.交互式会话,需要至少一个 shell,通常为 sh 和基本的 /dev 节点。如 null、zero、stdin、stdout、stderr 和 tty 设备:

a).ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}

b).用mknod 命令创建 /dev 下的文件。命令参数:-m  用来指定文件权限位,c 意思是字符文件,两个数字分别是文件指向的主要号和次要号。

1.mkdir -p /home/test/dev/

2.cd /home/test/dev/

3.mknod -m 666nullc 1 3

4.mknod -m 666 tty c 5 0

5.mknod -m 666 zero c 1 5

6. mknod -m 666 random c 1 8

三.在 chroot 监狱中设置合适的权限。注意 chroot 监狱和它的子目录以及子文件必须被 root 用户所有,并且对普通用户或用户组不可写:

1.chown root:root /home/test

2.chmod 0755 /home/test

3.ls -ld /home/test

四.创建 bin 目录并复制 /bin/bash 到 bin 中:

1.mkdir -p /home/test/bin

2.cp -v /bin/bash /home/test/bin/

五.

查询 bash 所需的共享库,复制它们到 lib64 中:

1.ldd /bin/bash

2.mkdir -p /home/test/lib64

3.cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/test/lib64/

六.

创建并配置 SSH 用户

useradd 命令创建 SSH 用户,并设置安全密码:

1.useradd linuxman

2.passwd linuxman

a).

创建 chroot 监狱通用配置目录 /home/test/etc 并复制已更新的账号文件(/etc/passwd 和 /etc/group)到这个目录中:

1.mkdir /home/test/etc

2.  cp -vf /etc/{passwd,group} /home/test/etc/

注:每次向系统添加更多 SSH 用户时,都需要将更新的帐户文件复制到 /home/test/etc 目录中

七.

配置 SSH 来使用 chroot 监狱

1.vi /etc/ssh/sshd_config

在此文件中最后添加下面行。

1.定义要使用chroot监狱的用户:MatchUserlinuxman

2. 指定chroot监狱:ChrootDirectory /home/test

文尾添加:

#define username to apply chroot jail

MatchUserusername

#specify chroot jail

ChrootDirectory /home/test

保存文件并退出,重启 sshd 服务:

1.(centos7系统使用命令)  systemctl restart sshd

2.(centos6或以下用命令)service sshd restart

注:

设置成功后,应该在本地 ssh hoch@ip 若显示被拒绝(远程登录瞬间退出)。要把selinux关闭。若登录还提示缺少lib* 库文件。找到这个文件,复制到lib64下面再登录成功

八.

创建用户的主目录并添加 Linux 命令

可以为 SSH 用户创建一个主目录(以及为所有将来的用户这么做)

1.mkdir -p /home/test/home/linuxman

2.chown -R linuxman:linuxman /home/test/home/linuxman

3. chmod -R 0700 /home/test/home/linuxman

a)

在 bin 目录中安装几个用户命令,如 ls、date、mkdir:

1.cp -v /bin/ls /home/test/bin/

2.cp -v /bin/date/home/test/bin/

3.cp -v /bin/mkdir /home/test/bin/

b)

检查上面命令的共享库并将它们移到 chroot 监狱的库目录中:

1.ldd /bin/ls

2.cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0} /home/test/lib64/此句花括号中不能有空间,不然会报错。

3. scp 等命令,也要做类似1,2 步骤。

一定要记住如下操作,不然会报错(linuxman浪费了很长时间排错):

Write failed :Broken pipe

解决方法:

chown root:root /home/test

chomod 755 /home/test

如果,没有第二句的权限操作,会报错:/bin/bash: Permission denied

注意:要在 /home/test下再建一级目录。不然数据SCP往上拷时会报Permission denied。

例:mkdir /home/test/data

/home/test的所有下一级目录,用户与组都属于同一用户,如:

chown  linuxman:linuxman -R  /home/test/*

若执行SCP 报错: unknown user 503

在/home/test/下建 usr/lib64/ 然后拷贝所有的库。操作如下:

1. mkdir /home/test/usr/lib64

2.  cp {/usr,}/lib64/lib*.so.[0-9]  /home/test/usr/lib64/

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值