কীভাবে একজন ব্যবহারকারী অন্য ব্যবহারকারীর 755 ফাইল মুছতে পারেন?


35

আমার কাছে একটি ব্যাকআপ আপলোড স্ক্রিপ্ট রয়েছে যা ব্যবহারকারীকে ব্যবহার করে অন্য সার্ভারে স্ক্র্যাপের ফাইলগুলি upload। টার্গেট সার্ভারে থাকা অন্য স্ক্রিপ্টটি এগুলি অন্য কোনও ব্যবহারকারীকে ছুঁড়ে দেয় এবং ফাইল মোডে সেট করে 755

যদি আমি তখন uploadব্যবহারকারীর ব্যবহার করে টার্গেট সার্ভারে এসএসএইচ করি তবে আমি ডুবে থাকা ফাইলগুলি মুছতে সক্ষম হয়েছি। এগুলি কি কেবল পড়া যায়?

টার্গেট সার্ভারে কোনও ফাইল দেখতে দেখতে এখানে রয়েছে এবং ব্যবহারকারী uploadএটি মুছতে সক্ষম।

-rwxr-xr-x 1 maciekish maciekish 650M Nov  1 01:07 2014-11-01-data.tar.bz2

ব্যবহারকারীর uploadসবেমাত্র ব্যবহার করে যুক্ত করা হয়েছিল useraddএবং এটি maciekishদলের কোনও অংশ নয় ।

uploadSsh এর মাধ্যমে ফাইলটি মুছে ফেলার চেষ্টা করার সময় আমি প্রশ্নটি পেয়েছি যে আমি "রক্ষিত নিয়মিত ফাইল লিখি" মুছে ফেলতে চাই কিনা এবং আমি Yএটি বলতে এবং মুছতে সক্ষম হয়েছি ।


উত্তর:


64

ফাইল করা হয় শুধুমাত্র পাঠযোগ্য; তবে কোনও ফাইল মুছে ফেলা এটি পরিবর্তন করে না তবে কেবলমাত্র মূল ডিরেক্টরি (এটি মূলত ডিরেক্টরিটিকে ডিরেক্টরি তালিকা থেকে সরিয়ে দেয়) - এবং মনে হয় ডিরেক্টরিতে আপনার সম্পূর্ণ লেখার অনুমতি রয়েছে।

আপনি stickyবিট - ওরফে "সীমাবদ্ধ মুছে ফেলা" পতাকাটি সেট করতে পারেন — যা মালিক ব্যতীত অন্য কাউকে সেই ডিরেক্টরিতে ফাইলের নাম পরিবর্তন বা মুছতে বাধা দেবে (এর মতো /tmp)। এটি করার chmod o+t *directory*জন্য ডিরেক্টরিটির মালিক হিসাবে চালান ।


12

একটি সাধারণ ইউনিক্স ফাইল সিস্টেমে যে কোনও ফাইলকে নির্ধারিত সংখ্যক ডিরেক্টরি এন্ট্রি দ্বারা সনাক্ত করা যায়, যার প্রত্যেকটিতে একটি "হার্ড লিঙ্ক" রয়েছে।

একটি বাস্তবায়ন দৃষ্টিকোণ থেকে একটি ফাইলের জন্য সর্বশেষ ডিরেক্টরি এন্ট্রি (হার্ড লিঙ্ক) মুছে ফেলার এবং অনেকের মধ্যে কেবল একটি রেফারেন্স মুছে ফেলার মধ্যে পার্থক্য রয়েছে। যাইহোক, শব্দার্থ দৃষ্টিকোণ থেকে কোনও পার্থক্য নেই।

যদি কোনও ফাইলে একাধিক হার্ড লিঙ্ক উপস্থিত থাকে তবে তাদের যেকোনটি ব্যবহার করে ফাইলে লেখালেখি করে ফাইলটি তাদের সকলের দ্বারা পরিবর্তিত হয়। rmকোনও লিঙ্কে ব্যবহার করা তবে কেবল সেই লিঙ্কের মাধ্যমে ফাইল অ্যাক্সেসযোগ্য নয় causes ফাইলটির অন্যান্য লিঙ্কগুলি একই ফাইলটি দেখতে অবিরত থাকে।


3
সাধারণত হার্ড লিঙ্ক হিসাবে পরিচিত।
বব

1
@ Bob: আমি জানি যে "হার্ড লিঙ্ক" শব্দটি ইতিমধ্যে বিদ্যমান ফাইলটিতে তৈরি রেফারেন্সগুলি বর্ণনা করতে ব্যবহৃত হয়; যে ক্ষেত্রে ফাইলের একাধিক রেফারেন্স কখনও পাওয়া যায় নি, সেই লোন রেফারেন্সটিকে এখনও "হার্ড লিঙ্ক" বলা হয়?
সুপারক্যাট

3
লিঙ্কগুলির মধ্যে কোনও পার্থক্য নেই। এ ফাইলটি তৈরি করুন, হার্ড লিঙ্ক বি তৈরি করুন, ফাইল এটিকে মুছুন বি এখন ফাইল বা হার্ড লিঙ্ক? এটি কীভাবে কাজ করে তা বোঝার জন্য, এটিকে এন হার্ড লিঙ্ক হিসাবে দেখানো ভাল 1 ফাইল এবং (এন -1) হার্ড লিঙ্ক হিসাবে নয়। একটি ফাইল খোলার সময় উপস্থিত লিঙ্কগুলিও রয়েছে।
gnasher729

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

2
@ সুপের্যাট এটি অবিশ্বাস্যরকম সাধারণ নয়, তবে এটি সঠিক। st_nlink("হার্ড লিঙ্কের সংখ্যা") ক্ষেত্রটি বিবেচনা করুন struct stat। সহজভাবে বলতে গেলে ডিরেক্টরিগুলি ফাইলগুলিতে হার্ড লিঙ্ক ধারণ করে।
hobbs
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.