暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

linux创建只读账户同时限定访问目录

dblife 2020-11-16
953

1、建立用户,并修改ssh参数使用户登陆后限制在某个目录中

mkdir -p /home/projects    #要限制用户登陆时的目录,已有的就不需要新建了。
useradd -M ebview #建立用户,不需要建立家目录
echo "xxxxx" | passwd --stdin ebview #为用户设置登陆密码

/etc/ssh/sshd_config中最后添加
Match User ebview
ChrootDirectory /home/projects #指定限制的目录

2、重启sshd服务

systemctl restart sshd  

3、在给定的目录中建立chroot监狱环境,创建用户登陆必要的文件

mkdir /home/projects/{bin,dev,lib64,etc}		
mknod /home/projects/dev/null c 1 3
mknod /home/projects/dev/zero c 1 5
mknod /home/projects/dev/random c 1 8
mknod /home/projects/dev/urandom c 1 9
mknod /home/projects/dev/tty c 5 0
chmod 0666 /home/projects/dev/{null,zero,tty}

将/etc/passwd和/etc/group中root和rouser两行分别添加到/home/readonly//etc/passwd和/home/readonly//etc/group中

4、拷贝命令,用于给只读用户添加一些常用的命令

# 要允许执行的文件列表
cmdlist="/bin/bash /bin/ls /bin/vi /bin/vim /bin/pwd /bin/more /bin/less /bin/cat /bin/tail /bin/head"
#chroot路径
chroot_path=/home/projects/
# 判断依赖的库文件
lib_1=`ldd $cmdlist | awk '{ print $1 }' | grep "/lib" | sort | uniq`
lib_2=`ldd $cmdlist | awk '{ print $3 }' | grep "/lib" | sort | uniq`
#复制命令文件
for i in $cmdlist
do
cp -a $i $chroot_path/bin/ && echo "$i done"
done
#复制依赖的库文件(如果是i386,是lib,是x86_64,则是lib64,)
for j in $lib_1
do
cp -f $j $chroot_path/lib64/ && echo "$j done"
done

for k in $lib_2
do
cp -f $k $chroot_path/lib64/ && echo "$k done"
done

5、设置环境变量和禁用selinux

cp /etc/bashrc /home/projects/etc/
echo 'export PATH=$PATH:/bin' >> /home/projects/etc/profile


文章转载自dblife,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论