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.
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:
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 -u <user>
(ve crontab -l/-e -u <user>
) Diğer kullanıcılar için crontab kurmak.
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.
İ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
.