回覆列表
  • 1 # 程式設計頌

    看來你是開啟了HDFS的許可權檢查功能,這樣你訪問HDFS,NameNode都會檢查訪問使用者的許可權的。

    你現在想要修改/process/startall.txt檔案的許可權,那process目錄以及startall.txt的有效使用者、有效組以及其許可權是什麼呢?

    假設process目錄與startall.txt原始的有效使用者和有效組分別為root和supergroup,原始許可權為750的話,你若在自己電腦執行上述程式,它會自動獲取當前計算機的登入使用者,假設為wyc,去訪問HDFS,

    很顯然,你的程式連process目錄都進不去的。

    此外,想要更改一個目錄或檔案的許可權,當前使用者則必須是有效使用者或超級使用者才可以。

    想要解決的話,嘿嘿, 如果你設定的hadoop.security.authentication property,也就是認證方式為simple的話(預設就是simple),那還可以鑽該認證方式的空子,執行程式是偽裝成有效使用者或者超

    級使用者即可。

    此外,有一行程式碼需要修改一下,我在實驗後發現設定許可權那一行有誤,如下:

    //hdfs.setPermission(dstPath, new FsPermission((short) 775));

    hdfs.setPermission(dstPath, new FsPermission("755"));

  • 2 # 汙蒙君

    看來你是開啟了HDFS的許可權檢查功能,這樣你訪問HDFS,NameNode都會檢查訪問使用者的許可權的。 你現在想要修改/process/startall.txt檔案的許可權,那process目錄以及startall.txt的有效使用者、有效組以及其許可權是什麼呢? 假設process目錄與startall.t...

  • 中秋節和大豐收的關聯?
  • 家裡發現了一隻蟑螂,怎麼辦?是不是說明家裡還有很多?怎麼滅蟑螂?