এমন কোনও গুগল ডিভাইস রয়েছে যা তাদের ডিফল্ট কার্নেলটিতে ক্ষমতা সমর্থন করে?


14

যদি আমি কোনও /systemনেক্সাস ডিভাইসকে সিস্টেমহীন ( পার্টিশনে কোনও পরিবর্তন করা হয় না ), তবে আমি কি মূল কার্নেল বাইনারি পরিবর্তন না করে এক্সিকিউটেবলের উপর ক্ষমতা সেট করতে সক্ষম হব ?

আমি প্রায়শই আমার টার্মিনাল (প্রয়োজনীয় CAP_DAC_READ_SEARCH) থেকে সীমাবদ্ধতা ছাড়াই ফাইল পরিচালনা করতে চাই । তবে আমি সুপারভাইজারটি ব্যবহার করতে চাই না।
প্রয়োজনীয় জিনিসগুলি হ'ল তাদের ব্যবহারের জন্য কার্নেল সমর্থন বরাবর ক্যাপ সেট করার সরঞ্জাম (এটি অন্যান্য ব্যবহারকারীর স্পেস জিনিসের উপর নির্ভর করে না)

সমস্যাটি হ'ল, আমি এ জাতীয় ডিভাইসের মালিক নই। সুতরাং আমি এটি বলতে পারি না এটির কোনওটিতে কাজ হবে কিনা Nexus 5X Nexus 6P Nexus 9 Pixel C


2
আমি কোনও নেক্সাস এমুলেটর খুঁজে
পেতেও

আমি সন্দেহ করি ... যেহেতু অ্যান্ড্রয়েড বায়োনিক লাইব্যাক ব্যবহার করে এবং মানক জিএনইউ লাইব্যাক (গ্লিবিসি) লাইব্রেরি নয়, এটি পসিক্সের সাথেও সামঞ্জস্য হয় না। আপনি বায়োনিকের পরিবর্তে ক্রিস্টাক্স এনডিকে-র মতো আলাদা আলাদা libc দিয়ে আপনার নিজস্ব কার্নেলটি সংকলন করতে সক্ষম হতে পারেন, তবে আমি জানি না যে সেই বৈশিষ্ট্যগুলি সেগুলিতে আছে কিনা।
এসেজভেলিন

@acejavelin: ইউজারল্যান্ড অংশটি কেবল ক্ষমতাযুক্ত বর্ধিত বৈশিষ্ট্য নির্ধারণের জন্য প্রয়োজনীয়। অন্য সব কিছুই কর্নেলের পাশে। আমি কেবল লক্ষ্য করেছি যে /system/bin/pingকমান্ডটি আমার আসল সংসাং ডিভাইসে সেট করা হয়নি, পরামর্শ দিচ্ছে CAP_NET_RAW। তবে, আমি একটি আসল ডিভাইস রুট করব না এবং প্রাসঙ্গিক তথ্য দেখতে আমি কোন সরঞ্জামটি ব্যবহার করতে পারি তা আমি জানি না, তাই আমি পরীক্ষা করতে পারছি না।
ব্যবহারকারী 2284570

আপনি কেন একটি নেক্সাস ডিভাইস রুট করবেন না? এটি এর জন্য উদ্দেশ্যযুক্ত এবং আপনার ওয়্যারেন্টি বাতিল করে না। কোনও Nexus ডিভাইসটিকে ডিফল্ট, অরোটেড এবং লকড অবস্থায় পুনরুদ্ধার করা খুব সহজ, ডিভাইসটি মূলত অবিরাম।
এসেজভেলিন

@ এসেজভেলিন: আমার কোনও নেক্সাস ডিভাইস নেই ... আমার লক্ষ্য সুরক্ষা গবেষণা এবং গুগল কেবল নিজের ডিভাইসগুলির জন্য পুরষ্কার। সুতরাং আমার জানতে হবে আমার প্রশ্নে থাকা কোনও ডিভাইসের কার্নেলটি ক্ষমতা xattr ব্যবহার করে সমর্থন করে। আমি আমার গ্যালাক্সি ট্যাবে যা দেখছি সম্ভবত এটি কেবল সংযুক্ত। আমি যদি আমার প্রশ্নের মূলগুলি জড়িত না করি তবে এটি অস্পষ্ট হিসাবে বন্ধ হয়ে যেতে পারে
ব্যবহারকারী 2284570

উত্তর:


1

প্রশ্নটি পুরানো হলেও এটি উত্তর না দেওয়া (আমার ট্যাগ) প্রশ্নের উপরে উপস্থিত হতে থাকে । সুতরাং আমি মনে করি এর উত্তর দেওয়া উচিত :)

সক্ষমদের জন্য এএসপি'র সহায়তা:

প্রশ্নটি বিশেষত গুগল ডিভাইস সম্পর্কে, আমি কখনও কোনও গুগল ডিভাইস ব্যবহার করি নি। তবে আমি নিশ্চিতভাবে যা বলতে পারি তা হ'ল অ্যান্ড্রয়েড 1.6 এর মতো কম চলমান বেশিরভাগ ডিভাইসে (সমস্ত না থাকলে) লিনাক্স (প্রক্রিয়া) ক্ষমতা অবশ্যই সক্ষম করা উচিত ছিল। রেফারেন্স পাওয়া যায় initএবং system_serverউভয়ই এওএসপির খুব প্রাথমিক উপাদান। উদাহরণস্বরূপ, অ্যান্ড্রয়েড ৪.২-এ, installd- আরেকটি মূল উপাদান - বাদ দেওয়া ক্ষমতা নিয়ে চালানো হয়েছিল।

ফাইল সিস্টেমের ক্ষমতাগুলি অ্যান্ড্রয়েড ৪.৩- এ অন্যতম প্রধান সুরক্ষা বর্ধন ছিল যা তাদের উপর ফাইলের ক্ষমতা নির্ধারণের মাধ্যমে বাইনারিগুলি থেকে সরানো set-uid/ set-gidসরিয়ে run-asদেয়। এটি অ্যান্ড্রয়েডের মূল যাত্রায় বিপ্লবী পরিবর্তন ঘটায়

অ্যান্ড্রয়েড 8-এ অ্যাম্বিয়েন্ট ক্ষমতার জন্য সমর্থন যোগ করা হয়েছিল যা ফাইল ক্ষমতার ব্যবহারকে নিরুৎসাহিত করে:

ফাইল ক্ষমতা, ঘুরে, একটি সুরক্ষা ঝুঁকি উপস্থাপন করে যেহেতু ফাইল ক্ষমতা সহ যে কোনও প্রক্রিয়া কোনও ফাইল কার্যকর করে সেই ক্ষমতাগুলি অর্জন করতে সক্ষম হবে।

অনেকগুলি initপরিষেবা তাদের উপর নির্ভর করে যেমন storagedআমার নিজস্ব sshdএবং dnscrypt-proxyপরিষেবাদিগুলি।

যোগ্যতার জন্য কার্নেলের সহায়তা:

কার্নেলের অংশে আসার পরে, ক্ষমতা ছাড়াই কার্নেল তৈরি করা isn'tচ্ছিক নয়:

কার্নেল ২.২.২7 থেকে কার্নেল ২.6.২6 পর্যন্ত, ক্ষমতাগুলি একটি alচ্ছিক কার্নেল উপাদান ছিল এবং CONFIG_SECURITY_CAPABILITIES কার্নেল কনফিগারেশন বিকল্পের মাধ্যমে সক্ষম / অক্ষম করা যেতে পারে ।

এবং:

লিনাক্স ২.6.৩৩ এর আগে কার্নেলগুলিতে, ফাইল ক্ষমতাগুলি একটি বিকল্প বৈশিষ্ট্য ছিল যা CONFIG_SECURITY_FILE_CAPABILITIES বিকল্পের মাধ্যমে কনফিগার করা যায় । লিনাক্স ২.6.৩৩ থেকে কনফিগারেশন বিকল্পটি সরানো হয়েছে এবং ফাইল ক্ষমতা সর্বদা কার্নেলের অংশ।

অ্যান্ড্রয়েড সংগ্রহস্থলগুলির মধ্যে প্রাচীনতম সাধারণ কার্নেল সংস্করণটি ২.6.৩৯ যা ফাইল ক্ষমতার জন্য সমর্থনও অন্তর্ভুক্ত

কার্নেল সাইডে ফাইল সিস্টেমের সক্ষমতার জন্য সমর্থন অবশ্যই কিছু ই এম থেকে বিলম্বিত হয়েছে তবে তাদের স্যুইচ করতে হয়েছিল, অন্যথায় কার্যকারিতা ভঙ্গ হবে। উদাহরণস্বরূপ surfaceflinger(অ্যান্ড্রয়েডের পৃষ্ঠতলের সুরকার ) অ্যান্ড্রয়েড .1.১ থেকে ফাইলের ক্ষমতা ছাড়াই কাজ করবে না।

মেইনলাইন লিনাক্স কার্নেল 4.3 এপ্রিয়েন্ট (প্রক্রিয়া) সক্ষমতার জন্য সেপ্টেম্বর -15 এ প্যাচ করা হয়েছিল, 2016 এ অ্যান্ড্রয়েড কার্নেল 3.18 এবং 4.1 এ ব্যাকপোর্ট করা হয়েছিল So সুতরাং এগুলি অবশ্যই কার্নেলের একটি অংশ।

উপসংহার:

লিনাক্স ডিস্ট্রোজে খুব কম প্রোগ্রাম লিনাক্সের ক্ষমতা ব্যবহার করে। যদিও এখন পর্যন্ত pam_cap, বেশিরভাগ (বা সকলের?) ডিস্ট্রো এখনও ব্যবহার set-uidউপর su, sudo, ping, mount, passwdইত্যাদি। তবে অ্যান্ড্রয়েড ক্ষমতাগুলি ফ্রেমওয়ার্ক এবং মূল পরিষেবাদিতে গভীরভাবে সংহত করা হয়েছে। এগুলি অপসারণ করতে কয়েকশো সম্পাদনা প্রয়োজন হবে বা এওএসপি এবং কার্নেল উত্সের কয়েক হাজার লাইন হতে পারে। এটি কোনও ধারণা দেয় না যে কোনও এএম (বিশেষত গুগল, যিনি অ্যান্ড্রয়েডের জন্য এওএসপি এবং সংশোধিত লিনাক্স কার্নেল তৈরি করেছেন) অ্যান্ড্রয়েড কার্নেলে সহজেই উপলব্ধ হলে এই বিনা মূল্যে সুরক্ষা বৈশিষ্ট্যটি ব্যবহার করবেন না । এটি একটি খাঁটি ওএস সম্পর্কিত বৈশিষ্ট্য, কোনও অতিরিক্ত হার্ডওয়্যার সমর্থন দাবি করে না। সুতরাং কোনও প্রস্তুতকারকের যে কোনও ফোনে অবশ্যই ক্ষমতা সমর্থিত থাকতে হবে।


প্রশ্ন:

আমি কি আসল কার্নেল বাইনারি পরিবর্তন না করে এক্সিকিউটেবলের উপর দক্ষতা সেট করতে সক্ষম হতে পারি?

হ্যাঁ, আপনি অবশ্যই।

প্রয়োজনীয় জিনিস হ'ল ক্যাপ সেট করার সরঞ্জামগুলি ...

আমি ব্যবহার করা হয়েছে capsh, getcap, setcap, getpcapsথেকে libcapএবং netcap, pscapথেকে libcap-ngকোন সমস্যা ছাড়াই। তবে আমি পরিবেশনীয় ক্ষমতাগুলি পছন্দ করি, এগুলি কনফিগার করা সহজ এবং ফাইল ক্ষমতাগুলির ক্ষেত্রে বর্ধিত বৈশিষ্ট্যের মতো কোনও ফাইল সিস্টেম বৈশিষ্ট্যের উপর নির্ভর করে না । এছাড়াও আপনি ব্যবহার করতে পারেন listxattr, getxattr, setxattrএবং removexattrএর সরঞ্জাম xattr_syscall_wrapperনিপূণভাবে security.capabilityবা অন্য কোন XATTR সরাসরি।

আপনার মন্তব্য থেকে:

আমি কেবল লক্ষ্য করেছি যে /system/bin/pingকমান্ডটি setuidআমার আসল স্যামসাং ডিভাইসে নেই, পরামর্শ দিচ্ছেCAP_NET_RAW

অ্যান্ড্রয়েডের পিং নেই বা set-uidনেই CAP_NET_RAW। এটি একটি বিশেষ অ-RAW সকেট তৈরি করে IPPROTO_ICMP- যা এর বিপরীতে IPPROTO_RAW- কোনও সুযোগ-সুবিধার প্রয়োজন হয় না।


আরও উল্লেখ:

উপরে বর্ণিত 10+ রেফারেন্স ছাড়াও, লিনাক্সের ক্ষমতা সমর্থন এবং ব্যবহারের জন্য এওএসপি কোডের কয়েকটি অন্যান্য অংশ এখানে দেওয়া হয়েছে:

  • কোর উপাদান: বায়োনিক libc, init, trusty(অপারেটিং সিস্টেম)
  • বাহ্যিক উপাদান: libcap ,libcap-ng
  • ডেমন / সেবা: zygote (forked অ্যাপ্লিকেশান এবং system_server), hostapd, wpa_supplicant, dnsmasq, logd, netd( NetLinkম্যানেজার, ব্যক্তিগত ডিএনএস), debuggerd(টেস্ট), sdcardডেমন, performanced, incidentd, mtpd, traced_probes(perfetto), racoon(IP সেক), wificondসহ করতো HAL ডেমন একটি নম্বর rild
  • এক্সেকিউটেবল: reboot (Init), dumpstate, tcpdump, strace, iputils( ping, tracerouteইত্যাদি)
  • মিনিজাইল: একটি উত্সর্গীকৃত স্যান্ডবক্সিং সরঞ্জাম এবং গ্রন্থাগার যা সক্ষমতার চারপাশে ঘোরে। adbdসুযোগ পড়তে এই লাইব্রেরিটি ব্যবহার করে।
  • SELinuxcapability ডোমেনগুলিকে ক্ষমতা প্রদান / অস্বীকার করতে শ্রেণি ব্যবহার করে ।

এটি উপসংহারে এসেছে যে অ্যান্ড্রয়েড লিনাক্সের ক্ষমতার উপর অত্যন্ত নির্ভর করে, এটি কোনও সামান্য ব্যবহৃত বৈশিষ্ট্য নয়।


সম্পর্কিত:


কিছুতেই কোনও উত্তর দেয় না। আপনার বর্ণিত সমস্ত কিছুই জানা যায়। প্রশ্নটির বিষয়টি হ'ল এটি যেহেতু অল্প ব্যবহৃত we গুগল ব্র্যান্ডেড ডিভাইসগুলিতে এটি অন্তর্ভুক্ত।
ব্যবহারকারী 2284570
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.