• vsis@feddit.cl
    link
    fedilink
    English
    arrow-up
    43
    ·
    1 year 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
      ·
      1 year 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
        ·
        1 year 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
        ·
        1 year 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.

    • _s10e@feddit.de
      link
      fedilink
      arrow-up
      16
      ·
      1 year 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
      1 year 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.