我想在Linux中将一个命令列入黑名单或将其添加到sudo以避免意外输入。如何在Linux中黑名单命令?
我试图解决我的RVM出于某种原因,类型:
rvm reset
而且失去了所有的gemsets。
我想将此行为更改为sudo rvm reset
,并可能添加一条说明此命令将执行的操作的注释。
我想在Linux中将一个命令列入黑名单或将其添加到sudo以避免意外输入。如何在Linux中黑名单命令?
我试图解决我的RVM出于某种原因,类型:
rvm reset
而且失去了所有的gemsets。
我想将此行为更改为sudo rvm reset
,并可能添加一条说明此命令将执行的操作的注释。
chown root `which rvm`
chmod 0700 `which rvm`
限制宝石delete命令使用这样的事情:
chown -R root `rvm gemdir`
sudo chmod -R 0755 `rvm gemdir`
即使CHMOD也许是不必要的。但是,您需要使用sudo来安装新的gemset。
但是,这将使每一个RVM指挥权须藤?不知道我是否需要像“rvm gemset list”那样简单地完成任务。更感兴趣的东西,可以搞砸你的环境,而不是阅读'删除'方面。这就像'〜'中的'sudo ls'。 – tomordonez
是的,因为这个命令改变了rvm文件的所有权和rwx权限,所以对于该命令的所有调用都需要root权限。 – nopasara
还有另一种方法...如果您的gemsets文件将其所有权更改为root并且限制写入其他群组。所以rvm将无权删除它们。但是这将需要chown和chmod来处理任何新的gemset。 – nopasara
我会换一个外壳函数各地RVM:
rvm() {
case $1 in
reset)
echo "danger Will Robinson" >&2
echo "run 'command rvm reset' if you really want it" >&2
;;
*) command rvm "[email protected]" ;;
esac
}
这是一个很好的建议,因为它只影响在终端中交互式运行命令。它不会意外地影响您或其他用户的任何工具,脚本和服务。 –
谢谢@ glenn-jackman。我如何实现这一点?在rvm的二进制文件或如何? – tomordonez
只需将其添加到〜/ .bashrc中,然后添加'source〜/ .bashrc' –
'搭配chmod 700 \'这RVM \'' –