Chinaunix

标题: 如何限定用户在自身目录 [打印本页]

作者: qinquan    时间: 2008-09-02 10:59
标题: 如何限定用户在自身目录
新建一个普通用户user之后,想把他限定在/home/user目录下,user用户不能进入上级目录,不能执行系统的任何命令,只能执行/home/user目录下的几个命令,怎么实现了?
我通过设定PATH变量来限制
.profile
#!/bin/sh
export PATH=/home/user:.
这样user用户不能执行系统命令,比如ls
但是可以通过/bin/ls来执行,有什么办法来实现完全限制了?
难道要把系统命令的其它用户的执行权限都去掉?
谢谢!
作者: cuci    时间: 2008-09-02 11:01
chroot,我记得我在我的blog上写过一篇文章,你去找找
作者: 寂寞烈火    时间: 2008-09-02 11:12
restricted shell
作者: ermu    时间: 2008-09-02 11:41
关注一下,也想试试
作者: qinquan    时间: 2008-09-02 14:21
原帖由 cuci 于 2008-9-2 11:01 发表
chroot,我记得我在我的blog上写过一篇文章,你去找找

我按照你的blog:http://blog.chinaunix.net/u/4515/showart_1094401.html里面的方法进行操作的时候,遇到了下面的问题:
#mkdir -p /home/user/bin
#cd /home/user/bin
#ln -s /bin/sh .
# vi cr.sh
# ./cr.sh /home/user/
BINFMT_FLAT: bad magic/rev (0x202d6620, need 0x4)
BINFMT_FLAT: bad magic/rev (0x202d6620, need 0x4)
cr.sh: applet not found
这是什么原因了?我的系统里面没有chroot命令,是不是不支持啊。
作者: cuci    时间: 2008-09-02 14:28
coreutils-5.2.1-31
这个包没装
作者: qinquan    时间: 2008-09-03 09:53
原帖由 cuci 于 2008-9-2 14:28 发表
coreutils-5.2.1-31
这个包没装

cuci 谢谢你的回复,但是这样设置的话,系统启动之后就直接转到/home/user目录下,这不是我想要的功能。我是想系统启动还是以root身份启动,user用户通过telnet进入自身的目录,只能在自身的目录进行操作。这时怎么用chroot命令来实现了?谢谢!

作者: vermouth    时间: 2008-09-03 13:36
尝试用ftp之类的共享协议,可以么?
作者: ruochen    时间: 2008-09-03 13:52
尝试用sudo呢
看怎么样
作者: qinquan    时间: 2008-09-05 10:35
标题: 我改用受限制的shell来实现
受限制的shell   
在受限模式下运行一个脚本或脚本片断, 将会禁用某些命令, 这些命令在正常模式下都可以运行. 这是一种安全策略, 目的是为了限制脚本用户的权限, 并且能够让运行脚本所导致的危害降低到最小.

    使用cd命令更改工作目录.

    更改环境变量$PATH, $SHELL, $BASH_ENV, 或$ENV的值.

    读取或修改环境变量$SHELLOPTS的值.

    输出重定向.

    调用的命令路径中包括有一个或多个斜杠(/).

    调用exec, 把当前的受限shell替换成另外一个进程.

    能够在无意中破坏脚本的命令.

    在脚本中企图脱离受限模式的操作

我在单独脚本中能够实现这种功能
#!/bin/sh
set -r
echo "Attempting directory change in restricted mode."
cd ..
echo "Still in `pwd`"

但是如果在passwd中更改admin用户的登陆shell为/bin/sh -r
提示错误:login: cannot run /bin/sh -r: No such file or directory

在admin的用户目录/home/admin下设置.profile文件的shell路径,
#!/bin/sh -r
export PATH=/home/admin:.
设置之后不能限制用户

请问受限的shell怎么设置了?谢谢!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2