如何阻止命令,比如说mkdir针对特定用户?
我所做的只是创建了只读函数并存储在用户配置文件中 ~/.bashrc
/bin/mkdir() {
echo "mkdir command not allow for you"
}
mkdir() {
echo "mkdir command not allow for you"
}
./mkdir() {
echo "mkdir command not allow for you"
}
readonly -f /bin/mkdir
readonly -f mkdir
readonly -f ./mkdir
Run Code Online (Sandbox Code Playgroud)
测试:
rahul@ubuntu:~$ cd /bin/
rahul@ubuntu:/bin$ ./mkdir /home/rahul/ggg
mkdir command not allow for you
rahul@ubuntu:/bin$ cd
rahul@ubuntu:~$ mkdir testing
mkdir command not allow for you
rahul@ubuntu:~$ /bin/mkdir testing
mkdir command not allow for you
Run Code Online (Sandbox Code Playgroud)
所以我的问题是实现这一目标的方法是什么?有什么工具可以做到这一点吗?
更新 1 …
在我的 .bashrc 中有几个命令将标准错误重定向到 /dev/null,这在以下内容中是不允许的rbash:
bash: /dev/null: restricted: cannot redirect output
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题(除了修改 Bash)?也就是说,要么
我正在做一种黑客挑战,其中一部分发现我被困在一个只有很少命令的受限 shell 中。可用的命令之一是echo. 在我的头撞墙几个小时后,我决定在一些提示下达到顶峰。事实证明,这echo os.system('/bin/bash')会让你摆脱受限制的外壳......只有在我看到这个之后我才能用谷歌搜索它,但我没有找到任何关于它的信息,除了你可以在一些受限的环境中做到这一点壳的情况。当我用 zsh 和 bash 尝试它时,它在我的终端上不起作用......为什么这甚至有效?这os.system部分对我来说看起来像 Python .. 有人可以向我提供一些背景知识吗?如果这是 Python,它还能如何与 echo 一起使用?
我正在/bin/rbash为一些用户使用。它按预期工作,但有一些黑客行为,例如当用户运行bash或 时dash,他们获得了不受限制的 shell,因此为了避免这些命令,我在他们的.bashrc文件中添加了以下函数。
bash() {
echo "WARNING: NOT ALLOW!!"
}
sh() {
echo "WARNING: NOT ALLOW!!"
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
1#我们可以使用具有多个名称的函数,如下所示
func1,func2 () {
# do stuff
}
Run Code Online (Sandbox Code Playgroud)
2#我也试过:
case $BASH_COMMAND in # check each command`
bash|dash|sh)
echo "WARNING: NOT ALLOW!!"
;;
esac
Run Code Online (Sandbox Code Playgroud)
3#/bin/rbash -> bash它只是bash的一个软链接,那么它是如何工作的呢?
还有一些命令可以避免用户执行该命令unset HISTFILE,kill -9 $$
是否有其他替代方法可以实现相同的目标?
我运行了这个命令:
yum install rbash
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它告诉我该软件包不可用。它也没有预装在我的系统上,当我查找它时,我找不到其他人遇到这个问题。那么如何在 CentOS 7 上安装 rbash 呢?