Why is the “ls” command showing permissions of files in a FAT32 partition?












33















I believe that the FAT32 file system does not support file permissions, however when I do ls -l on a FAT32 partition, ls -l shows that the files have permissions:



-rw-r--r-- 1 john john 11 Mar 20 15:43 file1.txt
-rw-r--r-- 1 john john 5 Mar 20 15:49 file2.txt


Why is ls -l displaying the permissions of files?










share|improve this question









New contributor




user342731 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

























    33















    I believe that the FAT32 file system does not support file permissions, however when I do ls -l on a FAT32 partition, ls -l shows that the files have permissions:



    -rw-r--r-- 1 john john 11 Mar 20 15:43 file1.txt
    -rw-r--r-- 1 john john 5 Mar 20 15:49 file2.txt


    Why is ls -l displaying the permissions of files?










    share|improve this question









    New contributor




    user342731 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      33












      33








      33








      I believe that the FAT32 file system does not support file permissions, however when I do ls -l on a FAT32 partition, ls -l shows that the files have permissions:



      -rw-r--r-- 1 john john 11 Mar 20 15:43 file1.txt
      -rw-r--r-- 1 john john 5 Mar 20 15:49 file2.txt


      Why is ls -l displaying the permissions of files?










      share|improve this question









      New contributor




      user342731 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      I believe that the FAT32 file system does not support file permissions, however when I do ls -l on a FAT32 partition, ls -l shows that the files have permissions:



      -rw-r--r-- 1 john john 11 Mar 20 15:43 file1.txt
      -rw-r--r-- 1 john john 5 Mar 20 15:49 file2.txt


      Why is ls -l displaying the permissions of files?







      linux permissions filesystems fat fat32






      share|improve this question









      New contributor




      user342731 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      user342731 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited Mar 22 at 0:56









      psmears

      44728




      44728






      New contributor




      user342731 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked Mar 20 at 13:52









      user342731user342731

      17123




      17123




      New contributor




      user342731 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      user342731 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      user342731 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          3 Answers
          3






          active

          oldest

          votes


















          69














          The filesystem as stored on disk doesn't store file permissions, but the filesystem driver has to provide them to the operating system since they are an integral part of the Unix filesystem concept and the system call interfaces have no way of presenting that the permissions are missing.



          Also consider what would happen if a file didn't have any permission bits at all? Would it be the same as 0777, i.e. access to all; or the same as 0000, i.e. no access to anyone? But both of those are file permissions, so why not show them? Or do something more useful and have a way to set some sensible permissions.



          So, the driver fakes some permissions, same ones for all files. The permissions along with the files' owner and group are configurable at mount time. These are described under "Mount options for fat" in the mount(8) man page:




          Mount options for fat

          (Note: fat is not a separate filesystem, but a common part of the msdos, umsdos and vfat filesystems.)



          uid=valueandgid=value

          Set the owner and group of all files. (Default: the UID and GID of the current process.)



          umask=value

          Set the umask (the bitmask of the permissions that are not present). The default is the umask of the current process. The value
          is given in octal.



          dmask=value

          Set the umask applied to directories only. The default is the umask of the current process. The value is given in octal.



          fmask=value

          Set the umask applied to regular files only. The default is the umask of the current process. The value is given in octal.




          Note that the permissions are presented as masks, so the final permissions are the negation of the mask. fmask=0133 would result in all files having permissions 0644, or rw-r--r--.



          Also, the defaults are inherited from the process calling mount(), so if you call mount from the command line, the shell's umask will apply.






          share|improve this answer





















          • 7





            And the reason it does fake the permissions is that otherwise ls, and any other program that looked at file permissions (even just your code trying to read a file) would have to have the logic to handle all the different file system organizations built in.

            – jamesqf
            Mar 20 at 16:50






          • 4





            @jamesqf, yes, and even the system call interfaces don't have the option of "not having permissions", since the permissions have always been there. (That was what I was thinking when I wrote they're an "integral part".) Therefore, the permissions always shall be there, too, and things like ACLs are made so as to keep them meaningful.

            – ilkkachu
            Mar 20 at 16:59






          • 2





            I've usually seen mode 777 for all files in FAT filesystems (FAT16 with an old driver, at least).

            – forest
            Mar 21 at 20:13






          • 2





            @forest that depends on umask mount option, for which the default value is umask of mount process (see the man page linked to in this answer).

            – Ruslan
            Mar 22 at 14:21













          • But FAT does store some permissions/attributes (read-only, hidden, system, etc), even if they do not map exactly to the Unix ones. chmod ugo-w on a file will turn the read-only attribute on. Using the fmask=0133 option as in your example will not result in all files having the 0644 permission. What FAT absolutely does not store is a uid and a gid for each file. Please clarify; the answer as it stands is highly misleading.

            – mosvy
            2 days ago



















          21














          But the files do have permissions. User john has RW access, while some random user only has read access. These permissions didn’t come from the filesystem itself but rather from mount options (-o uid/gid/umask), which doesn’t make them any less real.



          You could have multiple vfat partitions mounted with different options and you could use ls to determine what those options were. You could even use mount --bind to have a single directory contain files from different vfat partitions, and ls would correctly show what permissions have been specified for each file.






          share|improve this answer































            14














            ls doesn't know about FAT32, it only knows about the Virtual Filesystem (VFS) interface exposed by the kernel with POSIX open / readdir / stat system calls.



            Linux doesn't support the concept of files that don't have user/group/other permission bits, struct stat simply contains a mode_t st_mode; member (and uid, gid members) that the kernel must fill out when ls -l makes stat(2) system calls.



            There's no special code that means "not available" or "not applicable" for any of those fields, so the kernel's vfat driver must make something up. FAT16/FAT32 does have a read-only flag, but otherwise the owner/group come from mount options, and so does a umask.






            share|improve this answer























              Your Answer








              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "106"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });






              user342731 is a new contributor. Be nice, and check out our Code of Conduct.










              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f507441%2fwhy-is-the-ls-command-showing-permissions-of-files-in-a-fat32-partition%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              3 Answers
              3






              active

              oldest

              votes








              3 Answers
              3






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              69














              The filesystem as stored on disk doesn't store file permissions, but the filesystem driver has to provide them to the operating system since they are an integral part of the Unix filesystem concept and the system call interfaces have no way of presenting that the permissions are missing.



              Also consider what would happen if a file didn't have any permission bits at all? Would it be the same as 0777, i.e. access to all; or the same as 0000, i.e. no access to anyone? But both of those are file permissions, so why not show them? Or do something more useful and have a way to set some sensible permissions.



              So, the driver fakes some permissions, same ones for all files. The permissions along with the files' owner and group are configurable at mount time. These are described under "Mount options for fat" in the mount(8) man page:




              Mount options for fat

              (Note: fat is not a separate filesystem, but a common part of the msdos, umsdos and vfat filesystems.)



              uid=valueandgid=value

              Set the owner and group of all files. (Default: the UID and GID of the current process.)



              umask=value

              Set the umask (the bitmask of the permissions that are not present). The default is the umask of the current process. The value
              is given in octal.



              dmask=value

              Set the umask applied to directories only. The default is the umask of the current process. The value is given in octal.



              fmask=value

              Set the umask applied to regular files only. The default is the umask of the current process. The value is given in octal.




              Note that the permissions are presented as masks, so the final permissions are the negation of the mask. fmask=0133 would result in all files having permissions 0644, or rw-r--r--.



              Also, the defaults are inherited from the process calling mount(), so if you call mount from the command line, the shell's umask will apply.






              share|improve this answer





















              • 7





                And the reason it does fake the permissions is that otherwise ls, and any other program that looked at file permissions (even just your code trying to read a file) would have to have the logic to handle all the different file system organizations built in.

                – jamesqf
                Mar 20 at 16:50






              • 4





                @jamesqf, yes, and even the system call interfaces don't have the option of "not having permissions", since the permissions have always been there. (That was what I was thinking when I wrote they're an "integral part".) Therefore, the permissions always shall be there, too, and things like ACLs are made so as to keep them meaningful.

                – ilkkachu
                Mar 20 at 16:59






              • 2





                I've usually seen mode 777 for all files in FAT filesystems (FAT16 with an old driver, at least).

                – forest
                Mar 21 at 20:13






              • 2





                @forest that depends on umask mount option, for which the default value is umask of mount process (see the man page linked to in this answer).

                – Ruslan
                Mar 22 at 14:21













              • But FAT does store some permissions/attributes (read-only, hidden, system, etc), even if they do not map exactly to the Unix ones. chmod ugo-w on a file will turn the read-only attribute on. Using the fmask=0133 option as in your example will not result in all files having the 0644 permission. What FAT absolutely does not store is a uid and a gid for each file. Please clarify; the answer as it stands is highly misleading.

                – mosvy
                2 days ago
















              69














              The filesystem as stored on disk doesn't store file permissions, but the filesystem driver has to provide them to the operating system since they are an integral part of the Unix filesystem concept and the system call interfaces have no way of presenting that the permissions are missing.



              Also consider what would happen if a file didn't have any permission bits at all? Would it be the same as 0777, i.e. access to all; or the same as 0000, i.e. no access to anyone? But both of those are file permissions, so why not show them? Or do something more useful and have a way to set some sensible permissions.



              So, the driver fakes some permissions, same ones for all files. The permissions along with the files' owner and group are configurable at mount time. These are described under "Mount options for fat" in the mount(8) man page:




              Mount options for fat

              (Note: fat is not a separate filesystem, but a common part of the msdos, umsdos and vfat filesystems.)



              uid=valueandgid=value

              Set the owner and group of all files. (Default: the UID and GID of the current process.)



              umask=value

              Set the umask (the bitmask of the permissions that are not present). The default is the umask of the current process. The value
              is given in octal.



              dmask=value

              Set the umask applied to directories only. The default is the umask of the current process. The value is given in octal.



              fmask=value

              Set the umask applied to regular files only. The default is the umask of the current process. The value is given in octal.




              Note that the permissions are presented as masks, so the final permissions are the negation of the mask. fmask=0133 would result in all files having permissions 0644, or rw-r--r--.



              Also, the defaults are inherited from the process calling mount(), so if you call mount from the command line, the shell's umask will apply.






              share|improve this answer





















              • 7





                And the reason it does fake the permissions is that otherwise ls, and any other program that looked at file permissions (even just your code trying to read a file) would have to have the logic to handle all the different file system organizations built in.

                – jamesqf
                Mar 20 at 16:50






              • 4





                @jamesqf, yes, and even the system call interfaces don't have the option of "not having permissions", since the permissions have always been there. (That was what I was thinking when I wrote they're an "integral part".) Therefore, the permissions always shall be there, too, and things like ACLs are made so as to keep them meaningful.

                – ilkkachu
                Mar 20 at 16:59






              • 2





                I've usually seen mode 777 for all files in FAT filesystems (FAT16 with an old driver, at least).

                – forest
                Mar 21 at 20:13






              • 2





                @forest that depends on umask mount option, for which the default value is umask of mount process (see the man page linked to in this answer).

                – Ruslan
                Mar 22 at 14:21













              • But FAT does store some permissions/attributes (read-only, hidden, system, etc), even if they do not map exactly to the Unix ones. chmod ugo-w on a file will turn the read-only attribute on. Using the fmask=0133 option as in your example will not result in all files having the 0644 permission. What FAT absolutely does not store is a uid and a gid for each file. Please clarify; the answer as it stands is highly misleading.

                – mosvy
                2 days ago














              69












              69








              69







              The filesystem as stored on disk doesn't store file permissions, but the filesystem driver has to provide them to the operating system since they are an integral part of the Unix filesystem concept and the system call interfaces have no way of presenting that the permissions are missing.



              Also consider what would happen if a file didn't have any permission bits at all? Would it be the same as 0777, i.e. access to all; or the same as 0000, i.e. no access to anyone? But both of those are file permissions, so why not show them? Or do something more useful and have a way to set some sensible permissions.



              So, the driver fakes some permissions, same ones for all files. The permissions along with the files' owner and group are configurable at mount time. These are described under "Mount options for fat" in the mount(8) man page:




              Mount options for fat

              (Note: fat is not a separate filesystem, but a common part of the msdos, umsdos and vfat filesystems.)



              uid=valueandgid=value

              Set the owner and group of all files. (Default: the UID and GID of the current process.)



              umask=value

              Set the umask (the bitmask of the permissions that are not present). The default is the umask of the current process. The value
              is given in octal.



              dmask=value

              Set the umask applied to directories only. The default is the umask of the current process. The value is given in octal.



              fmask=value

              Set the umask applied to regular files only. The default is the umask of the current process. The value is given in octal.




              Note that the permissions are presented as masks, so the final permissions are the negation of the mask. fmask=0133 would result in all files having permissions 0644, or rw-r--r--.



              Also, the defaults are inherited from the process calling mount(), so if you call mount from the command line, the shell's umask will apply.






              share|improve this answer















              The filesystem as stored on disk doesn't store file permissions, but the filesystem driver has to provide them to the operating system since they are an integral part of the Unix filesystem concept and the system call interfaces have no way of presenting that the permissions are missing.



              Also consider what would happen if a file didn't have any permission bits at all? Would it be the same as 0777, i.e. access to all; or the same as 0000, i.e. no access to anyone? But both of those are file permissions, so why not show them? Or do something more useful and have a way to set some sensible permissions.



              So, the driver fakes some permissions, same ones for all files. The permissions along with the files' owner and group are configurable at mount time. These are described under "Mount options for fat" in the mount(8) man page:




              Mount options for fat

              (Note: fat is not a separate filesystem, but a common part of the msdos, umsdos and vfat filesystems.)



              uid=valueandgid=value

              Set the owner and group of all files. (Default: the UID and GID of the current process.)



              umask=value

              Set the umask (the bitmask of the permissions that are not present). The default is the umask of the current process. The value
              is given in octal.



              dmask=value

              Set the umask applied to directories only. The default is the umask of the current process. The value is given in octal.



              fmask=value

              Set the umask applied to regular files only. The default is the umask of the current process. The value is given in octal.




              Note that the permissions are presented as masks, so the final permissions are the negation of the mask. fmask=0133 would result in all files having permissions 0644, or rw-r--r--.



              Also, the defaults are inherited from the process calling mount(), so if you call mount from the command line, the shell's umask will apply.







              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited Mar 22 at 16:17

























              answered Mar 20 at 13:56









              ilkkachuilkkachu

              62.5k10103179




              62.5k10103179








              • 7





                And the reason it does fake the permissions is that otherwise ls, and any other program that looked at file permissions (even just your code trying to read a file) would have to have the logic to handle all the different file system organizations built in.

                – jamesqf
                Mar 20 at 16:50






              • 4





                @jamesqf, yes, and even the system call interfaces don't have the option of "not having permissions", since the permissions have always been there. (That was what I was thinking when I wrote they're an "integral part".) Therefore, the permissions always shall be there, too, and things like ACLs are made so as to keep them meaningful.

                – ilkkachu
                Mar 20 at 16:59






              • 2





                I've usually seen mode 777 for all files in FAT filesystems (FAT16 with an old driver, at least).

                – forest
                Mar 21 at 20:13






              • 2





                @forest that depends on umask mount option, for which the default value is umask of mount process (see the man page linked to in this answer).

                – Ruslan
                Mar 22 at 14:21













              • But FAT does store some permissions/attributes (read-only, hidden, system, etc), even if they do not map exactly to the Unix ones. chmod ugo-w on a file will turn the read-only attribute on. Using the fmask=0133 option as in your example will not result in all files having the 0644 permission. What FAT absolutely does not store is a uid and a gid for each file. Please clarify; the answer as it stands is highly misleading.

                – mosvy
                2 days ago














              • 7





                And the reason it does fake the permissions is that otherwise ls, and any other program that looked at file permissions (even just your code trying to read a file) would have to have the logic to handle all the different file system organizations built in.

                – jamesqf
                Mar 20 at 16:50






              • 4





                @jamesqf, yes, and even the system call interfaces don't have the option of "not having permissions", since the permissions have always been there. (That was what I was thinking when I wrote they're an "integral part".) Therefore, the permissions always shall be there, too, and things like ACLs are made so as to keep them meaningful.

                – ilkkachu
                Mar 20 at 16:59






              • 2





                I've usually seen mode 777 for all files in FAT filesystems (FAT16 with an old driver, at least).

                – forest
                Mar 21 at 20:13






              • 2





                @forest that depends on umask mount option, for which the default value is umask of mount process (see the man page linked to in this answer).

                – Ruslan
                Mar 22 at 14:21













              • But FAT does store some permissions/attributes (read-only, hidden, system, etc), even if they do not map exactly to the Unix ones. chmod ugo-w on a file will turn the read-only attribute on. Using the fmask=0133 option as in your example will not result in all files having the 0644 permission. What FAT absolutely does not store is a uid and a gid for each file. Please clarify; the answer as it stands is highly misleading.

                – mosvy
                2 days ago








              7




              7





              And the reason it does fake the permissions is that otherwise ls, and any other program that looked at file permissions (even just your code trying to read a file) would have to have the logic to handle all the different file system organizations built in.

              – jamesqf
              Mar 20 at 16:50





              And the reason it does fake the permissions is that otherwise ls, and any other program that looked at file permissions (even just your code trying to read a file) would have to have the logic to handle all the different file system organizations built in.

              – jamesqf
              Mar 20 at 16:50




              4




              4





              @jamesqf, yes, and even the system call interfaces don't have the option of "not having permissions", since the permissions have always been there. (That was what I was thinking when I wrote they're an "integral part".) Therefore, the permissions always shall be there, too, and things like ACLs are made so as to keep them meaningful.

              – ilkkachu
              Mar 20 at 16:59





              @jamesqf, yes, and even the system call interfaces don't have the option of "not having permissions", since the permissions have always been there. (That was what I was thinking when I wrote they're an "integral part".) Therefore, the permissions always shall be there, too, and things like ACLs are made so as to keep them meaningful.

              – ilkkachu
              Mar 20 at 16:59




              2




              2





              I've usually seen mode 777 for all files in FAT filesystems (FAT16 with an old driver, at least).

              – forest
              Mar 21 at 20:13





              I've usually seen mode 777 for all files in FAT filesystems (FAT16 with an old driver, at least).

              – forest
              Mar 21 at 20:13




              2




              2





              @forest that depends on umask mount option, for which the default value is umask of mount process (see the man page linked to in this answer).

              – Ruslan
              Mar 22 at 14:21







              @forest that depends on umask mount option, for which the default value is umask of mount process (see the man page linked to in this answer).

              – Ruslan
              Mar 22 at 14:21















              But FAT does store some permissions/attributes (read-only, hidden, system, etc), even if they do not map exactly to the Unix ones. chmod ugo-w on a file will turn the read-only attribute on. Using the fmask=0133 option as in your example will not result in all files having the 0644 permission. What FAT absolutely does not store is a uid and a gid for each file. Please clarify; the answer as it stands is highly misleading.

              – mosvy
              2 days ago





              But FAT does store some permissions/attributes (read-only, hidden, system, etc), even if they do not map exactly to the Unix ones. chmod ugo-w on a file will turn the read-only attribute on. Using the fmask=0133 option as in your example will not result in all files having the 0644 permission. What FAT absolutely does not store is a uid and a gid for each file. Please clarify; the answer as it stands is highly misleading.

              – mosvy
              2 days ago













              21














              But the files do have permissions. User john has RW access, while some random user only has read access. These permissions didn’t come from the filesystem itself but rather from mount options (-o uid/gid/umask), which doesn’t make them any less real.



              You could have multiple vfat partitions mounted with different options and you could use ls to determine what those options were. You could even use mount --bind to have a single directory contain files from different vfat partitions, and ls would correctly show what permissions have been specified for each file.






              share|improve this answer




























                21














                But the files do have permissions. User john has RW access, while some random user only has read access. These permissions didn’t come from the filesystem itself but rather from mount options (-o uid/gid/umask), which doesn’t make them any less real.



                You could have multiple vfat partitions mounted with different options and you could use ls to determine what those options were. You could even use mount --bind to have a single directory contain files from different vfat partitions, and ls would correctly show what permissions have been specified for each file.






                share|improve this answer


























                  21












                  21








                  21







                  But the files do have permissions. User john has RW access, while some random user only has read access. These permissions didn’t come from the filesystem itself but rather from mount options (-o uid/gid/umask), which doesn’t make them any less real.



                  You could have multiple vfat partitions mounted with different options and you could use ls to determine what those options were. You could even use mount --bind to have a single directory contain files from different vfat partitions, and ls would correctly show what permissions have been specified for each file.






                  share|improve this answer













                  But the files do have permissions. User john has RW access, while some random user only has read access. These permissions didn’t come from the filesystem itself but rather from mount options (-o uid/gid/umask), which doesn’t make them any less real.



                  You could have multiple vfat partitions mounted with different options and you could use ls to determine what those options were. You could even use mount --bind to have a single directory contain files from different vfat partitions, and ls would correctly show what permissions have been specified for each file.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Mar 20 at 17:27









                  Roman OdaiskyRoman Odaisky

                  3334




                  3334























                      14














                      ls doesn't know about FAT32, it only knows about the Virtual Filesystem (VFS) interface exposed by the kernel with POSIX open / readdir / stat system calls.



                      Linux doesn't support the concept of files that don't have user/group/other permission bits, struct stat simply contains a mode_t st_mode; member (and uid, gid members) that the kernel must fill out when ls -l makes stat(2) system calls.



                      There's no special code that means "not available" or "not applicable" for any of those fields, so the kernel's vfat driver must make something up. FAT16/FAT32 does have a read-only flag, but otherwise the owner/group come from mount options, and so does a umask.






                      share|improve this answer




























                        14














                        ls doesn't know about FAT32, it only knows about the Virtual Filesystem (VFS) interface exposed by the kernel with POSIX open / readdir / stat system calls.



                        Linux doesn't support the concept of files that don't have user/group/other permission bits, struct stat simply contains a mode_t st_mode; member (and uid, gid members) that the kernel must fill out when ls -l makes stat(2) system calls.



                        There's no special code that means "not available" or "not applicable" for any of those fields, so the kernel's vfat driver must make something up. FAT16/FAT32 does have a read-only flag, but otherwise the owner/group come from mount options, and so does a umask.






                        share|improve this answer


























                          14












                          14








                          14







                          ls doesn't know about FAT32, it only knows about the Virtual Filesystem (VFS) interface exposed by the kernel with POSIX open / readdir / stat system calls.



                          Linux doesn't support the concept of files that don't have user/group/other permission bits, struct stat simply contains a mode_t st_mode; member (and uid, gid members) that the kernel must fill out when ls -l makes stat(2) system calls.



                          There's no special code that means "not available" or "not applicable" for any of those fields, so the kernel's vfat driver must make something up. FAT16/FAT32 does have a read-only flag, but otherwise the owner/group come from mount options, and so does a umask.






                          share|improve this answer













                          ls doesn't know about FAT32, it only knows about the Virtual Filesystem (VFS) interface exposed by the kernel with POSIX open / readdir / stat system calls.



                          Linux doesn't support the concept of files that don't have user/group/other permission bits, struct stat simply contains a mode_t st_mode; member (and uid, gid members) that the kernel must fill out when ls -l makes stat(2) system calls.



                          There's no special code that means "not available" or "not applicable" for any of those fields, so the kernel's vfat driver must make something up. FAT16/FAT32 does have a read-only flag, but otherwise the owner/group come from mount options, and so does a umask.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Mar 21 at 14:38









                          Peter CordesPeter Cordes

                          4,5631434




                          4,5631434






















                              user342731 is a new contributor. Be nice, and check out our Code of Conduct.










                              draft saved

                              draft discarded


















                              user342731 is a new contributor. Be nice, and check out our Code of Conduct.













                              user342731 is a new contributor. Be nice, and check out our Code of Conduct.












                              user342731 is a new contributor. Be nice, and check out our Code of Conduct.
















                              Thanks for contributing an answer to Unix & Linux Stack Exchange!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f507441%2fwhy-is-the-ls-command-showing-permissions-of-files-in-a-fat32-partition%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

                              Alcedinidae

                              Origin of the phrase “under your belt”?