আমি ডেবিয়ান গ্নু / লিনাক্স-এ, ক্ষমতা নিয়ে পরীক্ষা-নিরীক্ষা করছি।
আমি আমার বর্তমান ওয়ার্কিং ডিরেক্টরিতে অনুলিপি / বিন / পিং করেছি। প্রত্যাশিত হিসাবে এটি কাজ করে না, এটি মূলত নির্ধারিত মূল root
আমি তারপরে আমার পিংকে সর্বনিম্ন ক্ষমতাগুলি (রুট নয়) sudo /sbin/setcap cap_net_raw=ep ./pingদিয়েছি এবং আমার পিং প্রত্যাশা অনুযায়ী কাজ করে।
তারপরে sudo /sbin/setcap -r ./pingসেই সামর্থ্য প্রত্যাহার করা। এটি এখন আশানুরূপভাবে কাজ করছে না।
আমি এখন পিং ব্যবহার করে কাজ করার চেষ্টা করি capsh।
capsh কোনও সুবিধা নেই, সুতরাং এটির মূল হিসাবে চালানো দরকার, তবে তারপরে রুটটি ফেলে দিন এবং অন্য সমস্ত সুযোগ-সুবিধা রয়েছে।
আমি মনে করি আমারও এটি দরকার secure-keep-caps, এটি নথিবদ্ধ নয় capsh, তবে ক্ষমতা ম্যানুয়ালটিতে রয়েছে। আমি বিট নম্বর পেয়েছি /usr/include/linux/securebits.h। এগুলি সঠিক বলে মনে হচ্ছে, আউটপুট --printএই বিটগুলি সঠিক হতে দেখায়।
আমি কয়েক ঘন্টা ধরে ফিড করছি, এখনও পর্যন্ত আমার কাছে এটি আছে।
sudo /sbin/capsh --keep=1 --secbits=0x10 --caps="cap_net_raw+epi" == --secbits=0x10 --user=${USER} --print -- -c "./ping localhost"
যাইহোক pingত্রুটিগুলি সহ ping: icmp open socket: Operation not permitted, এর সক্ষমতা না থাকলে এটি ঘটে। এছাড়াও --printশো Current: =p cap_net_raw+i, এটি আমাদের প্রয়োজন যথেষ্ট নয় e।
sudo /sbin/capsh --caps="cap_net_raw+epi" --print -- -c "./ping localhost"এটির জন্য ক্ষমতাটি Current: = cap_net_raw+eipসঠিক সেট করবে তবে এটি আমাদের ছেড়ে দেয় root।
সম্পাদনা করুন -1
আমি এখন চেষ্টা করেছি sudo /sbin/capsh --keep=1 --secbits=0x11 --caps=cap_net_raw+epi --print -- -c "touch zz; ./ping -c1 localhost;"
এটি উত্পাদন করে:
touch: cannot touch `zz': Permission denied
ping: icmp open socket: Operation not permitted
প্রথম ত্রুটি যেমনটি প্রত্যাশিত secure-noroot: yes
তবে দ্বিতীয়টি তা নয়Current: = cap_net_raw+eip
সম্পাদনা করুন-2
যদি আমি এটির ==আগে রাখি --print, এটি এখন প্রদর্শিত হয় Current: = cap_net_raw+i, যাতে এটি পূর্ববর্তী ত্রুটিটি ব্যাখ্যা করে তবে মূল থেকে বেরিয়ে আসার সময় কেন আমরা সামর্থ্য হারাতে পারি না, যদিও আমি এটি secure-keep-capsঠিক করেছিলাম ।
সম্পাদনা করুন -3
আমি যা দেখতে পাচ্ছি সেগুলি থেকে আমি কার্যকর (ই), এবং অনুমোদিত (পি) হারাচ্ছি, যখন এক্সেকে বলা হয়। এটি প্রত্যাশিত, তবে আমি ভেবেছিলাম যে সুরক্ষিত-ক্যাপ-ক্যাপগুলি তাদের হারিয়ে যাওয়া উচিত। আমি কিছু অনুপস্থিত করছি.
সম্পাদনা -4
আমি আরও গবেষণা করছি, এবং ম্যানুয়ালটি আবার পড়ছি। মনে হয় সাধারণত eএবং pক্ষমতাগুলি হ'ল : যখন আপনি ব্যবহারকারীর কাছ থেকে স্যুইচ করেন root(বা প্রয়োগ করুন secure-noroot, এইভাবে একটি সাধারণ ব্যবহারকারীকে রুট করে তোলেন), এটিকে ওভাররাইড করা যেতে পারে secure-keep-caps; আপনি যখন ফোন করবেন exec, আমি যতদূর বলতে পারি এটি একটি আক্রমণকারী।
আমি যতদূর বলতে পারি, এটি ম্যানুয়াল অনুসারে কাজ করছে। আমি যতদূর বলতে পারি এর সাথে দরকারী কিছু করার কোনও উপায় নেই capsh। যতদূর আমি বলতে পারি, আপনার প্রয়োজনীয় দক্ষতাগুলি ব্যবহার করার জন্য: ফাইল ক্ষমতা ব্যবহার করুন বা একটি দক্ষতা সম্পর্কে সচেতন প্রোগ্রাম থাকতে হবে, যা ব্যবহার করে না exec। অতএব কোনও সুবিধাযুক্ত মোড়ক নেই।
সুতরাং এখন আমার প্রশ্ন আমি কি অনুপস্থিত, কি capshজন্য।
সম্পাদনা -5
আমি একটি উত্তর পুনরায় পরিবেষ্টনের ক্ষমতা যুক্ত করেছি। হয়তো capshআরো উত্তরাধিকারসূত্রে ক্ষমতা ব্যবহার করা যেতে পারে, কিন্তু দরকারী এই এক্সিকিউটেবল ফাইল সেট করা করতে হবে যাবে। আমি দেখতে পাচ্ছি না যে ক্যাপস কীভাবে পারিবারিক ক্ষমতা ছাড়াই দরকারী কিছু করতে পারে, বা উত্তরাধিকার সূত্রে প্রাপ্ত ক্ষমতাগুলিকে অনুমতি দেয়।
সংস্করণ:
capshপ্যাকেজlibcap2-binসংস্করণ থেকে1:2.22-1.2- সামনে সম্পাদন করা -3 আমি সর্বশেষ ধরলাম
capshথেকেgit://git.debian.org/collab-maint/libcap2.gitএবং এটি ব্যবহার শুরু করেন। uname -aLinux richard-laptop 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u2 x86_64 GNU/Linuxব্যবহারকারীর জমি 32 বিট।
capshঅ্যাম্বিয়েন্টের অনুপস্থিতিতে (যেমন এটি মূলত ছিল) ব্যবহার কী। আমি কী মিস করছি এটি অবশ্যই ব্যবহার করা উচিত।
capshসহযোগিতা-maint রেপো থেকে দেওয়া যেত "সর্বশেষ"capsh, ডেবিয়ান প্যাকেজ এখনো পরিবেষ্টনকারী ক্ষমতা সমর্থন করে না। প্রবাহ 2.27 করে।