Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

setfacl: acl_test1: Operation not supported #2750

Open
Ebola-Chan-bot opened this issue Dec 12, 2017 · 12 comments
Open

setfacl: acl_test1: Operation not supported #2750

Ebola-Chan-bot opened this issue Dec 12, 2017 · 12 comments
Labels

Comments

@Ebola-Chan-bot
Copy link

"vbird1" is a test account

  • Your Windows build number: (Type ver at a Windows Command Prompt)
    17046

  • What you're doing and what's happening: (Copy&paste specific commands and their output, or include screen shots)
    touch acl_test1
    setfacl -m u:vbird1:rx acl_test1

  • What's wrong / what should be happening instead:
    setfacl: acl_test1: Operation not supported

  • Strace of the failing command, if applicable: (If some_command is failing, then run strace -o some_command.strace -f some_command some_args, and link the contents of some_command.strace in a gist here)
    execve("/usr/bin/setfacl", ["setfacl", "-m", "u:vbird1:rx", "acl_test1"], [/* 15 vars /]) = 0
    brk(NULL) = 0x24eb000
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
    mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7ba4b70000
    access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
    open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
    fstat(3, {st_mode=S_IFREG|0644, st_size=41845, ...}) = 0
    mmap(NULL, 41845, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f7ba4b65000
    close(3) = 0
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
    open("/lib/x86_64-linux-gnu/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\34\0\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0644, st_size=31232, ...}) = 0
    mmap(NULL, 2126336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7ba45f0000
    mprotect(0x7f7ba45f7000, 2093056, PROT_NONE) = 0
    mmap(0x7f7ba47f6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f7ba47f6000
    close(3) = 0
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
    open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\t\2\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0755, st_size=1868984, ...}) = 0
    mmap(NULL, 3971488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7ba4220000
    mprotect(0x7f7ba43e0000, 2097152, PROT_NONE) = 0
    mmap(0x7f7ba45e0000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c0000) = 0x7f7ba45e0000
    mmap(0x7f7ba45e6000, 14752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f7ba45e6000
    close(3) = 0
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
    open("/lib/x86_64-linux-gnu/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\20\0\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0644, st_size=18624, ...}) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7ba4b60000
    mmap(NULL, 2113760, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7ba4010000
    mprotect(0x7f7ba4014000, 2093056, PROT_NONE) = 0
    mmap(0x7f7ba4213000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f7ba4213000
    close(3) = 0
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7ba4b50000
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7ba4b40000
    arch_prctl(ARCH_SET_FS, 0x7f7ba4b50700) = 0
    mprotect(0x7f7ba45e0000, 16384, PROT_READ) = 0
    mprotect(0x7f7ba4213000, 4096, PROT_READ) = 0
    mprotect(0x7f7ba47f6000, 4096, PROT_READ) = 0
    mprotect(0x607000, 4096, PROT_READ) = 0
    mprotect(0x7f7ba4a25000, 4096, PROT_READ) = 0
    munmap(0x7f7ba4b65000, 41845) = 0
    brk(NULL) = 0x24eb000
    brk(0x250c000) = 0x250c000
    open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
    fstat(3, {st_mode=S_IFREG|0644, st_size=1668976, ...}) = 0
    mmap(NULL, 1668976, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f7ba488d000
    close(3) = 0
    socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
    connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
    close(3) = 0
    socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
    connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
    close(3) = 0
    open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3
    fstat(3, {st_mode=S_IFREG|0644, st_size=497, ...}) = 0
    read(3, "# /etc/nsswitch.conf\n#\n# Example"..., 512) = 497
    read(3, "", 512) = 0
    close(3) = 0
    open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
    fstat(3, {st_mode=S_IFREG|0644, st_size=41845, ...}) = 0
    mmap(NULL, 41845, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f7ba4b65000
    close(3) = 0
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
    open("/lib/x86_64-linux-gnu/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\22\0\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0644, st_size=35688, ...}) = 0
    mmap(NULL, 2131040, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7ba3e00000
    mprotect(0x7f7ba3e08000, 2093056, PROT_NONE) = 0
    mmap(0x7f7ba4007000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7f7ba4007000
    close(3) = 0
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
    open("/lib/x86_64-linux-gnu/libnsl.so.1", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360?\0\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0644, st_size=93128, ...}) = 0
    mmap(NULL, 2198104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7ba3be0000
    mprotect(0x7f7ba3bf6000, 2093056, PROT_NONE) = 0
    mmap(0x7f7ba3df5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f7ba3df5000
    mmap(0x7f7ba3df7000, 6744, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f7ba3df7000
    close(3) = 0
    mprotect(0x7f7ba3df5000, 4096, PROT_READ) = 0
    mprotect(0x7f7ba4007000, 4096, PROT_READ) = 0
    munmap(0x7f7ba4b65000, 41845) = 0
    open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
    fstat(3, {st_mode=S_IFREG|0644, st_size=41845, ...}) = 0
    mmap(NULL, 41845, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f7ba4b65000
    close(3) = 0
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
    open("/lib/x86_64-linux-gnu/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260 \0\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0644, st_size=47648, ...}) = 0
    mmap(NULL, 2143624, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7ba39d0000
    mprotect(0x7f7ba39db000, 2093056, PROT_NONE) = 0
    mmap(0x7f7ba3bda000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa000) = 0x7f7ba3bda000
    close(3) = 0
    access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
    open("/lib/x86_64-linux-gnu/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260!\0\0\0\0\0\0"..., 832) = 832
    fstat(3, {st_mode=S_IFREG|0644, st_size=47600, ...}) = 0
    mmap(NULL, 2168600, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7ba37b0000
    mprotect(0x7f7ba37bb000, 2093056, PROT_NONE) = 0
    mmap(0x7f7ba39ba000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa000) = 0x7f7ba39ba000
    mmap(0x7f7ba39bc000, 22296, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f7ba39bc000
    close(3) = 0
    mprotect(0x7f7ba39ba000, 4096, PROT_READ) = 0
    mprotect(0x7f7ba3bda000, 4096, PROT_READ) = 0
    munmap(0x7f7ba4b65000, 41845) = 0
    open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
    lseek(3, 0, SEEK_CUR) = 0
    fstat(3, {st_mode=S_IFREG|0644, st_size=2114, ...}) = 0
    mmap(NULL, 2114, PROT_READ, MAP_SHARED, 3, 0) = 0x7f7ba4b78000
    lseek(3, 2114, SEEK_SET) = 2114
    munmap(0x7f7ba4b78000, 2114) = 0
    close(3) = 0
    getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=64
    1024}) = 0
    lstat("acl_test1", {st_mode=S_IFREG|0666, st_size=0, ...}) = 0
    getxattr("acl_test1", "system.posix_acl_access", 0x7fffebb95300, 132) = -1 EOPNOTSUPP (Operation not supported)
    setxattr("acl_test1", "system.posix_acl_access", "\2\0\0\0\1\0\6\0\377\377\377\377\2\0\5\0\352\3\0\0\4\0\6\0\377\377\377\377\20\0\7\0\377\377\377\377 \0\6\0\377\377\377\377", 44, 0) = -1 EOPNOTSUPP (Operation not supported)
    open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
    fstat(3, {st_mode=S_IFREG|0644, st_size=2995, ...}) = 0
    read(3, "# Locale name alias data base.\n#"..., 512) = 512
    read(3, "See the\n# GNU General Public Lic"..., 512) = 512
    read(3, "nd for the time being for\n# back"..., 512) = 512
    read(3, "hese lines were removed\n# becaus"..., 512) = 512
    read(3, "8859-1\ngalego\t\tgl_ES.ISO-8859-1\n"..., 512) = 512
    read(3, "O.ISO-8859-1 nb_NO.ISO-8859-1\nno"..., 512) = 435
    read(3, "", 512) = 0
    close(3) = 0
    open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale-langpack/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale-langpack/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale-langpack/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale-langpack/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale-langpack/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    open("/usr/share/locale-langpack/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
    write(2, "setfacl: acl_test1: Operation no"..., 44setfacl: acl_test1: Operation not supported
    ) = 44
    exit_group(1) = ?
    +++ exited with 1 +++

@Brian-Perkins
Copy link

getxattr("acl_test1", "system.posix_acl_access", 0x7fffebb95300, 132) = -1 EOPNOTSUPP (Operation not supported)

The current list of supported extended attributes is pretty small, and no system.* attributes are currently on that list. Marking this as a bug.

@homotechsual
Copy link

This issue still seems to exist on 17134

@Brian-Perkins Brian-Perkins added feature and removed bug labels Jul 18, 2018
@Brian-Perkins
Copy link

Actually digging into what this attribute does, this will not be a straight-forward resolution. Windows already has a very rich ACL model which can be accessed via icacls.exe, but the problem is that the users created in the distro are not known to Windows, so they cannot be used for ACL operations. So the most obvious solutions would be either: 1) create minimal Windows entities corresponding to distro users that can be used for ACL operations; or 2) build a separate ACL model that only works inside of WSL. Neither of these is a trivial task. Unfortunately, that means switching this from bug to feature.

@WSLUser
Copy link

WSLUser commented Jul 18, 2018

I'd vote for option 2 to enable posix-style acls as described in this issue's OP.

@homotechsual
Copy link

I'd like to see posix acls work but map as closely as possible to underlying windows permissions. If such a thing is possible.

@pieterlukasse
Copy link

pieterlukasse commented Aug 5, 2019

will setfacl work in WSL 2?

@supgeek-rod
Copy link

waiting for a solution ...

@supgeek-rod
Copy link

waiting for a solution ...

link question: https://serverfault.com/questions/1106170/setfacl-operation-not-supported-ubuntu-wsl

@Ebola-Chan-bot
Copy link
Author

will setfacl work in WSL 2?

Please notify me if it works in WSL 2. I shall close this issue then.

@rhoban13
Copy link

Can anyone confirm or deny if this is supported in WSL2?

@suresh-chandran-pulikkal

Can anyone confirm or deny if this is supported in WSL2?

Not working in WSL2 as of 28/2/2023
Tried it on openSUSE Tumbleweed

@Lordfirespeed
Copy link

Lordfirespeed commented Oct 14, 2024

14/10/2024: setfacl / getfacl in WSL2 seem to work.

System information:

> ver
Microsoft Windows [Version 10.0.22631.4317]

WSL information:

$ uname -r 
5.15.153.1-microsoft-standard-WSL2
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

For example:

me@machine$ cd /opt
me@machine:/opt$ sudo /bin/bash -c "cat > foo.txt"
bar
^C
me@machine:/opt$ cat foo.txt
bar
me@machine:/opt$ cat > foo.txt
-bash: foo.txt: Permission denied
me@machine:/opt$ sudo setfacl -m u:me:rw foo.txt
me@machine:/opt$ sudo getfacl foo.txt
# file: foo.txt
# owner: root
# group: root
user::rw-
user:me:rw-
group::r--
mask::rw-
other::r--

me@machine:/opt$ cat > foo.txt
baz
^C
me@machine:/opt$ cat foo.txt
baz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

9 participants