Why is the “ls” command showing permissions of files in a FAT32 partition? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) 2019 Community Moderator Election Results Why I closed the “Why is Kali so hard” questionBase permissions on a fat32 usb driveChanging file permissions of auto-mounted hot-plugged FAT32 USB partitionWhy are 666 the default file creation permissions?How do file permissions work with partition filesystem?openSUSE Live USB with windows-accessible FAT32 partitionOne of my pdf files in my apache server can be accessed the other can't, with the same permissions and same directoryHow to rename multiple files by adding a common string at beginning of the files?Parted: Creating fat32 partition on new drive doesn't mount properly, uses loop deviceList complete file name on a local apache httpd serverHow to grep the rows with same column in different files and print specific column and add onto the original file?
Suing a Police Officer Instead of the Police Department
Why do C and C++ allow the expression (int) + 4*5?
How can I delete rows in the text?
What is the ongoing value of the Kanban board to the developers as opposed to management
Question regarding MLE
Marquee sign letters
What is the definining line between a helicopter and a drone a person can ride in?
Why does BitLocker not use RSA?
Is it accepted to use working hours to read general interest books?
How to keep bees out of canned beverages?
Sorting the characters in a utf-16 string in java
Analytic proof of area probability
Will I be more secure with my own router behind my ISP's router?
Does the Pact of the Blade warlock feature allow me to customize the properties of the pact weapon I create?
C variable type assert
How to produce a PS1 prompt in bash or ksh93 similar to tcsh
My admission is revoked after accepting the admission offer
Is Vivien of the Wilds + Wilderness Reclamation a competitive combo?
Why aren't road bike wheels tiny?
enable https on private network
Why are two-digit numbers in Jonathan Swift's "Gulliver's Travels" (1726) written in "German style"?
How to ask rejected full-time candidates to apply to teach individual courses?
Putting Ant-Man on house arrest
Can a Wizard take the Magic Initiate feat and select spells from the Wizard list?
Why is the “ls” command showing permissions of files in a FAT32 partition?
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)
2019 Community Moderator Election Results
Why I closed the “Why is Kali so hard” questionBase permissions on a fat32 usb driveChanging file permissions of auto-mounted hot-plugged FAT32 USB partitionWhy are 666 the default file creation permissions?How do file permissions work with partition filesystem?openSUSE Live USB with windows-accessible FAT32 partitionOne of my pdf files in my apache server can be accessed the other can't, with the same permissions and same directoryHow to rename multiple files by adding a common string at beginning of the files?Parted: Creating fat32 partition on new drive doesn't mount properly, uses loop deviceList complete file name on a local apache httpd serverHow to grep the rows with same column in different files and print specific column and add onto the original file?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
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
add a comment |
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
Good question! Welcome
– 0xSheepdog
Mar 28 at 22:43
add a comment |
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
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
linux permissions filesystems fat fat32
edited Mar 22 at 0:56
psmears
44728
44728
asked Mar 20 at 13:52
user342731user342731
19623
19623
Good question! Welcome
– 0xSheepdog
Mar 28 at 22:43
add a comment |
Good question! Welcome
– 0xSheepdog
Mar 28 at 22:43
Good question! Welcome
– 0xSheepdog
Mar 28 at 22:43
Good question! Welcome
– 0xSheepdog
Mar 28 at 22:43
add a comment |
3 Answers
3
active
oldest
votes
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=value
andgid=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.
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 onumask
mount option, for which the default value is umask ofmount
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 thefmask=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
Mar 23 at 9:24
add a comment |
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.
add a comment |
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.
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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=value
andgid=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.
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 onumask
mount option, for which the default value is umask ofmount
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 thefmask=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
Mar 23 at 9:24
add a comment |
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=value
andgid=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.
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 onumask
mount option, for which the default value is umask ofmount
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 thefmask=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
Mar 23 at 9:24
add a comment |
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=value
andgid=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.
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=value
andgid=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.
edited Mar 22 at 16:17
answered Mar 20 at 13:56
ilkkachuilkkachu
63.5k10104182
63.5k10104182
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 onumask
mount option, for which the default value is umask ofmount
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 thefmask=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
Mar 23 at 9:24
add a comment |
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 onumask
mount option, for which the default value is umask ofmount
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 thefmask=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
Mar 23 at 9:24
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
Mar 23 at 9:24
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
Mar 23 at 9:24
add a comment |
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.
add a comment |
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.
add a comment |
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.
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.
answered Mar 20 at 17:27
Roman OdaiskyRoman Odaisky
3434
3434
add a comment |
add a comment |
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.
add a comment |
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.
add a comment |
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.
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.
answered Mar 21 at 14:38
Peter CordesPeter Cordes
4,5831434
4,5831434
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
Good question! Welcome
– 0xSheepdog
Mar 28 at 22:43