Bir USB Aygıtı Takıldığında Kabuk Komut Dosyası Çalıştırma
Günümüzde, birçok sistem yöneticisi ve güvenlik uzmanı, belirli bir USB aygıtı takıldığında otomatik olarak bir kabuk komut dosyasının çalıştırılmasını gerektiren senaryolarla karşılaşmaktadır. Bu tür bir işlem, yedekleme süreçlerinin otomatikleştirilmesi, özel komutların çalıştırılması veya sistem güvenliği amaçlarıyla kullanılabilir. Bu makalede, bir USB aygıtı takıldığında nasıl otomatik bir işlem başlatılabileceğini adım adım ele alacağız.
İçindekiler
1. Udev Kurallarını Kullanarak Otomatik Çalıştırma
Linux sistemlerinde, donanım olaylarını yönetmek için kullanılan udev altyapısı sayesinde, bir USB aygıtı takıldığında belirli bir eylemin tetiklenmesi mümkündür. udev, donanım değişikliklerini izler ve belirlenen kurallara göre uygun işlemleri gerçekleştirir.
Adım 1: USB Aygıtının Bilgilerini Tespit Etme
Öncelikle, sisteminize bağlanan USB aygıtının kimlik bilgilerini öğrenmek için aşağıdaki komutu çalıştırabilirsiniz:
udevadm info -a -p $(udevadm info -q path -n /dev/sdX)
Buradaki /dev/sdX
, USB aygıtınıza karşılık gelen aygıt adıdır. Doğru aygıtı bulmak için lsblk
veya fdisk -l
komutlarını kullanabilirsiniz.

Yukarıda “lsusb” komutunun çıktısını görmektesiniz. Bus 0001 Device 007 aygıtının;
- Vendor ID : ffff
- Product ID (Model ID ) : 5678
olarak belirlenmiştir.
udevadm monitor --environment --udev
Komutunu çalıştırdığımız andan itibaren device’ları dinlemeye alıyoruz.

Adım 2: Udev Kuralı Oluşturma
Bir USB aygıtı takıldığında belirli bir komutun çalışmasını sağlamak için /etc/udev/rules.d/99-usb-auto-run.rules
dosyasını oluşturup aşağıdaki kuralı ekleyebilirsiniz:
ACTION=="add", SUBSYSTEM=="block", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="1234", RUN+="/usr/local/bin/usb_script.sh"
Burada:
idVendor
veidProduct
, USB cihazınızın kimlik bilgilerini belirtir.RUN
parametresi, belirlenen komut dosyasını çalıştırır.
Adım 3: Udev Servisini Yeniden Yükleme
Kural dosyasını oluşturduktan sonra aşağıdaki komutlarla udev servisini yeniden yükleyerek değişiklikleri etkinleştirebilirsiniz:
sudo udevadm control --reload-rules
sudo udevadm trigger
2. Çalıştırılacak Kabuk Komut Dosyasını Yazma
Belirtilen USB aygıtı takıldığında çalışacak kabuk komut dosyasını /usr/local/bin/usb_script.sh
olarak oluşturabilirsiniz. Örneğin, takılan USB aygıtındaki belirli bir dizine dosya kopyalamak için şu içeriğe sahip bir betik oluşturabilirsiniz:
#!/bin/bash
echo "USB aygıtı algılandı" >> /var/log/usb.log
cp -r /media/usb-drive/dosya /hedef/dizin/
Dosyaya çalıştırma izni vermek için aşağıdaki komutu kullanabilirsiniz:
chmod +x /usr/local/bin/usb_script.sh
3. Güvenlik Önlemleri
USB aygıtlarına bağlı otomatik işlemler çalıştırırken aşağıdaki güvenlik önlemlerine dikkat etmek gereklidir:
- Yetkisiz aygıtların çalıştıracağı betiklerin sistem güvenliğini tehlikeye atmasını önlemek için, belirli bir
idVendor
veidProduct
bilgisiyle filtreleme yapmak önemlidir. - Yetkisiz kullanıcıların kabuk betiklerini değiştirememesi için
/usr/local/bin/usb_script.sh
dosyasının sahipliğini yalnızca yetkili bir kullanıcıya vermek gerekir. sudo
yetkisi gerektiren işlemleri güvenli bir şekilde yönetmek içinvisudo
dosyasında belirli komutlara izin vermek gerekebilir.
Sonuç
Bu makalede, bir USB aygıtı takıldığında belirli bir kabuk komut dosyasının otomatik olarak çalıştırılmasını sağlayan bir yapılandırma süreci ele alındı. udev kurallarını kullanarak, belirli bir USB aygıtına özgü eylemleri tetikleyebilir ve sisteminizde otomatik işlemler gerçekleştirebilirsiniz. Sistem yöneticileri ve güvenlik uzmanları için bu yöntem, hem verimliliği artırmak hem de belirli olaylara karşı hızlı tepki verebilmek açısından faydalı olacaktır.

Diğer yazılarımızı okumak için buraya tıklayabilirsiniz.