Sihirli SysRq Tuşları
Sihirli SysRq tuşları Linux çekirdeğinin anlayabileceği çeşitli tuş kombinasyonlarını ifade etmek için kullanılan bir terimdir. SysRq tuşu mu, benim klavyemde yok bile diye düşünebilirsiniz ama PrtSc tuşunun altındaki satırı okuduğunuzda gizlendiği yeri bulacaksınız. Bu tuşları kullanarak sistemin durumuna bakmaksızın çeşitli alt seviye komutlar çalıştırabilirsiniz. Genellikle donmuş bir sistemi güvenli bir şekilde ve dosya sistemine zarar vermeden yeniden başlatmak için kullanılır. Fakat bazı espri anlayışı ilginç kişilerce eğlence amaçlı olarak başkalarına kullandırtılmaya çalışıldığı da görülmemiş bir olay değildir. Bu işlevin kullanılabilmesi için çekirdek derlenirken CONFIG_MAGIC_SYSRQ seçeneğinin açılmış olması gerekmektedir.
Sun Microsystems's Open Firmware (OpenBoot) gibi sistemlerde bu tuş kombinasyonları yazılım geliştirme ve sistem kurtarma için güçlü araçlara erişim imkanı sunar. Bu komutlar sayesinde dosya sistemleri ayrılabilir, işlemler öldürülebilir, klavyenin kontrolü X'ten alınabilir, yazılmamış veriler diske yazılabilir... Ayrıca şaka da yapılabilir, söylemiştim değil mi?
Sihir, sihir deyip duruyorsun ama henüz bir olayını göremedik diye kafanızdan geçerdiğinizi hisseder gibiyim. Yani o kadar aşmış, bilmiş, telapitiyi hatmetmiş biriyim ki anlatamam (çok güzel espri yapabildiğimi ayrıca belirtmeme gerek yok sanırım değil mi?). Sadede geleyim. Bu sihiri ortaya çıkarmak için Alt, SysRq ve diğer herhangi bir tuşa aynı anda basmanız yeterli. Yalnız QWERTY dışında bir klavye düzeni kullanan kullanıcılar kendi klavye düzenleri için olan kısayolları kullanmayı unutmamalıdır. Ayrıca eğer sisteminiz AltGr tuşuna sahipse kullanacağınız komut kombinasyonunun diğer Alt tuşu içeren kısayollarla karışmaması için AltGr tercih edilebilir. QWERTY klavye düzeni için örnek birkaç kısayol aşağıda yer almaktadır:
- 0'dan 9'a: Konsol kayıt seviyesini ayarla, çekirdekten gelen mesajların ne kadar detaylı olarak görüntüleyeceğini belirler
- b: Sistemi hemen yeniden başlat, bölümleri ayırmadan ve eşzamanlamadan
- c: kexec'i yeniden başlat ve bozulma kaydını çıkart
- e: init (PID 1) hariç tüm işlemlere SIGTERM sinyali gönder
- i: init hariç tüm işlemlere SIGTERM sinyali gönder
- k: Açık olan sanal konsoldaki tüm işlemleri kapat (X ve svgalib programlarını kapatmak için kullanılabilir, aslen Secure Access Key'in (Güvenli Erişim Tuşu) bir benzeri olması için tasarlanmıştır)
- m: Güncel bellek bilgisini konsola bas
- o: Sistemi kapat
- p: Güncel kaydedicilerin ve bayrakların durumunu konsola bas
- q: Tüm aktif yüksek seviyeli zamanlayıcı ve saat kaynaklarını göster
- r: klavyeyi raw kipinden (X11 ve svgalib gibi uygulamaların kullandığı kiptir) XLATE kipine al
- s: Tüm bağlı dosya sistemlerini eşzamanla
- u: Tüm bağlı dosya sistemlerini sadece okunabilir olarak tekrar bağla
Aslen sadece çekirdekte hata ayıklamak için klavye kısayolları olarak tasarlanmış olsa da bu sihiri proc dosya sistemi üzerinden de kullanabilirsiniz. Böylece uzak sistemler için
echo b > /proc/sysrq-trigger
benzeri kullanımlar gerçekleştirilebilir. Bu Alt + SysRq + b kısayolu ile tam olarak aynı işi yapacak ve sistemi yeniden başlatacaktır.
Kilitlenmiş bir sistemi güvenli olarak yeniden başlatmak için yaygın olarak r, e, i, s, u ve b kısayolları sırasıyla kullanılır ve bunları hatırlamayı kolaylaştırıcı çeşitli cümleler oluşturulmuştur: "Raising Elephants Is So Utterly Boring" ve "Reboot Even If System Utterly Broken". Ya da sadece tersten sıralayarak oluşan kelimeyi hatırlamak daha kolay olabilir: "BUSIER", (unRaw, tErminate, kIll, Sync, Unmount, reBoot).
Bu yöntem yeniden başlatma sırasında fcsk'nın kullanılmasına gerek bırakmayabilir ve çeşitli uygulamalara kaydedilmemiş işler için acil yedekler kaydetmesi için şans verebilir. Pratikte, her komut tamamlanması için birkaç saniyeye ihtiyaç duyar, özellikle ekran donması veya bozulmaları gibi geribildirim alınmasını engelleyici durumlar varsa dikkat edilmelidir. Örneğin tamamlanmamış işlemlere gönderilen SIGKILL veri kayıplarına neden olabilir.
Eğer sisteminizde bu kısayolların kullanılmamasını istiyorsanız:
echo 0 > /proc/sys/kernel/sysrq
komutunu kullanabilirsiniz. Devre dışı bıraktıktan sonra, tüh keşke devre dışı bırakmasaydım, lazım olunca ne yapacağım diyorsanız da
echo 1 > /proc/sys/kernel/sysrq
komutu ile tekrar aktifleştirebilirsiniz.
Lütfen bu yazıdakileri uygulamadan önce detaylı olarak araştırmayı umutmayınız. Güç sizinle olsun.
Kaynaklar:
Linux Magic System Request Key Hacks
YanıtlaSilikisi de aynıdır.
Aktifleştirme ve devre dışı bırakma işlemlerini /etc/sysctl.conf dosyası aracılığıyla da gerçekleştirebilirsiniz. Açmak için:
YanıtlaSilkernel.sysrq = 1
ve kapatmak için:
kernel.sysrq = 0
Kaynak: linuxhowtos
Yukarıdaki yöntemde dosyaya elle müdahale ediyordunuz eğer bunu bir komut aracılığıyla yapmak isterseniz, kısayolların kullanımını açmak için:
YanıtlaSilsysctl -w kernel.sysrq=1
komutunu, kapatmak içinse
sysctl -w kernel.sysrq=0
komutunu kullanabilirsiniz.
Kaynak: tldp.org
Güzel düzenlenmiş ve biçimlendirilmiş bir belge:
YanıtlaSilWhat is the SysRq facility and how do I use it?
On, yirmi yıl sonra biri gelip, okuyup, deli mi bu adam gecenin bir vakti yazmış olduğu şeylere bak demesin diye önlem:
YanıtlaSilKinder Süpriz
Tebrikler Anıl. PrtSc tuşunu tek başına kullanamıyor, yanında Fn tuşuna basmam gerekiyor olsa da bu özelliği kullanabilmek açısından katlanılabilecek bir zahmet.
YanıtlaSilGüzel de bir yazı olmuş. Ellerine sağlık.