Как мне отформатировать спецификацию acl для остального интерфейса webhdfs - op = SETACL - PullRequest
0 голосов
/ 08 апреля 2019

Пример по этой ссылке не объясняет, как отформатировать aclspec: http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/WebHDFS.html#Set_ACL

Я пробовал несколько разных способов форматирования и получаю сообщение об ошибке:

 "Invalid ACL: the user, group and other entries are required"

Я отправляю ACL как:

other::r-x
user:15b70438-f54b-4d7d-95aa-74afe8e1a09f:rwx
group::rwx
group:231db2e5-792c-4788-8abc-2187d7233ea8:r-x

и т.д.

Вот код Scala Circe:

   val aclPermResp= sttp
       .auth.bearer(accessString)
       .body(Map("Content-Length" -> "0"))
       .put(uri"https://$dlStorageName.azuredatalakestore.net/webhdfs/v1/$path?op=SETACL&aclspec=$oLine")
   aclPermResp.send().unsafeBody  

Вот что возвращает getaclstatus:

{  
   "AclStatus":{  
      "entries":[  
         "user:15b70438-f54b-4d7d-95aa-74afe8e1a09f:rwx",
         "user:6fca950f-3ac4-495e-b9cf-ae55af2f5b11:rwx",
         "user:dcb7b874-eeb0-44f6-8088-d1ff65a69807:rwx",
         "user:fadc0eee-f2af-4e1b-b0c7-f7d2059ef065:rwx",
         "group::rwx",
         "group:231db2e5-792c-4788-8abc-2187d7233ea8:r-x",
         "group:7c24b109-edf2-422e-b20e-df8095043b93:rwx",
         "group:ec768852-cc88-40f2-91a8-3e57b5ee4a79:r-x",
         "default:user::rwx",
         "default:user:15b70438-f54b-4d7d-95aa-74afe8e1a09f:rwx",
         "default:user:6fca950f-3ac4-495e-b9cf-ae55af2f5b11:rwx",
         "default:user:dcb7b874-eeb0-44f6-8088-d1ff65a69807:rwx",
         "default:user:fadc0eee-f2af-4e1b-b0c7-f7d2059ef065:rwx",
         "default:group::rwx",
         "default:group:231db2e5-792c-4788-8abc-2187d7233ea8:r-x",
         "default:group:7c24b109-edf2-422e-b20e-df8095043b93:rwx",
         "default:mask::rwx",
         "default:other::---"
      ],
      "owner":"6fca950f-3ac4-495e-b9cf-ae55af2f5b11",
      "group":"7c24b109-edf2-422e-b20e-df8095043b93",
      "permission":"777",
      "stickyBit":false
   }
}

Я попытался изменить этот существующий ACL и отправить его обратно как aclspec, но это тоже не сработало. Возвращает то же сообщение об ошибке.

1 Ответ

1 голос
/ 12 апреля 2019

acl_spec должен включать записи для пользователя, группы и других для совместимости с битами разрешения.Например:

"user::rw-,user:hadoop:rw-,group::r--,other::r--"
...