• vsis@feddit.cl
    link
    fedilink
    English
    arrow-up
    43
    ·
    7 months ago

    I remember myself asking why directories had x flags in their permissions. Like, you don’t execute them. What do they use the x flag for?

    • TootSweet@lemmy.world
      link
      fedilink
      English
      arrow-up
      33
      ·
      7 months ago

      There needs to be a Linux kernel fork that when you try to execute a directory executes all programs in the directory. In parallel. Juuuuuuuust to fuck with people who might accidentally execute the /usr/bin directory.

      • SzethFriendOfNimi@lemmy.world
        link
        fedilink
        arrow-up
        16
        ·
        7 months ago

        Or worse… In order. Based on last Modified date. And use that as the basis for some scheduling agent where timing and order of execution is essential.

      • donio@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        7 months ago

        Those of us who use the autocd feature of shells “execute” directories all the time. For example I’d type just /usr/bin RET if I wanted to cd to /usr/bin.

    • TQuid@beehaw.org
      link
      fedilink
      English
      arrow-up
      22
      ·
      7 months ago

      For directories, it’s permission to cd into it. Read is whether you can list files, and write is remove, rename, or create new files. Don’t ask questions about the secret sticky bit

    • _s10e@feddit.de
      link
      fedilink
      arrow-up
      17
      ·
      7 months ago

      The x permission on directories is exactly for this purpose. You can use the directory. You cannot read (requires rx), you cannot write (w), but you can ‘cd’ and operate on files in the directory.

      This is important, you can lock someone out from a directory tree buy not giving them ‘x’ on the root. So, if your home is rwx------, no one but the owner can do anything in your home. This is effective even if some files and subdirectories have less restrictive permissions.

    • atzanteol@sh.itjust.works
      link
      fedilink
      arrow-up
      7
      ·
      edit-2
      7 months ago

      It’s necessary if you want to give somebody rw access to a subdirectory but not the parent.

      The parent gets “x” and the child gets “rwx”.

      This way you can have multiple users with their own directories under, say, /var/www/html but restrict access to /var/www/html itself.

      If the user doesn’t have “x” then they can’t see anything in that directory at all.