শেল স্ক্রিপ্টগুলিতে ইউআইডি সেট করা যায় না


14

এখানে কি চলছে তা জানতে কেউ আমাকে সহায়তা করতে পারেন? আমার ট্র্যাকিংয়ের প্যাকেট গণনার কয়েকটি বিধি রয়েছে। আমি যখন নিম্নলিখিত স্ক্রিপ্টটি রুট হিসাবে চালিত করি:

#!/bin/bash
iptables -t mangle -xnvL

আমি প্রত্যাশিত আউটপুটটি পেয়েছি:

//snip
233203 199929802 MARK  //blah blah blah
//snip

যাইহোক, আমি এটি ক্যাকটির অংশ হিসাবে চালাতে চাই, যা অ্যাপাচি হিসাবে চলে। এখন অ্যাপাচি iptables চালাতে পারে না, এ কারণেই আমার স্ক্রিপ্ট আছে। আমি এটিকে SID মূল হিসাবে সেট আপ করেছি :

-rwsr-sr-x 1 root root   37 May 14 23:06 iptables_packet_report.sh

তবে আমি এই আউটপুট পেতে:

server # sudo -u apache ./iptables_packet_report.sh
iptables v1.4.2: can't initialize iptables table `mangle': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

স্পষ্টতই আমার কর্নেলটি ভাল, এবং আমি একে অ-মূল হিসাবে চালিয়ে যাচ্ছি এমন কিছু গোলমাল করছে, তবে কেন তা বুঝতে পারছি না। আমি [বিক্ষোভের] সাথে এসইউডিটি ডাবল চেক করেছি ( http://en.wikedia.org/wiki/Setuid# প্রদর্শনী এবং নিশ্চিত হয়ে গেছে যে এটি কাজ করছে)।

server # sudo -u apache ./printid
Real UID  = 81
Effective UID = 0
Real GID  = 81
Effective GID = 0

আমার শেষ লক্ষ্যটি হ'ল এপাচি হিসাবে চালানোর সময় iptables -t mangle -xnvL এর আউটপুট পাওয়া যাতে আমি এটিকে সমস্ত সুন্দরভাবে গ্রাফ করতে ক্যাকটি ব্যবহার করতে পারি।

উত্তর:


16

আপনি শেল স্ক্রিপ্টগুলির জন্য SID রুট ব্যবহার করতে পারবেন না। কেবল আসল প্রোগ্রামগুলি SID রুট হতে পারে, শেল স্ক্রিপ্টগুলি "#" দিয়ে শুরু হয়! এবং দোভাষীকে SID চালাতে হবে এবং এটি আমি জানতাম না এমন কোনও কারণে কাজ করে না

সুডো একবার দেখুন এবং এটি ইনস্টল করুন! সম্পাদনা / ইত্যাদি / sudoerrs, এই মত একটি লাইন যোগ করুন:

www-data        ALL=NOPASSWD: /usr/local/sbin/iptables_packet_report.sh

তারপরেই দৌড়াও

sudo /usr/local/sbin/iptables_packet_report.sh

আপনার কোড থেকে

এরপরে পাসওয়ার্ডের জন্য জিজ্ঞাসা করা উচিত নয়, তবে প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে মূল্যায়ন করা উচিত।

আমি নিশ্চিত যে আপনার ত্রুটি বার্তাগুলিও ঘটবে যদি আপনি ম্যানুয়ালি www-ডেটাতে মামলা করেন এবং ম্যানুয়ালি এটি চালান


13

খ্রিস্টান ইঙ্গিত করার সাথে সাথে আমার সমস্যাটি হ'ল আমি শেল স্ক্রিপ্টে SID দেওয়ার চেষ্টা করছিলাম। এখানে যেমন শেল স্ক্রিপ্টে সিইউডি সেট করা একটি খুব খারাপ ধারণা:

ইউএনআইএক্স এর অধীনে একটি শেল স্ক্রিপ্ট চালানোতে একটি দ্বি-পদক্ষেপ প্রক্রিয়া জড়িত: যখন কার্নেল নির্ধারণ করে যে শেল স্ক্রিপ্টটি চালিত হতে চলেছে, তখন এটি প্রথমে শেল ইন্টারপ্রিটারের একটি SID অনুলিপি শুরু করে, তারপরে শেল ইন্টারপ্রিটার শেল স্ক্রিপ্টটি কার্যকর করতে শুরু করে। এই দুটি অপারেশন দুটি বিচ্ছিন্ন পদক্ষেপে সঞ্চালিত হওয়ায় আপনি প্রথম ধাপের পরে কার্নেলটি বাধা দিতে পারেন এবং শেল ইন্টারপ্রিটার যে ফাইলটি কার্যকর করতে চলেছেন সেই ফাইলটি স্যুইচ করতে পারেন। এই ফ্যাশনে, একজন আক্রমণকারী তার পছন্দসই কোনও শেল স্ক্রিপ্ট কার্যকর করতে কম্পিউটার পেতে পারে

এই কারণে, অনেক আধুনিক লিনাক্স ডিস্ট্রোস SID শেল স্ক্রিপ্টগুলিকে উপেক্ষা করে যা আমি ব্যবহার করছি including আমি sudoers ফাইল সম্পাদনা করতে সক্ষম হয়েছি এবং এটি কাজ করে চলেছি।


চমত্কার উত্তর!
ডেভ চেনি 13

সোলারিস 10 এর জন্য এটি সত্য কিনা কেউ জানেন?
এরিক জনসন

2

আমি মনে করি খ্রিস্টিয়ানের সমাধানটি সবচেয়ে ভাল তবে আপনি যদি সত্যিই চাইতেন তবে আপনি scc ব্যবহার করে স্ক্রিপ্টটি সংকলন করতে পারেন এবং তারপরে সংকলিত প্রোগ্রামে সেটআপের মূলটি তৈরি করতে পারেন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.