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.

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.

lsusb Output

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.

udevadm Monitor

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 ve idProduct, 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 ve idProduct 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çin visudo 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.

udevadm Sonuç

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

Similar Posts

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir