Share via

Adding Default acl permission on the SFTP enabled storage account container causing it to fail.

Sumit Gaur 455 Reputation points
2026-04-18T11:28:24.9366667+00:00

Hi,

We have an SFTP-enabled Azure Storage account, and we are using ACLs to manage access to different subfolders inside our container.

Our structure looks like below, where within a single container we have created multiple subfolders that act as root directories for different users:

blobcontainer
├── user1/
│   ├── incoming/
│   └── outgoing/
└── user2/
    ├── incoming/
    └── outgoing/

In this setup, we have multiple users configured within the same container, and their access is controlled using ACLs.

To configure access, we perform the following steps:

  • Create a new local user with ACL authorization enabled and set the root directory to: /blobcontainer/user1
  • We also have another local user which acts as an admin SFTP user with full access to all containers.
  • We connect to the storage account using the admin account: sftp stasftp.<container-name>******@stasftp.blob.core.windows.net

This connects the admin user to the container where access needs to be managed.

We then run the following commands:

  • List all directories: ls
  • Allow admin to modify ownership: chmod 001 .
  • Assign ownership of the target directory to the user (e.g., UID 1000): chown 1000 user1
  • Recursively assign ownership to subdirectories: chown 1000 user1/*

We repeat these steps for each user.

This setup works fine, and we are able to control user access to their respective directories.

However, we are facing an issue when files are uploaded using Azure native services like Logic Apps or Azure Functions. The uploaded blobs do not have the required permissions, and the SFTP user is unable to access them.

To resolve this, we tried adding Default ACLs for the local user via Azure Portal and Azure Storage Explorer. This successfully assigns permissions to newly created files.

However, it introduces a new issue:

  • SFTP login starts failing with the error: "The requested container does not exist or is not accessible. Authentication failed."
  • The other user on the container level has execute x permission so it should generally traverse the directory.
  • If we remove the Default ACL, login starts working again.

Problem summary:

  • Without Default ACL → Login works, but new files are not accessible
  • With Default ACL → File access works, but SFTP login fails

Has anyone faced a similar issue or knows the correct way to handle ACLs for files uploaded via Azure services in an SFTP-enabled storage account?

Azure Storage
Azure Storage

Globally unique resources that provide access to data management services and serve as the parent namespace for the services.


1 answer

Sort by: Most helpful
  1. Alex Burlachenko 20,905 Reputation points MVP Volunteer Moderator
    2026-04-30T08:24:22.85+00:00

    Sumit Gaur hi & thx for join me here at Q&A portal,

    I guess it is SFTP limitation, not ur chmod/chown flow being wrong.

    Azure Blob SFTP with local users currently does not support Default ACLs or extra named ACL entries in the access path, if any directory in the login path or home directory has Default ACLs/additional ACLs, SFTP can fail even when permissions look correct, which matches ur “default ACL added > login fails” behavior.

    Only basic POSIX entries like user::, group::, other:: are safe for SFTP local-user access, Default ACLs are the problem. emove Default ACLs from the container/user path and keep access controlled with ownership + normal access ACLs only. For files uploaded by Logic Apps/Functions, dont rely on Default ACL inheritance, instead run a post-upload permission fix, like an Event Grid trigger to Function that sets owner/permissions on the new blob/path, or make the uploader write with the correct identity/ACL model. If u need real inherited ACL behavior across REST/SDK and SFTP, look at Entra ID-based SFTP access but its still preview, so test hard before prod.

    Default ACLs break local-user SFTP login, remove them and handle new blob permissions

    rgds, Alex

    &

    if my answer helps pls accept it.
    

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.