ব্যবহারকারী / গোষ্ঠী আইডি তথ্য অ্যান্ড্রয়েডে কোথায় সঞ্চিত এবং আমি কীভাবে এটি ব্যাখ্যা করব?


15

আমি বেশ কিছুদিন ধরেই ভাবছিলাম; অ্যান্ড্রয়েড কোথায় এটি ব্যবহারকারীর এবং গ্রুপ আইডি তথ্য সঞ্চয় করে?

উদাহরণস্বরূপ, স্ট্যান্ডার্ড লিনাক্সে ব্যবহারকারী এবং গোষ্ঠী সম্পর্কিত তথ্য যথাক্রমে /etc/passwdএবং সংরক্ষণ করা /etc/groupহয়। আপনি যখন কোনও গোষ্ঠীতে কোনও ব্যবহারকারী যুক্ত করেন, তার বা তার ব্যবহারকারীর নাম / uid group গোষ্ঠীর ব্যবহারকারীদের তালিকায় যুক্ত হয়, উদাহরণস্বরূপ আমার অডিও গোষ্ঠী এন্ট্রিটি এর /etc/groupমতো দেখায়:

audio:x:29:pulse,edge-case

যেখানে ডালটি পালসৌদিও ডেমনের উডে ম্যাপ করা হয় এবং আমার লিনাক্স বাক্সে প্রান্ত-কেসটি আমার ইউআইডি (1000) এ ম্যাপ করা হয়।

আমি এটি বুঝতে পেরেছি, অ্যান্ড্রয়েডে ইনস্টল হওয়া প্রতিটি অ্যাপ্লিকেশনটি তার নিজস্ব জিড এবং গিড পায় এবং এগুলি অ্যান্ড্রয়েডে ঘটে এমন অ্যাপগুলির "স্যান্ডবক্সিং" এর ঘাঁটি যা তারা নিজেরাই প্রক্রিয়াতে চালিত হয় এবং অন্যটির ডেটা অ্যাক্সেস করতে পারে না প্রক্রিয়া বা অন্য অ্যাপের মালিকানাধীন ফাইলগুলি অ্যাপ্লিকেশন প্রোগ্রামারদের দ্বারা তৈরি ম্যানিফেস্ট ফাইলে ঘোষণা না দেওয়া থাকে যা অন্যান্য অ্যাপ্লিকেশনগুলিতে কোন তথ্য ভাগ করা উচিত এবং কী নয় তা নির্দেশ করে। অ্যাপ্লিকেশনগুলি কীভাবে ইন্টারনেট গ্রুপে যুক্ত হওয়ার অনুরোধ করে বা সে জাতীয় কিছুতে নেট নেট গ্রুপের নামে উদ্ধৃতি না দিয়ে, ইনস্টলেশন চলাকালীন নেটওয়ার্কিং পরিষেবাগুলিতে অ্যাক্সেস পাওয়ার বা পরিবর্তনের অনুরোধ জানায়, এটি আইএনইটি বা আরও কিছু হতে পারে আইএনইটি,, যেভাবেই আমি জানি যে নেটওয়ার্ক অ্যাক্সেসের কয়েকটি স্তরের অ্যান্ড্রয়েডে এই প্রক্রিয়াটির মাধ্যমে কোনও অ্যাপ্লিকেশনকে মঞ্জুরি দেওয়া যেতে পারে।

আমার প্রশ্ন, অ্যান্ড্রয়েডে এই তথ্যটি কোথায় সংরক্ষণ করা হয়?

আরও আরও, এটি পরিবর্তন করা সম্ভব?

আমি এটির সাথে একটি গ্লিবসি স্ট্যাক এবং এর মধ্যে থাকা /etc/{passwd,group}ফাইলগুলিতে আমার ফাইলগুলিতে একীকরণ করতে চাই , আমার উপর বিশ্বাস রাখুন, সেগুলি আমার ফোনে উপস্থিত রয়েছে, এমনকি আমি আরও অনেক গুডির সাথে ইনস্টল করেছি।

আপডেট: আরও অনুসন্ধান করা হয়েছে এবং এটি আমি যা খুঁজছি তা হতে পারে।

আমাকে আরও গভীর খনন করতে হবে এবং এটি অনুসন্ধান করা উচিত যা আমি সন্ধান করছি is

আপডেট: (5:40 জুন 27 2014)

যেহেতু কেউ মনে করে আমি কী করছি বা কী বিষয়ে কথা বলছি তা আমি জানি না, তাই আমাকে স্পষ্ট করে বলি;

অ্যান্ড্রয়েডে ব্যবহারকারী ইউআইডিগুলি 100000 দিয়ে অফসেট হয় এবং ব্যবহারকারী নম্বর _ অ্যাপ্লিকেশন নম্বরটিতে ম্যাপ করলে অ্যাপ ইউআইডি 10000 দিয়ে অফসেট হয়, তাই যখন কোনও পিএস u0_a10 এর মতো কিছু দেখায় যার অর্থ ইউআইডি 100000 সহ ব্যবহারকারী ইউআইডি 10010 দিয়ে অ্যাপ চালাচ্ছে,

আমি ইউআইডি এবং ব্যবহারকারী / ডেমন নামগুলি সিস্টেম / কোর / থেকে অন্তর্ভুক্ত / প্রাইভেট / অ্যান্ড্রয়েড_ফাইলসিসটেম_কনফিগ। এইচটি এনেছি এবং তাদের আমার / ইত্যাদি / পাসডাব্লু এবং / ইত্যাদি / গ্রুপ ফাইলগুলি (আমার অ্যান্ড্রয়েড বাক্সে) আপডেট করতে ব্যবহার করেছি, উদাহরণস্বরূপ আমার / ইত্যাদি / পাসডাব্লুডি ফাইল (আমার অ্যান্ড্রয়েড বাক্সে) এর মতো দেখাচ্ছে:

....
brainard:x:100002:100002:Professor Brainard,0420,,:/home/brainard
:/bin/bash
radio:x:1001:1001::/data/radio:/bin/false
bluetooth:x:1002:1002::/data/bluetooth:/bin/false
graphics:x:1003:1003::/home/graphics:/bin/false
input:x:1004:1004::/home/input:/bin/false
camera:x:1006:1006::/home/camera:/bin/false
log:x:1007:1007::/home/log:/bin/false
compass:x:1008:1008::/home/compass:/bin/false
mount:x:1009:1009::/home/mount:/bin/false
wifi:x:1010:1010::/home/wifi:/bin/false
adb:x:1011:1011::/home/adb:/bin/false
install:x:1012:1012::/home/install:/bin/false
media:x:1013:1013::/home/media:/bin/false
dhcp:x:1014:1014::/home/dhcp:/bin/false
....

আমি এর মতো নতুন ব্যবহারকারী তৈরি করতে /etc/adduser.conf এ কনফিগারেশন সেট আপ করেছি (আমার অ্যান্ড্রয়েড বাক্সে):

# FIRST_[GU]ID to LAST_[GU]ID inclusive is the range of UIDs of dynamically
# allocated user accounts/groups.
FIRST_UID=100001
LAST_UID=199999

FIRST_GID=100001
LAST_GID=199999

এটি অ্যান্ড্রয়েডের নীতি অনুসারে, আমি "গ্লিবসি ভিত্তিক" সিস্টেম ব্যবহারকারীদের এখনও 100-999 পরিসীমা থেকে তৈরি করতে দিয়েছি বলে আমি বিশ্বাস করি এবং আমি আমার / ইত্যাদি / পাসডাব্লু এবং / ইত্যাদি / গ্রুপ ফাইলগুলিতে অডিও ব্যবহারকারীকে 1005 এর মতো করে পরিবর্তন করেছি এটি অ্যান্ড্রয়েডে রয়েছে।

আমাকে অ্যান্ড্রয়েড আপডেট করতে হবে এবং আমার ইউআইডি সম্পর্কিত তথ্য এবং সেইসাথে গ্লিব্যাক স্ট্যাক থেকে আমার ডেমন বা সিস্টেম ব্যবহারকারী ইউআইডিগুলির সাথে এটি সমন্বয় করতে হবে।

আপনি এখানে করিম ইয়াঘমৌর বিক্রয়কৃত "এম্বেড অ্যান্ড্রয়েড" বইটিতে আরও পড়তে পারেন

আমার লক্ষ্য এনভিএলসি-র মতো প্রোগ্রামগুলি কাজ করা তবে আমার ইউআইডি এবং জিআইডিগুলি সুসংগত করা দরকার যাতে অ্যান্ড্রয়েড আমার ব্যবহারকারীদের এবং তাদের সাথে সম্পর্কিত গ্রুপগুলির সম্পর্কে সচেতন হয় যাতে উদাহরণস্বরূপ, আমার ব্রেনার্ড ব্যবহারকারী অডিও ডিভাইসে অ্যাক্সেস পান have

এছাড়াও পোস্ট্রেস এবং নেটওয়ার্ক গ্রুপে এটির সদস্যতা সম্পর্কে আমার অ্যান্ড্রয়েডকে জানাতে হবে যাতে এটি সকেটগুলি খুলতে পারে এবং ডাটাবেসে অ্যাক্সেস করতে পারে। আমি আপাতত কার্নেলে PARANOID_NETWORKING অক্ষম করেছি, তবে এই হ্যাকটি কেবল অ্যান্ড্রয়েডকে ভ্যানিলা লিনাক্স হিসাবে সুরক্ষিত করে তুলবে, এর চেয়ে কম নয়। ভৌগলিক সেটিংটি রাখা এবং আমি যে ডেমন / ব্যবহারকারীদের উপযুক্ত তা দেখতে গ্রুপ অনুমতিগুলি প্রয়োগ করা ভাল।

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

আমি এগুলি সবই বুঝতে পেরেছি, অ্যান্ড্রয়েডের ইউআইডি / জিআইডি ডাটাবেস কীভাবে আপডেট করতে হবে তা আমার কেবল জানতে হবে, যা আপনি যখন কোনও অ্যাপ ইনস্টল করেন প্রতিবার আপডেট হয়, তাই আমি জানি এটি সম্ভব is

আপডেট: (30 জুন, 2014 সন্ধ্যা 7:08)

নিম্নলিখিত ফাইলগুলিতে ডেটা নেওয়ার পরে ...

/data/system/packages.list
/data/system/packages.xml
/data/system/user/userlist.xml
/data/system/user/0.xml

... "আমি কীভাবে এটি ব্যাখ্যা করব?" অন্তর্ভুক্ত করার জন্য আমি আমার প্রশ্ন আপডেট করেছি

  • আমি মনে করি যে আমি একটি কাস্টম পিএএম মডিউল তৈরি করতে এবং বায়োনিক এবং গ্লিবিককে একটি সি সি লাইব্রেরিতে মিশ্রিত করতে চাই, তাদের উভয় পক্ষের অ্যাপ্লিকেশনগুলির সাথে সামঞ্জস্য করা দরকার, কোনও ব্যতিক্রম নেই, সি ++ ব্যতিক্রম প্রত্যাশা করা উচিত; আমি --- লিখেছি আমার অনুসরণ করার জন্য থাম্ব -2 এর কয়েকটি নিয়ম :)। আমার কাছে জনপ্রিয় প্যাকেজ ম্যানেজমেন্ট সিস্টেমে আরপিএম এবং অ্যাপ্লিকেশন যেমন একটি এপিকে ইনস্টল করে দেয় এবং প্রতিটি নতুন দেব | আরপিএম প্যাকেজকে একটি ইউআইডি দেয় এবং সম্ভবত এফএইচএসের মধ্যে সিম-লিংক দেয় এমন একটি র‌্যাপার লিখতেও পারে। এটি হতে পারে সবচেয়ে আদর্শ সমাধান যা আমি যেতে পারি, যদিও সর্বাধিক কাজ হিসাবে প্রত্যেকেরই তাদের "ম্যানিফেস্ট" তে কিছু সেট অনুমতি প্রয়োজন হতে পারে, ইনস্টল করার সময় কোনও মেনু ব্যবহারকারীর দিতে পারে এবং প্রয়োজন মতো নিতে পারে।
  • কারও কি এমন একটি ভাল রেফারেন্স রয়েছে যা এই ফাইলগুলির বাক্য গঠনটি ব্যাখ্যা করে? আমি এক্সএমএল সম্পর্কে খুব ভাল পারদর্শী নই, এটির ব্যবহারের কথা উল্লেখ না করা সাধারণত এটির প্রয়োগের উপর নির্ভর করে ts
  • আমি শেষ কলামে এন্ট্রি packages.listবাদ দিয়ে ফাইলটি বুঝতে পারি null, কেউ কি এটি ব্যাখ্যা করতে পারেন?

উত্তর:


1

GET_ACCOUNTSঅনুমতি দেখেছেন ? ( এডি। দ্রষ্টব্য: এই বিশেষ বৈশিষ্ট্যটি এই প্রশ্নের জন্য প্রতিটি উপকারী নাও হতে পারে, কারণ এটি সম্ভবত ওয়েব প্রমাণীকরণের জন্য আরও বেশি বৈশিষ্ট্যযুক্ত একটি বৈশিষ্ট্য))

ব্যক্তিগতভাবে, আমি ইউপিআইডি / জিআইডি মানগুলির সাথে এপিড ইনস্টল করার সময় গণনা করা বিষয়গুলি নিয়ে পড়ছি - বর্তমানে, একটি সহজ 'ব্লগ নিবন্ধের গবেষণা হিসাবে - তবে আমি এই বিষয়টিকে আরও খানিকটা অধ্যয়ন করতে চাই। অ্যানড্রয়েডে এই বহুগুণিত ওএস বৈশিষ্ট্যগুলি সম্পর্কে রেফারেন্স ডকুমেন্টেশনের উল্লেখ করে অ্যান্ড্রয়েড ওএসে অ্যাকাউন্ট অ্যাকাউন্ট রয়েছে বলে মনে হয় । ( এড। দ্রষ্টব্য এটি আরও সম্ভবত মনে হতে পারে যে অ্যান্ড্রয়েডের অ্যাকাউন্ট অ্যাকাউন্টটি অ্যান্ড্রয়েড ব্যবহারকারীর ওয়েব অ্যাকাউন্ট সম্পর্কিত অ্যাপ্লিকেশনের জন্য আরও উন্নত পরিষেবা হতে পারে)

যদিও ব্যক্তিগতভাবে আমি অন্য আর্টিকেলটি লিখতে আগ্রহী তাৎক্ষণিকভাবে, তবে অবশ্যই অ্যাকাউন্ট পরিষেবাটি আরও কিছুটা গবেষণা গ্রহণ করতে পারে। অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলিতে কার্বেরোস প্রয়োগের ক্ষেত্রে এটি অর্থোথোনালিভাবে প্রাসঙ্গিক হতে পারে। অ্যান্ড্রয়েড প্ল্যাটফর্মে কার্বেরোস পরিষেবাদি বাস্তবায়নের সাথে সম্পর্কিত কয়েকটি বিদ্যমান কাজ রয়েছে। ওয়েব অ্যাপ্লিকেশনগুলির জন্য অবশ্যই OAuth / OAuth2 রয়েছে।

স্পষ্টতই, অ্যানড্রয়েড প্রচলিত ইউনিক্স পাসডাব্লু / শেডো ফাইলগুলি ব্যবহার করে না ( Anderson2013 )) আমার সর্বোত্তম অনুমান, বর্তমানে, অ্যান্ড্রয়েড ওএস অ্যাকাউন্ট পরিষেবাটি আরও অধ্যয়নের একটি পদ্ধতির বিষয় হতে পারে ... কমপক্ষে এতদূর জানতে পারে যে অ্যান্ড্রয়েড অ্যাকাউন্ট পরিষেবাটি বরং একটি ওয়েব প্রমাণীকরণের ইউটিলিটি ( এপিআই: অ্যাকাউন্টম্যানেজার )।

আমি নিশ্চিত /etc/passwdযে অ্যান্ড্রয়েড উত্স কোডে কোথাও অ্যান্ড্রয়েডের বিকল্প সম্পর্কে আরও কিছু আছে । আশা করি, এটি সানজেনমডে একই জিনিসটির সাথে যোগাযোগ করা যেতে পারে to


1

অ্যান্ড্রয়েড কীভাবে ইউআইডি / জিআইডি লুকআপ প্রয়োগ করে সে সম্পর্কে আমার ধারণা thoughts আমি আশা করি যে কারও কাছে প্রশ্ন রয়েছে তাদের পক্ষে এটি সহায়ক হবে।

grp_pwd.cpp বর্ণনা করে যে কীভাবে অ্যান্ড্রয়েড কোনও passwdকাঠামোয় কোনও ইউআইডি / ইউজারনেম অনুবাদ করে । getpwuidফাংশন থেকে আমরা এটি দেখতে পারি

  1. ইউআইডি প্রথম পূর্বনির্ধারিত এইডস আক্রান্ত হয়ে সাথে তুলনা করা হয় generated_android_ids.hঅধীনে $(AOSP_ROOT)/out/soong/.intermediates/bionic/libc/generated_android_ids/genযা থেকে উৎপন্ন হয় android_filesystem_config.h অনুযায়ী বায়োনিক / libc / Android.bp এবং বায়োনিক / Android.bp । উপকরণ ইউআইডি মানচিত্রে একটি ব্যবহারকারীর নাম সংরক্ষণ করা হয় struct android_id_info android_ids[]এবং যখন তাকিয়ে তারা রূপান্তরিত হয় passwdগঠন uidএবং gidসেট সাহায্য করি, home ডিরেক্টরিতে সেটে /এবং শেল সেটে /system/bin/sh( কোড )।

  2. পূর্ববর্তী পদক্ষেপে কোনও ব্যবহারকারীর সন্ধান না পেলে ফাংশনটি ইএম সংজ্ঞায়িত ব্যবহারকারীদের সন্ধান করবে। এই ব্যবহারকারীদের UIDs থেকে পরিসীমা AID_OEM_RESERVED_STARTথেকে AID_OEM_RESERVED_ENDএবং AID_OEM_RESERVED_2_STARTথেকে AID_OEM_RESERVED_2_END। বিক্রেতা-সংজ্ঞায়িত ব্যবহারকারীরা এতে সঞ্চিত থাকে /vendor/etc/passwd। ব্যবহারকারীর নাম সেট করা আছে oem_${uid}এবং অন্যান্য বৈশিষ্ট্যগুলি এইডের ব্যবহারকারীদের মতো একই ফ্যাশনে সেট করা আছে।

  3. অবশেষে, এটি সমস্ত অ্যাপ ব্যবহারকারীদের চেক করবে app_id_to_passwd()এবং প্রক্রিয়াটি খুব অনুরূপ।

আপনি যদি সমস্ত passwdএন্ট্রি পেতে চান তবে দয়া getpwent()করে একই ফাইলটি এবং getpwent এর ম্যানপেজটি দেখুন (3)


0

সবার আগে যেমন আপনি অবগত আছেন যে প্রতিটি অ্যাপ্লিকেশনের নিজস্ব অনন্য পিআইডি (প্রসেস আইডি) রয়েছে এই পিআইডি অপারেটিং সিস্টেমের কার্নেল দ্বারা অ্যাপ্লিকেশনটির জন্য বরাদ্দ করা হয়েছে।

  1. অ্যান্ড্রয়েড এডিটিতে আপনি লগকটে পিআইডি দেখতে পারেন।
  2. আপনি যদি নিজের ডিভাইসে পিআইডি দেখতে চান তবে আপনাকে প্লে স্টোর থেকে একটি অ্যাপ্লিকেশন ইনস্টল করতে হবে (অ্যাপ্লিকেশন দ্বারা প্রদর্শিত পিআইডি খাঁটি কিনা তা কোনও গ্যারান্টি দিতে পারে না)
  3. পরিবর্তনের অংশে আসা একটি বড় নং
  4. না আপনি পিআইডিটিকে নিজের ইচ্ছানুসারে পরিবর্তন করতে পারবেন না কারণ এটি সুরক্ষা উদ্বেগ এবং অন্য অ্যাপ্লিকেশনগুলির মধ্যে অ্যাপ্লিকেশনগুলির মধ্যে দ্বিপাক্ষিকতার দ্বন্দ্বের ফলে একই পিআইডি থাকতে পারে।

6
পিআইডি-র সাথে এর কোনও যোগসূত্র নেই, যা থিমের ব্যতিক্রমের সাথে পরিবর্তিত হয় যা সর্বদা পিআইডি 1 হয় কারণ এটি তৈরি করা প্রথম প্রক্রিয়া, এটি আমার গ্লাবসি স্ট্যাক থেকে অ্যান্ড্রয়েডকে ইউআইডি'র সম্পর্কে সচেতন করার সাথে আরও কিছু করতে পারে (এবং বিপরীতভাবে ) যেমন পোস্টগ্র্রেস ডেমন, এবং না এটি কোনও সুরক্ষা উদ্বেগ নয়, বায়োনিক স্ট্যাককে আমার সিস্টেমে থাকা এই অতিরিক্ত ইউআইডি এবং জিআইডি সম্পর্কে সচেতন করে তো সুরক্ষা বাড়িয়ে তুলবে। কীভাবে অ্যান্ড্রয়েড কার্বেরোস, এলডিএপি এবং প্যাম সচেতনতাকে সুরক্ষা সংক্রান্ত ত্রুটি হতে পারে ?! দারুণ লাগবে!
ওভারলোডেড_অপারেটর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.