If I remember correctly mnt is for static media that you expect to always be present and media is for removable media which may come and go.
I myself have separate /Disks
folder where I mount all my internal disks on boot. Not sure how "standard" such setup is, but it helped me keep my NTFS and Linux disks tidy and out of my way. For what I know you can mount your drives anywhere you like
If they’re internal drives then you choose.
I like to mount drives at root, their parent directory being the logical purpose of the drive.
Got a drive you added that’s gonna be for games?
/games
Is it for movies?
/movies
Or maybe it’s just general data storage?
/data
No need to make it more complicated than it has to be.
This is standard across the industry, unless you are mounting disks that would conform to another strategy (say it’s a drive of repos, it might mounted under /usr/local/src/ as that’s where one would expect user provided source code).
No need to make it more complicated than it has to be.
Thank You.
I decided to simply create directories within /mnt, chmod 000
them and use them as fixed mountpoints;
for manual temporary mounts I have /mnt/a, /mnt/b, ... /mnt/f, but I never needed to use more than two of them at once.
While this setup doesn't really respect the filesystem hierarchy, I wouldn't have used /mnt at all if I were constrained by its standard purpose since having one available manual mountpoint seems pretty limiting to me.
Then again, I have 3 physical drives with ~ 10 partitions, plus one removable drive with its own dedicated mountpoint...
chmod 000
What does this do? I'm a Meganoob.
Fixed mountpoints
?
having one available manual mountpoint
you mean the whole /mnt is meant to single mount point?
Sorry for all the questions.
chmod
is the command to change user permissions. The numbers mean user, group, and others and the value allows read, write, execute. So, 000 means no one has permissions to get rid of the mount point. 777 means everyone has all permissions. (4 is read, 2 is write, and 1 is execute and the numbers are added. So, 644 would mean you can read/write, the group and other users have read only access.)
You don’t have to use the numbers but eventually, almost every Linux admin does because it’s faster, a bit like a keyboard shortcut. But, for instance, you can add Execute permission with chmod +x /some/file/location
.
Here’s more details on the how to chmod and the historic reasons for the 0-7 system (spoiler: it’s 8 bits): https://www.redhat.com/sysadmin/linux-file-permissions-explained
Adding to what the other comment explained:
I use chown 000
so that regular users fail to access a directory when no filesystem is mounted on it; in practice it never happens, because "regular users" = { me }, but I like being pedantic.
As for /mnt, it is supposed to be a single temp. mountpoint, but I use it as the parent directory of multiple mountpoints some of which are just for temporary use.
I use
chown 000
so that regular users fail to access a directory when no filesystem is mounted on it
My dummy brain can't understand it man.
Isn't someone can't access a directory when no filesystem is mounted on it the default behaviour?
No, directories without anything mounted on them are normal directories - which checks out, since you can mount anything anywhere; unlike Windows volume letters, which only exist when volumes are mounted or detected by the OS.
When you mount a filesystem onto a directory, the OS "replaces" its contents AND permissions with that of the filesystem's root.
Here's an example with my setup (hopefully you're somewhat familiar with Bash and the output of ls -l
).
Imagine some random filesystem in /dev/sda1
owned by "user" which only contains a file named "/Hello World.txt":
$ # List permissions of files in /mnt:
$ # note that none of the directories have read, write nor execute permissions
$ ls -la /mnt
drwxr-xr-x 1 root root 168 May 31 23:13 .
drwxr-xr-x 1 root root 128 May 31 23:14 ..
d--------- 1 root root 0 Aug 1 2020 a/
d--------- 1 root root 0 Feb 11 2022 b/
d--------- 1 root root 0 Aug 11 2021 vdisks/
$ # No read permission on a directory => directory entries cannot be listed
$ ls /mnt/a
cannot open directory '/mnt/a': Permission denied
$ sudo mount /dev/sda1 /mnt/a
$ # List again the permissions in /mnt: the root of /dev/sda1
$ # has rwxr-xr-x (or 755) permissions, which override the 000 of /mnt/a ...
$ ls -la /mnt
drwxr-xr-x 1 root root 168 May 31 23:13 .
drwxr-xr-x 1 root root 128 May 31 23:14 ..
drwxr-xr-x 1 root root 0 Aug 1 2020 a/
d--------- 1 root root 0 Feb 11 2022 b/
d--------- 1 root root 0 Aug 11 2021 vdisks/
$ # ... and its contents can be accessed by the mounted filesystem's owner:
$ ls -la /mnt/a
drwxr-xr-x 1 user user 168 May 31 23:13 .
drwxr-xr-x 1 root root 168 May 31 23:13 ..
-rw-r--r-- 1 user user 0 Jul 4 22:13 'Hello World.txt'
$ find /mnt
/mnt
/mnt/a
/mnt/a/Hello World.txt
find: ‘/mnt/b Permission denied
find: ‘/mnt/vdisks’: Permission denied
Please note that me setting permissions is just extreme pedantry, it's not necessary at all and barely changes anything and if you're still getting familiar with how the Linux VFS and its permissions work you can just ignore all of this.
OS "replaces" its contents AND permissions with that of the filesystem's root.
So, the original content is lost forever?
setting permissions is just extreme pedantry
So, what's the actual use case of it though? Even though it's pedantry, it still there has to be some benefits, right?
I mean, What's the need for you to deny the access of /mnt/a
untill has mounted with something? One can just leave it as it is, right?
So, the original content is lost forever?
No, but it becomes invisible and inaccessible* as long as the filesystem is mounted over it - see this Stack Exchange question and accepted answer.
The benefits are marginal, for example I can see if a filesystem is mounted by simply typing ll /mnt
(ll
being an alias of ls -lA
) - it comes handy with my system due to how I manage a bunch of virtual machines and their virtual disks, and it's short and easy to type.
Some programs may refuse to write inside inaccessible directories, even if the root user can always modify regular files and directories as long as the filesystem supports it.
It's not a matter of security, it's more of a hint that if I'm trying to create something inside those directories then I'm doing something wrong (like forgetting to mount a filesystem) and "permission denied" errors let me know that I am.
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0