ব্যবহারকারীরা কীভাবে অন্য ব্যবহারকারীদের লিনাক্সে ফাইল স্থানান্তর করতে দেয় allow


10

আমাদের কাছে কয়েক হাজার ব্যবহারকারীর পরিবেশ রয়েছে যার প্রায় 40 টি ক্লাস্টারে অ্যাপ্লিকেশন চলছে 20 টি কম্পিউট নোড থেকে 98,000 কম্পিউট নোড পর্যন্ত। এই সিস্টেমগুলির ব্যবহারকারীরা প্রচলিত ইউনিক্স অনুমতি দ্বারা নিয়ন্ত্রিত প্রচুর ফাইল (কখনও কখনও> 1PB) উত্পন্ন করে (এসিএলগুলি সাধারণত ফাইল সিস্টেমের বিশেষকৃত প্রকৃতির কারণে উপলভ্য বা ব্যবহারিক হয় না)।

বর্তমানে আমাদের কাছে "গিভ" নামক একটি প্রোগ্রাম রয়েছে যা একটি সুইড-রুট প্রোগ্রাম যা গোষ্ঠী অনুমতিগুলি অপর্যাপ্ত হলে ব্যবহারকারীকে অন্য ব্যবহারকারীকে একটি ফাইল "দিতে" দেয় allows সুতরাং, একজন ব্যবহারকারী অন্য ব্যবহারকারীকে একটি ফাইল দেওয়ার জন্য নীচের মতো কিছু টাইপ করবেন:

> give username-to-give-to filename-to-give ...

তারপরে প্রাপ্ত ব্যবহারকারী ফাইলটি পেতে "টেক" (দেওয়া প্রোগ্রামের অংশ) নামক একটি কমান্ড ব্যবহার করতে পারেন:

> take filename-to-receive

ফাইলটির অনুমতিগুলি কার্যকরভাবে গ্রহণকারীর কাছে স্থানান্তরিত হয়।

এই প্রোগ্রামটি প্রায় কয়েক বছর ধরে রয়েছে এবং আমরা সুরক্ষা এবং কার্যকরী দৃষ্টিকোণ থেকে জিনিসগুলি আবার দেখতে চাই।

আমাদের বর্তমান কর্মের পরিকল্পনাটি হ'ল আমাদের দেওয়া "প্রয়োগ" এর বাস্তবায়নের বিট পচাটি সরিয়ে ফেলা এবং প্রযোজনায় পুনরায় প্রচারের আগে এটি ওপেন সোর্স অ্যাপ্লিকেশন হিসাবে প্যাকেজ করা।

কেবলমাত্র traditionalতিহ্যবাহী ইউনিক্স অনুমতি পাওয়া গেলে ব্যবহারকারীদের মধ্যে চূড়ান্ত বড় ফাইল স্থানান্তর করার জন্য কারও কি অন্য পদ্ধতি রয়েছে?


1
আপনি কেবল একটি ভাগ করা ডিরেক্টরি তৈরি করতে পারবেন না এমন কোনও কারণ আছে যেখানে সমস্ত ব্যবহারকারীর অ্যাক্সেস রয়েছে?
জোড়দাছে

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

যথেষ্ট হবে না ক্রোন জব ফাইল নিজেই অনুলিপি করবে? উদাহরণ: ব্যবহারকারী foo ব্যবহারকারী কুকুরছানাটিকে ফাইল বার দিতে চায় want সুতরাং তিনি বিশেষায়িত ডিরেক্টরি তৈরি করেন যা ব্যবহারকারীর নাম গ্রহণের একটি 'নিয়ন্ত্রণ' ফাইলের সাহায্যে ক্রোন জব দ্বারা স্ক্যান করা হয়। ক্রোন জবস এই 'নিয়ন্ত্রণ' ফাইলটি পড়বে, যদি ব্যবহারকারী ঠিক থাকে তবে গন্তব্য ডিরেক্টরিতে স্থান ঠিক আছে, অনুলিপিটি। Stillতিহাসিক সামঞ্জস্যের জন্য আপনি কেবল 'নিয়ন্ত্রণ' ফাইল তৈরি করতে 'দিতে' এর জন্য একটি মোড়ক তৈরি করতে পারেন। স্যুইড-রুটের প্রয়োজন নেই, আপনি সেই ফাইলটি নন-রুট ব্যবহারকারীর অধীনে অনুলিপি করতে পারেন এবং তারপরে মালিকানা পরিবর্তনের জন্য sudo করতে পারেন।
jirib

আপনি যদি কেবল অনুমতি পরিবর্তন করতে চান, chownএটি করা উচিত .. মনে হয় আপনি একবার ফাইলটি অনুলিপি করতে চান, একবার যুক্ত উভয় পক্ষই একমত হয়ে গেলে।
জেবেদিহ 49

@ জিরিসিচতকনিহা আমি একটি নিয়ন্ত্রণ ফাইল এবং ক্রোন জব সম্পর্কিত ধারণা পছন্দ করি। তবে ফাইলগুলি অনুলিপি করা খুব বড়।
জন বুনহার্স্ট

উত্তর:


1

যদি ইমিটর সত্যিই ফাইলটি সরিয়ে দিতে ইচ্ছুক থাকে তবে আপনি এমন একটি এসইউডি বাইনারি ব্যবহার করতে পারেন যা ফাইলটিকে এমন একটি ডিরেক্টরিতে নিয়ে যায় যা সমস্ত দ্বারা লিখিত হয় এবং স্টিকি বিট থাকে (যেমন /tmp) থাকে, তারপরে নতুন মালিকের মালিকানা পরিবর্তন করে। chown(3)ইতিমধ্যে সরানোর যত্ন নেয় set-user-IDএবং set-group-IDআপনার জন্য বিট। এই নতুন ফাইলটি ফাইলটি সরানো সহ ফাইলের সাথে যা খুশি তা করতে পারে।

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

ই-মেলগুলি কৌশলটি করত। আরও ইউনিক্সির সমাধান হ'ল /etc/profileএটি আপনার নতুন বিতরণ করা ফাইলগুলিকে তালিকাবদ্ধ করে। বোনাস যোগ করেন, তাহলে আপনার সাথে এই বৈশিষ্ট্যটি অফার pam_echo( যেমন সঙ্গে file=/tmp/deliveries/%uদেখতে pam_echo(8))। প্যাম-সম্পর্কিত যে কোনও কিছুর মতো, আপনি যাচাই করতে চান যে আপনার সমস্ত বাস্তবায়নগুলি এই জাতীয় মডিউলটি আগে সরবরাহ করে।


0

আপনি একটি ভাগ করা ডিরেক্টরি সহ সিস্টেম ব্যবহার করতে পারেন (সম্ভবত পারমি এক্সিকিউট ছাড়াই)), যেখানে কোনও প্রদত্ত ব্যবহারকারীর জন্য জিনিসগুলি একটি নির্দিষ্ট ফাইলের নাম কাঠামোর সাথে সংরক্ষণ করা হয় ( to-$username_from-$username.tarউদাহরণস্বরূপ)। গাই ফাইল এবং chownsএটি লক্ষ্য ব্যবহারকারীকে দেয়; ফাইল এক্সট্রাক্ট নিতে এবং এটি মুছে ফেলা।

যদি আপনি এটি একটি আসল পদক্ষেপ হিসাবে করতে চান (IE, ফাইলের অবস্থান এবং অনুমতিগুলি পরিবর্তন করুন; দৈত্য ফাইলের আকারের কারণে কোনও অনুলিপি করা হয়নি), আপনি -x পার্সের সাহায্যে একটি ভাগ করে নেওয়া ডিরেক্টরিতে চলে যেতে সক্ষম হতে পারেন (তাই কেউই পারবেন না ফাইলগুলি তালিকাভুক্ত করুন) এবং একই chownপদ্ধতি। mv, chown/ mv


0

যেমন xryl669 বলছে আপনি আসলে ফাইলগুলি ভাগ করতে একটি ডিরেক্টরি ব্যবহার করতে পারেন। এটিকে ঐটির মত দেখতে হবে:

$ ls -ld shared
drwxrws--- 2 root usergroup 4096 somedate shared
$ ls -l shared
drwx-wx--- 2 user1 usergroup 4096 somedate user1
drwx-wx--- 2 user2 usergroup 4096 somedate user2
drwx-wx--- 2 user3 usergroup 4096 somedate user3
drwx-wx--- 2 user4 usergroup 4096 somedate user4

দি কমান্ড হয়ে যায়

#!/bin/sh
#Use a random suffix to prevent guessing
RANDOM=$(dd if=/dev/urandom count=4 2> /dev/null | sha512sum | cut -d' ' -f1)
NEWNAME=/path/to/shared/$2/$1$RANDOM
#Move the file
mv $1 $NEWNAME
#Make it readable
chmod 440 $NEWNAME

টেক কমান্ডটি দেখতে এরকম কিছু দেখাচ্ছে:

$ cd /path/to/shared/user
$ ls
...
$ mv somefile ~

0

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

আরও সুরক্ষা পেতে চান? আপনি পিজিপি ফাইলটি এনক্রিপ্ট / স্বাক্ষর করতে পারেন (রিসিভারের সর্বজনীন কী ব্যবহার করে)।

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


0

এটি সম্ভবত আপনার কোনও ব্যবহারের জন্য নয় তবে রেফারেন্স সিপি --reflink উত্স টার্গেট অনুলিপি ব্যবহার করে ফাইলের পাতলা অনুলিপি করে।

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

আমি যতদূর জানি এটি একটি বৈশিষ্ট্য যা বর্তমানে কেবলমাত্র ওসিএফএস 2 এবং বিটিআরএফ-তে উপলব্ধ। আমি অনুমান করি যে এটি আপনার সমস্যার সমাধান করে তবে এটির সহজলভ্যতাটি দেখা না গেলে এটি ব্যাপকভাবে কার্যকর হয় না।

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