वास्तव में सावधान रहें: सेतु के साथ संयुक्त स्क्रिप्ट खतरनाक हैं!
सबसे पहले, कृपया इस प्रश्न / उत्तर पर एक नज़र डालें , विशेष रूप से इस उत्तर और सुरक्षा चेतावनी पर ।
यदि आप अभी भी setuid
सेट के साथ अपनी स्क्रिप्ट को निष्पादित करना चाहते हैं , तो आप एक संक्षिप्त सी प्रोग्राम को आवरण के रूप में लिख सकते हैं और setuid
संकलित बाइनरी पर बिट सेट कर सकते हैं ।
आवरण उदाहरण:
int main(void) {
setuid(0);
clearenv();
system("/absolute/path/to/your/script.sh");
}
एक अन्य समाधान का उपयोग कर sudo
( यहां उल्लेख किया गया है ):
मूल के रूप में, अपनी स्क्रिप्ट तक लिखने (और शायद अन्य) तक पहुंच को रोकें:
chown root /absolute/path/to/your/script.sh
chmod 700 /absolute/path/to/your/script.sh
यह सत्यापित करें कि मूल को छोड़कर कोई भी स्क्रिप्ट को प्रतिस्थापित कर सकता है , उदाहरण के लिए मूल फ़ोल्डर के अभिगम अधिकार को संशोधित करके:
जड़ जड़ / निरपेक्ष / पथ / को / आपके /
chmod 755 / निरपेक्ष / पथ / को / आपके /
इसके /etc/sudoers
साथ sudo एक्सेस अधिकारों को संशोधित करें visudo
:
All ALL = (रूट) NOPASSWD: /absolute/path/to/your/script.sh
सेटिंग्स के बारे में अधिक विवरण (उदाहरण के लिए विशिष्ट उपयोगकर्ताओं या समूहों तक पहुंच को प्रतिबंधित करना) को sudoers manpage में पाया जा सकता है।
बाद में, सभी उपयोगकर्ता बिना पासवर्ड के रूट के रूप में स्क्रिप्ट को चला सकते हैं:
sudo /absolute/path/to/your/script.sh
यह ऊपर के आवरण / सेतु के घोल का उपयोग करने के समान है।