যে ডিরেক্টরিটি কেবলমাত্র রুট অ্যাক্সেস করতে পারে এমন ডিরেক্টরিতে রুটটি কীভাবে অনুলিপি করতে পারে?


11

আমার একটি এনএফএস মাউন্টে একটি ডিরেক্টরি আছে যা সার্ভারে রয়েছে /home/myname/.rubies

রুট এই ডিরেক্টরিটি অ্যাক্সেস করতে পারে না:

[mitchell.usher@server ~]$ stat /home/mitchell.usher/.rubies
  File: `/home/mitchell.usher/.rubies'
  Size: 4096            Blocks: 8          IO Block: 32768  directory
Device: 15h/21d Inode: 245910      Links: 3
Access: (0755/drwxr-xr-x)  Uid: (  970/mitchell.usher)   Gid: (  100/   users)
Access: 2016-08-22 15:06:15.000000000 +0000
Modify: 2016-08-22 14:55:00.000000000 +0000
Change: 2016-08-22 14:55:00.000000000 +0000

[mitchell.usher@server ~]$ sudo !!
sudo stat /home/mitchell.usher/.rubies
stat: cannot stat `/home/mitchell.usher/.rubies': Permission denied

আমি সেই ডিরেক্টরিটির মধ্যে থেকে এমন কিছু অনুলিপি করার চেষ্টা করছি /optযাতে কেবল মূলের অ্যাক্সেস রয়েছে:

[mitchell.usher@server ~]$ cp .rubies/ruby-2.1.3/ -r /opt
cp: cannot create directory `/opt/ruby-2.1.3': Permission denied

[mitchell.usher@server ~]$ sudo !!
sudo cp .rubies/ruby-2.1.3/ -r /opt
cp: cannot stat `.rubies/ruby-2.1.3/': Permission denied

অবশ্যই আমি নিম্নলিখিতগুলি করতে পারি (এবং আমি আপাতত যা করেছি):

[mitchell.usher@server ~]$ cp -r .rubies/ruby-2.1.3/ /tmp/
[mitchell.usher@server ~]$ sudo cp -r /tmp/ruby-2.1.3/ /opt/

এটি করার কোনও উপায় আছে যা এটিকে কোনও মধ্যস্থতাকারী পদক্ষেপ হিসাবে অনুলিপি করা বা অনুমতি পরিবর্তন করার সাথে জড়িত না?


cp -Rp /home/mitchell.usher/.rubies /tmp/templocation; sudo mv /tmp/templocation/ruby-2.1.3 /optএটি কি কাজ করবে না? যদি না হয় তবে কেন?
মেলবার্সন

@ মেলবার্স্লান এটিই আমি করেছি, যেমনটি প্রশ্নের মধ্যে উল্লেখ করা হয়েছে। তবে আসুন আমরা এটি 50 গিগাবাইট ফাইল যা ফাইল সিস্টেমের অন্য কোথাও ফিট করে না, তবে আমি সক্ষম হতে পারব নাcp <file> /tmp/tmpfile
মিচ

উত্তর:


29

আপনি tarবাফার প্রক্রিয়া হিসাবে ব্যবহার করতে পারেন

cd .rubies
tar cf - ruby-2.1.3 | ( cd /opt && sudo tar xvfp - )

প্রথম tarহিসাবে আপনি চালায় এবং তাই আপনার হোম ডিরেক্টরি পড়তে পারেন; দ্বিতীয় tarচালানো হয় sudoএবং তাই লিখতে পারেন /opt


1
স্মৃতিতে এটি কেমন? আমার কাছে যদি একটি 10 ​​জিবি ফাইল থাকে, এটি কি পাইপ এবং আন-টার্সের আগে 10 গিগাবাইট মেমরি পূর্ণ করতে চলেছে, বা এটি টর্স হওয়ার সাথে সাথে এটি অন-টার হবে?
মিচ

5
তারা সমান্তরালে চালায়; একটি সাধারণ পাইপে একটি 64 কেবিট বাফার থাকে। পাইপের আকারের বিশদগুলির জন্য :-) unix.stackexchange.com/questions/11946/… সম্পর্কে চিন্তার কিছু নেই ।
স্টিফেন হ্যারিস


cpioঅনেক একইভাবে ব্যবহার করা যেতে পারে।
টবি স্পিড

আপনার যদি জিএনইউ টার থাকে তবে -Cডিরেক্টরিটি পরিবর্তনের জন্য যুক্তিটি ব্যবহার করে আপনি সাবশেলটি সংরক্ষণ করতে পারেন tar cf - ruby-2.1.3 | sudo tar -C /opt xpf -। আপনি এটি নিশ্চিত করতে চান যে sudoআপনার পাসওয়ার্ড জিজ্ঞাসা করবে না তা নিশ্চিত করতে (উদাহরণস্বরূপ একটি sudoersএন্ট্রি বা ক্যাশেড শংসাপত্রগুলির মাধ্যমে)।
টবি স্পিড

6

আপনি স্থানীয় ডিরেক্টরি থেকে কপি rsyncবা ব্যবহার করতে পারেন ।scpuser@localhost

উদাহরণস্বরূপ rsync:

# rsync "$real_user@localhost:$PWD/.rubies/ruby-2.1.3" /opt

আপনি বিকল্পভাবে পারে

$ rsync .rubies/ruby-2.1.3 "root@localhost:/opt"

যদি আপনি সরাসরি রুট অ্যাক্সেস লোকালহোস্টকে ছেড়ে দেন (প্রস্তাবিত নয়; আমরা সাধারণত রুট অ্যাক্সেসের মাধ্যমে যেতে পছন্দ করি sudo)।


-4

আপনি FAT (বা যাই হোক না কেন) এ দ্বিতীয় এন্ট্রি করতে পারেন।
আমি আমার HOSTSফাইলের জন্য এটি করি । আমার একটি লিখনযোগ্য ডিরেক্টরিতে একটি লিঙ্ক রয়েছে যা ফাইলটি নির্দেশ করে এবং এর বিভিন্ন অনুমতি রয়েছে, তাই আমার কাছে /Hosts/HOSTSসহজেই পরিবর্তন করতে পারি এবং পরিবর্তনগুলি উভয় (অর্থাত "" এক ") ফাইল (গুলি) এ দেওয়া হয়। এটি 1 টি ফাইলের জন্য 2 টি এন্ট্রি। দুঃখিত, আদেশটি আমি মনে করি না।

আপনার জন্য, আপনি একটি লিঙ্ক তৈরি করুন /opt সমস্ত ফাইলের জন্য করেন .rubiesএবং আপনি যখন কোনও কিছু পরিবর্তন করেন /opt, এটি ফাইলটি ঠিক একই ফাইল হিসাবে থাকে .rubies


4
এটি প্রশ্নের উত্তর না দেওয়ার পাশাপাশি এটি মিথ্যা এবং বিভ্রান্তিকর।
ওয়াইল্ডকার্ড

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

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