Bir komut dosyası normal kullanıcı için önyükleme zamanında nasıl çalıştırılır?


5

CentOS 6’da önyükleme sırasında bir bash betiği çalıştırmak istiyorum. /etc/init.d/ dizin ancak tüm bu komut dosyası kök tarafından çalıştırılır. Herhangi bir kullanıcı için komut dosyası çalıştırmak istiyorum.

Yanıtlar:


8

Bunu crontab'ınıza şöyle ekleyebilirsiniz:

@reboot /bin/bash /dir/of/your/script

Eğer aşina değilseniz crontab, burada bazı ipuçları var:

  • crontab -l Zamanlanmış mevcut işleri listeler.
  • crontab -e düzenlemenizi sağlar.

crontab'ı nasıl düzenleyeceğimi biliyorum ama crontab -e kullanarak düzenlediğimde -e, mevcut kullanıcı için / var / spool / cron / 'a dosya oluşturacak, eğer bu satırı rpm paketine ekledim, çünkü kurulum amaçlı olduğu için root için cron dosyası oluşturacak. root olarak giriş yapmalıyım.

Kullanabilirsiniz crontab -u <user> (ve crontab -l/-e -u <user> ) Diğer kullanıcılar için crontab kurmak.
fedorqui

harika efendim !!! başlangıç ​​komut dosyalarını otomatik olarak çalıştırmanın en kolay yoludur. Araştırmıştım ama hepsi /etc/init.d/*** bla bla ... karmaşık hale getirmek için yapılandırma yapmamız gerektiğini söyledi!
Davuz

0

Kullanabilirsiniz su kök ayrıcalıklarını kullanarak -c Bir komutu çalıştırmak için, şöyle:

# su user -c whoami
  user

Özel bir betiğin ayrıcalıkları bırakmasını istiyorsanız, betiği kendisiyle çağırabilirsiniz. su <user> -c <script> -magic-parameter nerede -magic-parameter betiğe, root olmayan bir kullanıcı olarak ne yapmak istediğinizi yapmasını söyler.


0

İlk: Bir programlama sorusu değil - daha iyi bir yer https://superuser.com/ .

İkincisi: Muhtemelen bir Linux kullanıyorsunuz - ama daha iyi belirtmek;).

Üçüncüsü: Komut dosyalarını önyükleme sırasında çalıştırmak sistem güvenliği için çok tehlikelidir. Bu nedenle, burada sadece root komut dosyaları için iyi bir neden var. Öyleyse, eğer var root erişimi - kullan (eğer bir sysadmin'sin, doğru mu?), erişemiyorsan - muhtemelen olduğu gibi bırakman daha iyi olur .. :)

Sorunuz bazı rc.d betiği için etkili UID'yi nasıl değiştireceğinizle ilgiliyse, şöyle bir şey kullanabilirsiniz:

#!/bin/bash    

export MYHOME=/path/to/somewhere

case $1 in
    start)   /bin/su <username> $MYHOME/bin/startup.sh ;;
    stop)    /bin/su <username> $MYHOME/bin/shutdown.sh ;;
    restart)
             /bin/su <username> $MYHOME/bin/shutdown.sh
             /bin/su <username> $MYHOME/bin/startup.sh
             ;;
esac
exit 0

bu nedenle, komut dosyanızı herhangi bir yere koyabilirsiniz ve init komut dosyasından çalıştırılacak su.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.