I found out how to do it:
- Create a root user and container and give this user full permissions on that container. This user does NOT need ACL authorization
- Set the "Home (landing) directory" to the "root container". Should look like this:
- Go to "Containers", click the three "..." on the right side of the newly created container and select "Manage ACL"
- Give "Other" the "Execute" permission. It should now look like this:
Execute is needed to be able to traverse the root directory where you have no permissions
- Open the container and create a home folder for each user in this root folder
- Create the users you want to have, activate "Allow ACL authorization" and - important - DO NOT create a container for this user and don´t select the "root container"!
- Set the "Home (landing) directory" to "root container/userfolder" for each user
- Open the just created user again and note the "User Id". A user should look like this:
- Use WinSCP or any other supported SSH client and connect with the root user (<storageaccountname>.<rootusername>@<storageaccountname>.blob.core.windows.net)
- You are now in the root of the container and should see the folder(s) you created for your users
- With WinSCP select the user folder, open properties and set the "Owner" to the "User Id" you noted in step 8
- I would also remove the R and X permission for the Group as they are not needed. After this, it should look like this:
-
- Finished! :)
If you get a new user you have to do the step 5 to 12 again.
If a users tries to go to the root folder, he gets this error in WinSCP:
Why is this working this way? Because ACLs are only evaluated, if the user has NO container permission! This link also explains the Execute permission set in step 4.
If you need a user for your automation tool to connect and download files, just create a user and give him permissions on the container. Container permissions are evaluated before ACL so it automatically has permissions on all folders. This should look like this:
Brgds Deas