以下のコマンドラインオプションが実際にどのように使用されているか理解できませんでした。
-T[level=1]
私はこのコードを試しました:
#commandoptionstest.rb
puts "hello world"
さまざまなSAFE
レベルで:
出力はOKです
@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
ますか?レベルでの書き込み操作を許可するには、ここで何を行う必要がありますか?1
2
3
"hello world"
SAFE
4
SAFE
4