আমি জানি যে স্ক্রিপ্টগুলিতে সেটআপ করা সিকিউরিটি সমস্যা রয়েছে এবং তাই এটি ডিফল্টরূপে নিষ্ক্রিয়, তবে আশা করি এটি এক্সিকিউটেবলের পক্ষে কাজ করে। আমি তৈরি এবং সম্পাদনযোগ্য যা এই পোস্টে বর্ণিত নির্দেশাবলী অনুসরণ করে ইউআইডিটিকে আউটপুট হিসাবে দেখায়: শেল স্ক্রিপ্টগুলিতে সেটুইডের অনুমতি দিন
তবে এটি চালানোর আগে এবং পরে উভয়ই একই ইউআইডি (1000) প্রদান করে sudo chmod +s ./setuid-test
। আমি মনে করি এর অর্থ হ'ল সেটুইডের আমার এক্সিকিউটেবলের উপর কোনও প্রভাব নেই, কেন এবং কীভাবে সমাধান করবেন?
উত্স কোড:
#include <stdio.h>
#include <unistd.h>
int main(int argc, char** argv) {
printf("%d", geteuid());
return 0;
}
নির্মিত এবং চালানো
$ gcc -o setuid-test setuid-test.c
$ ./setuid-test
1000
$ sudo chown nobody ./setuid-test; sudo chmod +s ./setuid-test
$ ./setuid-test
1000
দৌড়ানোর সময় ls -la
, আমি এটিই পাই:
me@me:~$ ls -la setuid-test
-rwsrwsr-x 1 nobody me 8572 Aug 19 16:39 setuid-test
me@me:~$ ls -la setuid-test
---- ফিরে আসে -----rwsrwsr-x 1 nobody me 8572 Aug 19 16:39 setuid-test
df .
ডিরেক্টরির মধ্যে তারপর বিন্দু মাউন্ট খোঁজার, mount | grep nameofmountpoint
। সেখানে কি কোনও nosuid
পতাকা তালিকাভুক্ত রয়েছে?