无法理解在实践中如何使用下面的命令行选项。
-T[level=1]
我试过这段代码:
#commandoptionstest.rb
puts "hello world"
不同SAFE
级别:
输出正常
@ubuntu:~/script$ ruby -x commandoptionstest.rb
# => hello world
为什么会出错?我需要做什么才能commandoptionstest.rb
允许?-x
-T
@ubuntu:~/script$ ruby -x -T commandoptionstest.rb
# => ruby: no -x allowed in tainted mode (SecurityError)
输出来了
@ubuntu:~/script$ ruby -T commandoptionstest.rb
# => hello world
输出来了
@ubuntu:~/script$ ruby -T1 commandoptionstest.rb
# => hello world
输出来了
@ubuntu:~/script$ ruby -T2 commandoptionstest.rb
# => hello world
输出来了
@ubuntu:~/script$ ruby -T3 commandoptionstest.rb
# => hello world
再次为什么错误?
@ubuntu:~/script$ ruby -T4 commandoptionstest.rb
# => commandoptionstest.rb:15:in `write': Insecure operation `write' at level 4 (SecurityError)
# from commandoptionstest.rb:15:in `puts'
# from commandoptionstest.rb:15:in `puts'
# from commandoptionstest.rb:15:in `<main>'
在上面的代码的帮助下,你能解释一下为什么SAFE
levels 1
, 2
,3
是打印的"hello world"
,而SAFE
level4
不是吗?要允许SAFE
level的写操作4
,这里应该做什么?