লিনাক্স ফাইল অ্যাক্সেস নিরীক্ষণ


20

গত 1 সপ্তাহে নির্দিষ্ট ফাইলটি কে অ্যাক্সেস করেছে তা জানতে ইউনিক্সের কোনও উপায় আছে? এটি ব্যবহারকারী বা কোনও স্ক্রিপ্ট এটিকে অন্য কোনও জায়গায় এফটিপি করতে পারে p আমি কি নির্দিষ্ট ফাইল অ্যাক্সেস করেছে এমন ব্যবহারকারীর নামের একটি তালিকা পেতে পারি? কে নির্দিষ্ট ফাইলটি অ্যাক্সেস করছে তা আমি কীভাবে জানতে পারি ??

উত্তর:


39

আপনার যদি স্থানে অত্যন্ত অস্বাভাবিক লগিং নীতি না থাকে তবে কে কোন ফাইলটি লগড করেনি তা অ্যাক্সেস করেছে (এটি তথ্যের বিশাল পরিমাণ হবে)। সিস্টেম লগ-এ কোন সময়ে লগ-ইন করা হয়েছিল তা আপনি খুঁজে পেতে পারেন; lastকমান্ড আপনাকে যেমন ইতিহাস, এবং অন্যান্য লগ লগইন দেয় /var/log/auth.logআপনাকে বলতে হবে ব্যবহারকারীরা কীভাবে প্রামাণ থেকে যেখানে তারা অবশ্যই লগ ইন করতে (যা টার্মিনাল, অথবা যার হোস্ট যদি দূরবর্তী অবস্থান থেকে)।

যে ফাইলটিতে কোনও ফাইল শেষবার পড়েছিল সেটিকে তার অ্যাক্সেসের সময় বা সংক্ষিপ্ত সময়ের জন্য ডাকা হয় । সমস্ত ইউনিক্স ফাইল সিস্টেম এটি সঞ্চয় করতে পারে তবে অনেকগুলি সিস্টেম এটি রেকর্ড করে না, কারণ এটির (সাধারণত ছোট) পারফরম্যান্স পেনাল্টি রয়েছে। ls -ltu /path/to/fileবা stat /path/to/fileফাইলের অ্যাক্সেসের সময় দেখায়।

যদি কোনও ব্যবহারকারী ফাইলটি অ্যাক্সেস করে এবং তার ট্র্যাকগুলি গোপন করার চেষ্টা না করে, তবে তার শেল ইতিহাসের (উদাহরণস্বরূপ ~/.bash_history) ক্লু থাকতে পারে।

কী বা কার কাছে এখন ফাইল খোলা আছে তা জানতে, ব্যবহার করুন lsof /path/to/file

ভবিষ্যতে কোনও ফাইলের সাথে কী ঘটে তা লগ করার জন্য কয়েকটি উপায় রয়েছে:

  • Inotifywait ব্যবহার করুন । কেউ পড়লে inotifywait -e access /path/toএকটি লাইন মুদ্রণ করবে । এই ইন্টারফেসটি আপনাকে বলবে না কে এই ফাইলটি অ্যাক্সেস করেছে; এই লাইনটি উপস্থিত হওয়ার সাথে সাথে আপনি কল করতে পারেন , তবে একটি রেসের শর্ত রয়েছে (lsof চলার সময় অ্যাক্সেস শেষ হয়ে যেতে পারে)।/path/to/ ACCESS filefilelsof /path/to/file

  • লগডএফএফস হ'ল একটি স্ট্যাকেবল ফাইল সিস্টেম যা একটি ফাইল সিস্টেম গাছের একটি ভিউ সরবরাহ করে এবং সেই দৃশ্যের মাধ্যমে সমস্ত অ্যাক্সেসের ফ্যানসিয়ার লগিং সম্পাদন করতে পারে। এটি কনফিগার করতে, লগডএফএফএস কনফিগারেশন ফাইল সিনট্যাক্স দেখুন

  • আপনি ফাইল সিস্টেম অ্যাক্সেস সহ প্রচুর সংখ্যক জিনিস লগ করতে লিনাক্সের অডিট সাবসিস্টেমটি ব্যবহার করতে পারেন । auditdডেমনটি শুরু হয়েছে কিনা তা নিশ্চিত করুন , তারপরে আপনি লগইন করতে চান তা কনফিগার করুন auditctl। প্রতিটি লগ করা অপারেশন রেকর্ড করা হয় /var/log/audit/audit.log(সাধারণ বিতরণে)। একটি নির্দিষ্ট ফাইল দেখা শুরু:

    auditctl -w /path/to/file
    

    আপনি যদি কোনও ডিরেক্টরিতে একটি ঘড়ি রাখেন তবে এতে থাকা ফাইলগুলি এবং এর উপ-ডিরেক্টরিগুলি পুনরাবৃত্তভাবে পর্যবেক্ষণ করা হয়।


থ্যাঙ্কস গিলস .. আমার কাছে এই ডেট ফাইলটি স্ক্রিপ্ট দ্বারা তৈরি করা হয়েছে। আমি কেবল ফাইলটি তৈরি হওয়ার পরে কী ঘটেছিল তা জানতে চাই .. অন্য স্ক্রিপ্টগুলির মধ্যে কোনওটিই পরবর্তী প্রক্রিয়াটির জন্য এটি তুলছে না তাই আমি দেখতে চাই যে কেউ এই ডাট ফাইলটি ম্যানুয়ালি অ্যাক্সেস করছে কিনা
জ্যাক

@ জ্যাক: আপনার সেটআপ সম্পর্কে আরও বেশি কিছু না জেনে বলা শক্ত, তবে যতক্ষণ না ফাইল মুছে ফেলা বা নাম পরিবর্তন করে, অন্য স্ক্রিপ্টগুলি এটিকে বেছে নেবে, অন্য কেউ এটি অ্যাক্সেস করছে কি না। আপনার মন্তব্য থেকে, আমি মনে করি আপনি যখন আপনার স্ক্রিপ্টগুলি চালাবেন তখন কী ঘটেছিল সেদিকে আপনার নজর দেওয়া উচিত।
গিলস 21'17 এ

2
আরে, আপনি এটির সাহায্যে একটি সুন্দর বিজ্ঞপ্তি লুপ তৈরি করতে পারেন:syslogd access log file /var/log/audit.log at 10:01\nsyslogd access log file /var/log/audit.log at 10:02\n...
পেঙ্গুইন 359

7

ইনোটাইফয়েট সহ উপরের উদাহরণগুলির মধ্যে একটি হওয়া উচিত (আরও তথ্যের জন্য ম্যান পৃষ্ঠা দেখুন):

inotifywait /path/to/file
inotifywait -e open /pat/to/file

বা পর্যবেক্ষণ মোড এবং টাইমস্ট্যাম্প সহ:

inotifywait -m --format '%w:%e:%T' --timefmt '%F %T %Z %z'

6

আগের উত্তরটি আপনি যা চান তা করার জন্য সেরা অনুশীলন নয় । লিনাক্স এর জন্য একটি এপিআই রয়েছে। inotifyএপিআই http://linux.die.net/man/7/inotify

  1. আপনি inotifyসরাসরি এপিআই কল করতে চান তা করতে আপনি একটি সি প্রোগ্রাম লিখতে পারেন
  2. আপনি কেএফএসএমডি ব্যবহার করতে পারেন, http://www.linux.com/archive/feature/124903 একটি ডিমন ব্যবহার করেinotify
  3. আপনি যদি এমন কিছু চান যা প্ল্যাটফর্ম জুড়ে কাজ করে ( inotifyএটি লিনাক্স নির্দিষ্ট) এবং আপনি জাভা ব্যবহার করছেন, জেএনটিফাই প্ল্যাটফর্মগুলি (লিনাক্স, ম্যাক, উইন্ডোজ) জুড়ে কাজ করে, নেটিভ ওএসের অন্তর্নিহিত এপিআই বিমূর্ত করে।

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

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

1
Unix.stackexchange.com/a/12251/20336 inotifi এ ব্যাখ্যা করা হয়েছে যে প্রদত্ত ফাইলটি কে অ্যাক্সেস করেছে সে সম্পর্কে তথ্য সরবরাহ করে না । প্লাস ইনোটিফাই সত্যিই কে গত সপ্তাহে ফাইলটি অ্যাক্সেস করেছে তা নির্ধারণে সহায়তা করে না। আপনার এটির জন্য নিরীক্ষণের বৈশিষ্ট্যগুলি প্রয়োজন, যার জন্য সফ্টওয়্যার নামক সফ্টওয়্যার ব্যবহার করা প্রয়োজন auditd(যদিও এটি auditdইতিমধ্যে গত সপ্তাহে চালানো না হলে গত সপ্তাহে কে ফাইলটি অ্যাক্সেস করেছে তা নির্ধারণে সহায়তা করে না )।
মিক্কো রেন্টালাইনেন

3

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

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