একক মেশিনে এক ব্যবহারকারী থেকে অন্য ব্যবহারকারীতে ফাইল অনুলিপি করা


20

টার্মিনালের মাধ্যমে কোনও মেশিনে কোনও ব্যবহারকারীর থেকে অন্য ব্যবহারকারীর কাছে কোনও ফাইল বা ডিরেক্টরি কীভাবে অনুলিপি করবেন ?

ধরুন USER1 এর হোম ডিরেক্টরিতে একটি ফাইল test.txt রয়েছে। আমার মেশিনে USER2- র হোম ডিরেক্টরিতে সেই ফাইলটি অনুলিপি করা দরকার। টার্মিনালের মাধ্যমে কীভাবে করব?

উত্তর:


26

আপনার sudoসুবিধাগুলি আছে তা ধরে নিলে নিম্নলিখিত আদেশটি করবে।

sudo cp /home/USER1/FNAME /home/USER2/FNAME && sudo chown USER2:USER2 /home/USER2/FNAME

ফাইলটি USER1 থেকে USER2 এ অনুলিপি করবে এবং তারপরে / হোম / USER2 এ থাকা অনুলিপিটির মালিককে USER2 এ পরিবর্তন করবে

যদি আপনার কোনও sudoঅধিকার না থাকে তবে দুটি ব্যবহারকারীকে আপনার USER1 ডিরেক্টরিতে অনুমতি পড়তে হবে এবং USER2 ডিরেক্টরিতে লেখার অ্যাক্সেস রয়েছে তা নিশ্চিত করতে হবে। আপনার যদি এই অ্যাক্সেস থাকে তবে আপনি কমান্ডটি প্রবেশ করতে পারেন:

cp /home/USER1/FNAME /home/USER2/FNAME

এটি প্রশ্নযুক্ত ফাইলটি অনুলিপি করবে, তবে তাদের যথাযথ অনুমতি না পাওয়া পর্যন্ত USER2 ফাইলটি কারচুপি করতে সক্ষম হতে পারে।


এটি কেবল তখনই কাজ করবে যখন USER1 এর সুডো অ্যাক্সেস রয়েছে, যা কোনও মাল্টিউজার সিস্টেমে নাও হতে পারে।
বোস্টনহিকার

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

@ বোস্টনহিকার আমি এই ধারণাটি নিয়েছিলাম যে অনুলিপিটি করা ব্যক্তিটি USER1 বা USER2 নয়, এবং তার ব্যক্তিগত সুরক্ষা রয়েছে। এটি সম্ভবত আমার পক্ষে একটি খারাপ ধারণা um
চার্লস সবুজ

@ চার্লস গ্রিন - আপনার অনুমানগুলি বর্ণনা করতে দয়া করে আপনার উত্তরটি সম্পাদনা করুন, অন্যথায় এটি অসম্পূর্ণ / বিভ্রান্তিকর।
বোস্টনহিকার

@ বোস্টনহিকার সম্পন্ন আমাকে সৎ রাখার জন্য ধন্যবাদ
চার্লস সবুজ

6

আপনার যদি সুডোর সুবিধাগুলি না থাকে তবে আপনি দুটি ব্যবহারকারীর সাথে লগইন করতে পারেন তবে আপনি লোকালহোস্টের সাথে স্কিপ ব্যবহার করতে পারেন:

scp file1 user2@localhost:/home/user2/

আপনি কী ভাবছেন যে এটি কোনও রিমোট হোস্ট সম্পর্কে বা কোনও এসএসএইচ / এসএফটিপি সার্ভারটি প্রশ্নবিদ্ধ মেশিনে চলছে?
ডেভিড ফোস্টার

1
ধরে
নিই যে


1

ধরে নিন আপনি হয় ssh ইনস্টল করেন নি, বা কী / গোপনীয়তা ভাগ করতে চান না।

ধরুন ইউজার 1 গ্রুপ 1 এ, এবং ইউজার 2 গ্রুপ 2 এ এবং ইউজার 1! = ইউজার 2 এবং গ্রুপ 1! = গ্রুপ 2!

একটি ভাগ করা গোষ্ঠী তৈরি করুন

addgrp group3

ইউজার 1 এবং ইউজার 2 উভয়ই গ্রেইপপুইজে যোগ করুন।

পারস্পরিক অ্যাক্সেসযোগ্য স্থানে একটি ডিরেক্টরি তৈরি করুন, যেখানে একজন ব্যবহারকারীর মালিকানা রয়েছে তবে গ্রোপপুইপস এর গোষ্ঠী মালিকানা রয়েছে।

#as user1,
mkdir $place/shared && chown user1.group3s $place/shared && chmod 770 $place/shared;
#as user1 or user2,
cp $file $place/shared && chgrp $place/shared/$file && chmod 660 $place/shared/$file

তবে, ধরুন আপনি নতুন, ভাগ করা গোষ্ঠী তৈরি করতে এবং উভয় ব্যবহারকারীকেই সেই গোষ্ঠীতে রাখতে পারবেন না?

ডিরেক্টরি তৈরি করুন এবং এটি 770 অনুমতি দিন,

mkdir $place/shared && chown user1.group1 $place/shared && chmod 770 $place/shared;

তারপরে, রুট / প্রশাসক হিসাবে, গোষ্ঠীটির মালিকানাটিকে অন্য ব্যবহারকারীর গোষ্ঠীতে পরিবর্তন করুন,

sudo bash
chgrp group2 $place/shared && chmod g+s $place/shared

Chmod g + s কমান্ডটি সেটগিড বিট সেট করে যাতে ডিরেক্টরিতে রাখা ফাইলগুলি গ্রুপের মালিকানাটিকে গ্রুপ 2 এ সেট করে।


0

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

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

[bob@computer ~]$ touch /tmp/test.txt
[bob@computer ~]$ chmod 622 /tmp/test.txt

এটি এমন একটি ফাইল তৈরি করে যা বিশ্ব-লিখনযোগ্য, তবে পঠনযোগ্য নয়।

তারপরে USER1(আসুন তার এলিসকে কল করুন) রান করুন (যদি আপনি ভৌতিক হয়ে থাকেন তবে ফাইলটি ববের মালিকানাধীন কিনা তা নিশ্চিত করার জন্য অ্যালিস প্রথমে অনুমতিগুলি পরীক্ষা করতে পারে):

[alice@computer ~]$ dd if="$HOME/test.txt" of=/tmp/test.txt

এটি এর সামগ্রীতে ওভাররাইট করে /tmp/test.txt। আপনি যদি ফাইলটির অখণ্ডতা পরীক্ষা করতে চান তবে অ্যালিসেরও ফাইলের একটি হ্যাশ তৈরি করা উচিত। এই ক্ষেত্রে:

[alice@computer ~]$ openssl sha1 < "$HOME/test.txt" > /tmp/test.txt.sha1

আপনি পরিবর্তে ফাইলটি, বা এর সততা গ্যারান্টি অন্য কোনও পদ্ধতিতে ডিজিটালি স্বাক্ষর করতে পারেন।

এবং অবশেষে বব ফাইলটি সরান এবং এর মালিকানা নেন:

[bob@computer ~]$ mv /tmp/test.txt "$HOME" 
[bob@computer ~]$ chmod 600 "$HOME/test.txt"

এবং বব যদি পছন্দ করেন তবে সততা পরীক্ষা করতে পারেন। যদি তা হয় তবে কেবল অ্যালিসের কাছেই এটি লিখতে পারে তা নিশ্চিত করার জন্য তার চেক করা উচিত /tmp/test.txt

[bob@computer ~]$ diff /tmp/test/txt.sha1 <(openssl sha1 < "$HOME/test.txt")

যদি ফাইলটি সঠিকভাবে অনুলিপি করা হয় তবে এটি কোনও আউটপুট প্রদর্শন করবে না।


-1

অন্য কোনও ব্যবহারকারীর অনুলিপি করার আগে আপনাকে su ব্যবহারকারীর হিসাবে লগইন করতে হবে এবং তারপরে আপনি cp কমান্ডটি ব্যবহার করতে পারেন

sudo cp /home/shyam/Desktop/sparkhadoop_2.11-1.0.jar /home/hadoop/Desktop

এটি মালিকানা স্থানান্তর করবে না USER2তবে এটি ছেড়ে দেবে root। -1
ডেভিড ফোস্টার

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