How to Configure UDEV rule to allow read-only permissions on USB devices?

Following steps to configure udev rule which would automatically switch the USB disks to read-only mode when connected to the system:

 

1. Install the hdparm utility which could be used to set read-only/read-write access to the disks:

# yum install hdparm

 

2. Lets create the UDEV rule to disable write access and only permit read access on USB. Create a udev rule file /etc/udev/rules.d/99-usb-disk.rules file with hdparm command to enable/disable write access to the usb disk:

# vi /etc/udev/rules.d/99-usb-disk.rules
ACTION=="add", KERNEL=="sd*", DRIVERS=="usb", RUN+="/sbin/hdparm -r1 /dev/%k"
ACTION=="remove", KERNEL=="sd*", DRIVERS=="usb", RUN+="/sbin/hdparm -r0 /dev/%k"
Here,
/sbin/hdparm -r1 /dev/%k – Enable read-only access to USB devices.
/sbin/hdparm -r0 /dev/%k – Enable Read-write access to USB devices.

 

3. Reload the UDEV rule by running the below command.

# udevadm control --reload

 

4. Once teh UDEV rules are reloaded, please try to connect a usb disk, mount it and verify if it allows read-only access. You can also use “dd” command to try writting on the USB device. It should fail as shown in the example below.

$ dd if=/dev/zero of=/dev/sdd bs=1k count=100
dd: writing `/dev/sdd': Operation not permitted
1+0 records in
0+0 records out
0 bytes (0 B) copied, 0.0005 seconds, 0 B/s

 

Was this answer helpful? 0 Users Found This Useful (0 Votes)