title: ls: Operation not Permitted
body: <p>I have a running a fuse fs with options allow_other and umask 0. This gives me a set of files with permissions set to 777. Though when I try to <code>ls -l</code> in the directory containing the files I get the following output:</p>
  
  <pre><code>ls: name: Operation not permitted
  ls: tags: Operation not permitted
  ls: location: Operation not permitted
  ls: ext: Operation not permitted
  ls: experiment_id: Operation not permitted
  ls: file_path: Operation not permitted
  </code></pre>
  
  <p>Can anyone tell me why despite having global permissions (777) I am still getting operation not permitted?</p>
  
  <p>On running strace, I get the following traces:</p>
  
  <pre><code>lstat("tags", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
  lgetxattr("tags", "security.selinux", 0x112ae80, 255) = -1 EPERM (Operation not     permitted)
  write(2, "ls: ", 4ls: )                     = 4
  write(2, "tags", 4tags)                     = 4
  write(2, ": Operation not permitted", 25: Operation not permitted) = 25
  write(2, "\n", 1
  )                       = 1
  lstat("location", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
  lgetxattr("location", "security.selinux", 0x112aea0, 255) = -1 EPERM (Operation not      permitted)
  write(2, "ls: ", 4ls: )                     = 4
  write(2, "location", 8location)                 = 8
  write(2, ": Operation not permitted", 25: Operation not permitted) = 25
  write(2, "\n", 1)                       = 1
  lstat("ext", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
  lgetxattr("ext", "security.selinux", 0x112aec0, 255) = -1 EPERM (Operation not permitted)
  write(2, "ls: ", 4ls: )                     = 4
  write(2, "ext", 3ext)                      = 3
  write(2, ": Operation not permitted", 25: Operation not permitted) = 25
  write(2, "\n", 1)                       = 1
  lstat("experiment_id", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
  lgetxattr("experiment_id", "security.selinux", 0x112aee0, 255) = -1 EPERM (Operation not    permitted)  
  write(2, "ls: ", 4ls: )                     = 4
  write(2, "experiment_id", 13experiment_id)           = 13
  write(2, ": Operation not permitted", 25: Operation not permitted) = 25
  write(2, "\n", 1)                       = 1
  lstat("file_path", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
  lgetxattr("file_path", "security.selinux", 0x112af00, 255) = -1 EPERM (Operation not permitted)
  write(2, "ls: ", 4ls: )                     = 4
  write(2, "file_path", 9file_path)                = 9
  write(2, ": Operation not permitted", 25: Operation not permitted) = 25
  write(2, "\n", 1)                       = 1
  </code></pre>
  
  <p>So from the trace, it looks like its trying to get the selinux attribute even though its disabled on my system.</p>
  
  <pre><code>cat /etc//sysconfig/selinux
  SELINUX=disabled
  SELINUXTYPE=targeted
  </code></pre>