2017-09-01 91 views
0

我的Ubuntu機器有兩個用戶(root和Bikram)並且tmp文件夾具有以下權限。scala-devel文件夾權限如果用戶不是root用戶,並且tmp文件夾的訪問權限有限 - java.io.IOException:權限被拒絕

**drwxr-xr-x 1 root root tmp** 

現在我試圖與比克拉姆用戶在控制檯

$scala helloworld.scala 

運行helloworld.scalaConsole.println("Hello, world!"))程序,但它已拋出以下異常

java.io.IOException: Permission denied 
    at java.io.UnixFileSystem.createFileExclusively(Native Method) 
    at java.io.File.createTempFile(File.java:2024) 
    at scala.reflect.io.File$.makeTemp(File.scala:29) 
    at scala.reflect.io.Directory$.makeTemp(Directory.scala:27) 
    at scala.tools.nsc.ScriptRunner.compile$1(ScriptRunner.scala:93) 
    at scala.tools.nsc.ScriptRunner.$anonfun$withCompiledScript$2(ScriptRunner.scala:156) 
    at scala.tools.nsc.ScriptRunner.runScript(ScriptRunner.scala:124) 
    at scala.tools.nsc.ScriptRunner.runScriptAndCatch(ScriptRunner.scala:200) 
    at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:63) 
    at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:88) 
    at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:99) 
    at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:104) 
    at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala) 

相同的節目我已經重新運行用root用戶它工作,並在tmp文件夾內scala-develroot已創建。

那麼如何處理這個問題呢?我不想使用root作爲用戶,而且我也無法更改文件夾權限tmp。有什麼方法可以指定一個目錄來寫scala-develroot

Note : 
[email protected]:/tmp# scala -version 
Scala code runner version 2.12.2 -- Copyright 2002-2017, LAMP/EPFL and Lightbend, Inc. 

在此先感謝。

回答

0

您必須運行scala helloworld.scala住裏面的/ tmp目錄訪問。解決您的問題的辦法是將helloworld.scala複製到用戶Bikram有權訪問的任何其他目錄。並運行停留在該目錄中的命令。

注意scala可執行文件應該存在爲用戶比克拉姆SCALA_HOME變量環境變量必須爲用戶設置比克拉姆

而且你可以給須藤(根)訪問用戶Bikram做的事sudo usermod -a -G sudo Bikram