① java操作LINUX上文件,設置許可權問題(懂LINUX的文件操作的幫個忙)
復制完了之後,修改復制後的文件的訪問許可權,讓這個文件可以被nobody可寫。這個要看實際情況來定。因為許可權開大了,不安全,開小了一樣修改不了或者引起其他的問題。
② java修改hdfs上文件許可權問題
看來你是開啟了HDFS的許可權檢查功能,這樣你訪問HDFS,NameNode都會檢查訪問用戶的許可權的。
你現在想要修改/process/startall.txt文件的許可權,那process目錄以及startall.txt的有效用戶、有效組以及其許可權是什麼呢?
假設process目錄與startall.txt原始的有效用戶和有效組分別為root和supergroup,原始許可權為750的話,你若在自己電腦運行上述程序,它會自動獲取當前計算機的登錄用戶,假設為wyc,去訪問HDFS,很顯然,你的程序連process目錄都進不去的。
此外,想要更改一個目錄或文件的許可權,當前用戶則必須是有效用戶或超級用戶才可以。
想要解決的話,嘿嘿,如果你設置的hadoop.security.authenticationproperty,也就是認證方式為simple的話(默認就是simple),那還可以鑽該認證方式的空子,運行程序是偽裝成有效用戶或者超級用戶即可。
此外,有一行代碼需要修改一下,我在實驗後發現設置許可權那一行有誤,如下:
//hdfs.setPermission(dstPath,newFsPermission((short)775));
hdfs.setPermission(dstPath,newFsPermission("755"));