How to make mounting a certain device read-only? [duplicate]
I wish to securely copy files from a USB external drive such that no files on that drive may be modified spuriously.
Would someone tell me in relatively simple wording how to accomplish this please? The simple wording is due to the fact that I am a recent Linux user and solely an Ubuntu Linux user.
When you plug in your USB, it will be automatically mounted with some name in the /media
folder.
Open a Terminal (Ctrl+Alt+T). Type the following command:
mount
You will see a result something like this:
/dev/sda7 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/kernel/debug type debugfs (rw)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda5 on /home type ext4 (rw)
/dev/sdb1 on /media/84CD-D8C7 type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,uhelper=udisks)
Look at the last line in my example: /dev/sdb1 on /media/84CD-D8C7 type vfat
plus some other output. Your clue is that its folder begins with /media
; in this case, /media/84CD-D8C7
.
You can now tell the system to remount it read-only with the following command:
sudo mount --options=remount,ro /media/84CD-D8C7
Of course, you would replace 84CD-D8C7
with the actual name that you have. To check that it worked, you can reissue the mount
command. See how mine has changed — look for the ro
after the parenthesis (ro
stands for "read-only", rw
stands for "read-write").
/dev/sdb1 on /media/84CD-D8C7 type vfat (ro,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,uhelper=udisks)
Explanation (if you are interested):
-
sudo
means to authorise this command (i.e. run it as "root"), because the "mount" command is not available to all users. This will ask for your password. -
mount
tells the system to "mount" the device, i.e. attach it to your computer and give it a folder name. In this case, it has already been done; we are using the command to change the way the device was mounted. -
--options
tells themount
command that we are going to specify some options. -
remount
means just that: mount the device again, with exactly the same settings unless you tell it otherwise. -
ro
says to remount as read-only. This is the only change that we are making to the mount. -
/media/84CD-D8C7
specifies where it is already mounted.
If you absolutely do not want to mount the drive in read/write mode and remount it as read-only, you can temporarily disable automount with:
gsettings set org.gnome.desktop.media-handling automount false
Then you could plugin your pendrive and discover the device path, run sudo fdisk -l
. This will list your disks, including the pendrive. You should see (besides your hard disk) something like:
Disk /dev/sdb: 4009 MB, 4009754624 bytes 84 heads, 22 sectors/track, 4237 cylinders, total 7831552 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000c2533 Device Boot Start End Blocks Id System /dev/sdb1 * 62 7831551 3915745 c W95 FAT32 (LBA)
Next you need to select your mount point.
- either create a new folder where to mount your drive with
sudo mkdir /media/Pendrive
or - select an existing folder (replace
/media/Pendrive
below with your chosen folder)
Then you could mount manually in read-only in a terminal with:
sudo mount -t fat -o ro /dev/sdb1 /media/Pendrive
When you're done and want to disconnect your drive, you can unmount it first with sudo umount /dev/sdb1
.
You may now reanable automount with:
gsettings set org.gnome.desktop.media-handling automount true