[Çözüldü] Başlangıçta Script Çalıştırmak

Başlatan sertux, 14 Ekim 2013 - 12:19:05

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

sertux

Merhaba,

Ubunutu açılışında başlangıçta çalışan program ve scriptler arasına MyScript.sh isimli script dosyasını eklemek istiyorum.
Ancak bunu,  Sistem -> Tercihler -> Başlangıç Uygulamaları şeklinde değilde komut satırıyla uç birimden yapmak istiyorum ve komut satırında sudo gibi yetki gerektiren bir komut yazmadan nasıl yapabilirim ?

Yardımcı olacak arkadaşlara şimdiden teşekkür ederim.

furkankalkan

#1
Eğer script root yetkisi (sudo) gerektiriyorsa bunu suid biti ekleyerek veya sudoers dosyasını düzenleyerek sudo kullanmadan çalıştırabilirsiniz.  (Güvenlik Notu: Betiğin ne yaptığını çok iyi ölçüp tartmalısınız, zira sisteminize zarar verebilirsiniz.)
suid biti için: sudo chmod u+s myscript.sh
Başlangıçta çalışması için de Başlangıç Uygulamaları daha uygun olsa da betiğinizi çalıştırmak için bir daemon oluşturabilirsiniz. 
http://ubuntuforums.org/showthread.php?t=841674
Lover
twitter.com/furkan_kalkan1

sertux

Script içeriğinde ki komutlar gereği root yetkisi gerekmiyor. Verdiğiniz komutu denedim ancak myscript.sh dosyasını başlangıçta çalışması gereken program ya da scriptler arasına eklemedi.

İstediğim tek satır bir komut ve içerisinden sudo felan olmayacak veya komut sonrası istenilen işlemi yapmak için parola istemeyecek.

furkankalkan

 Benim verdiğim komut root yetkisi olmadan root yetkisi gerektiren bir programı çalıştırmak içindi. Sizin istediğiniz şey esasen betiğinizi çalıştıran bir daemon oluşturmak ve onu init.d ile başlangıçta çalıştırmak.Örnek betik için bir link vermiştim aşağıda fakat sanırım görmediniz. 

Oluşturacağınız daemon kabaca şu şekilde olacak.


startcript.sh

#!/bin/bash
cd /nerede/bu/betik
./myscript.sh &

cp startscript.sh  /etc/init.d/  komutuyla daemonumuzu kopyalıyoruz.

Lover
twitter.com/furkan_kalkan1

sertux

Söylediğiniz işlemi yapıp aşağıdaki komutu çalıştırdığım zaman

cp startscript.sh  /etc/init.d/

Ekran çıktısı ise ;

cp: cannot create regular file `/etc/init.d/startscript.sh': Permission denied


Yani kopyalama işlemini yapamıyor !

furkankalkan

pardon gözümden kaçmış cp komutunu sudo ile deneyin.
Lover
twitter.com/furkan_kalkan1

sertux

#6
sudo eklediğim  zaman oluyor. Ama o zaman da haliyle parola istiyor. Ben parola girilmeden nasıl yapılır bu işlem onu öğrenmek istiyorum.

"start-script.sh" isimli dosyam var, bu dosyayı uç birimden komut girerek başlangıçta çalışan uygulamalar arasına eklemek istiyorum.

furkankalkan

sudo yetkisi kullanmadan yapamazsınız maalesef. Öyle olsaydı biri sizin başlangıç programlarınıza salak bir script yerleştirip dosyalarınızı kaybetmenize sebep olabilirdi değil mi ?
Lover
twitter.com/furkan_kalkan1

sertux

Bunun bir güvenlik zaafiyeti doğrucağını  tahmin ediyordum zaten, aklıma gelmedi değil.  En baştan beri öğrenmek istediğim şey buydu, münkün mü, değil mi diye. Siz de kesin olarak cevapladınız. Ancak aklıma takılıyor. Mesela adamın biri bir program yazıyor veya uygulama geliştiriyor ve yazdığı uygulama kendini başlangıçta otomatik olarak başlatıyor. Programı kurarken en başta parola giriyoruz normal olarak.  Acaba burda girilen parola sayesinde mi kendini başlangıçta otomatik olarak çalıştırıyor ? Teşekkür ederim.

furkankalkan

@sertux Daemon şeklinde çalışabilenler (apache,mysql vs) zaten bu şekilde çalışıyor yani paket kurulurken betiklerini bu dizine kopyalıyorlar.
Lover
twitter.com/furkan_kalkan1

heartsmagic

Betikler veya uygulamalar da bahsi geçtiği üzere sudo için yetkilendirilebilir ve parola sormaması sağlanabilir. Bir kere yetki isteyip almak bunun için yeterli.

Konu etiketlendiği için kapatalım.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.