ডিরেক্টরি অধিকারগুলি সঠিক হলেও এমভি ব্যবহার করার সময় কেন আমি অনুমতি অস্বীকার করব?


14

ডিরেক্টরি মালিক আমার ব্যবহারকারীর উপর সেট করা থাকলেও এবং ব্যবহারকারীদের অনুমতিগুলি to এ সেট করা থাকলেও এর Musicমাধ্যমে ফোল্ডারটি সরানোর চেষ্টা করার সময় আমি অনুমতি প্রত্যাখ্যান করি mvWhat's

(আমি জানি যে আমি সুডো ব্যবহার করতে পারলাম তবে আমি কী ভুল তা জানতে চাই Some এখানে কিছু গন্ধযুক্ত গন্ধযুক্ত)। PS: আমি ম্যাক ওএস এক্স এল ক্যাপিটনে আছি।

টার্মিনাল স্ক্রিনশট


1
যে কেউ একই ত্রুটির কারণে হোঁচট খাচ্ছে, এমনটি হতে পারে কারণ আপনি উন্মুক্ত একটি ফাইল এমভি করার চেষ্টা করছেন। যদিও ওপি কেস নয়, কেবল তাই বলছে এটি সাহায্য করতে পারে।
অ্যাডারচক্স

উত্তর:


21

মনে রাখবেন যে, ফোল্ডারে aথাকা অবস্থায়, যখন সরানো bহচ্ছে cতখন ফোল্ডারের অনুমতি aআপনি কী করতে পারেন তা নির্ধারণ করে।

এই ক্ষেত্রে, অনুমতিগুলি .সবচেয়ে গুরুত্বপূর্ণ হবে।

লক্ষ্য করুন যে অনুমতিগুলি সহজ থেকে আরও জটিল rwx। তোমার musicফোল্ডারের একটি হয়েছে @শেষে .ফোল্ডারের টি +শেষে।

  • xattr -h@ প্রতীকটির জটিল অনুমতি নির্ধারণ করতে ব্যবহার করুন ।
  • getfacl+ চিহ্নের জন্য এসিএল নির্ধারণ করতে ব্যবহার করুন ।

আপনি যেমন ডাকছেন তেমন কোনও সংস্থান আছে যা "জটিল অনুমতিগুলি" কভার করে?
ব্যবহারকারী 1717828

man xattrএকটি ভাল সূচনা পয়েন্ট হতে পারে।
কোনারাক

1
না, কোনও ম্যানুয়াল প্রবেশ নেই। এর আশেপাশে আমি আর একটি নাম খুঁজতে গুগলকে সক্ষম হয়েছি: বর্ধিত বৈশিষ্ট্য , অন্য কেউ যদি আরও জানতে চান তবে।
ব্যবহারকারী 1717828

4
বা ব্যবহার ls -la@e। সম্ভবত এখানে, একটি deny deleteএসিএল ছিল যা নামকরণও রোধ করে।
স্টাফেন চ্যাজেলাস

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

19

আমি লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেম ব্যবহার করছিলাম। আমার ডিরেক্টরিটি অন্য কোনও ব্যাশের উদাহরণে খোলা ছিল। এটি বন্ধ করে আমাকে ডিরেক্টরিটি সরানো যাক।


4
ডাব্লুএসএলে রিমোটযুক্ত ভিএস কোডে আমাকে সম্পাদক বন্ধ করে সেই ভিএস কোড প্রকল্পের বাইরে ডাব্লুএসএলে একটি টার্মিনাল খুলতে হয়েছিল।
বিয়ন্সের

9

দেখে মনে হচ্ছে যেন সেই ডিরেক্টরিতে গভীরতম কোনও ফাইল রয়েছে যেখানে সঠিক অনুমতি নেই permission

সুতরাং, আমি যা করেছি তা হ'ল:

sudo chown -R valmar ./Music
sudo chmod -R 755 ./Music

এখন এটা কাজ করছে.


17
সমস্যা যাই হোক না কেন, মিউজিক ফাইলগুলিতে এক্সিকিউটিভের অনুমতি দেওয়া সমাধান হওয়া উচিত নয়।
স্টাফেন চেজেলাস

3
এবং এটা সম্ভবনা একটি বস্তু যে মধ্যে একটি যে ডিরেক্টরি ডিরেক্টরির নামান্তর করতে আপনার ক্ষমতা হস্তক্ষেপ করতে পারে।
স্কট 18

আমি জানি এটি অদ্ভুত তবে এটি কৌশলটি করেছে। ডিরেক্টরিতে chmod এবং chown ব্যবহারের কোনও প্রভাব ছিল না।
টিমো

এটা কি chmod 755মিউজিক ফোল্ডারে বিশেষ '@' অনুমতিগুলি মুছে ফেলেছে?
হুরুসকোল

@ হারুসকোল, বা শ্যাওন ওপি'র লক্ষণগুলি ACL গুলি মুছতে অস্বীকার করে এমন ডিরেক্টরিগুলির সাথে মেলে তবে কমপক্ষে Yosemite এ, একটি দাগ বা chmod 755 করলে সেই ACL মুছবে না। আপনি প্রয়োজন চাই chmod -a 'everyone deny delete' Musicযে জন্য। এটি এল ক্যাপিটনে ভিন্ন হতে পারে।
স্টাফেন চ্যাজেলাস

4

এখানে সমস্যাটি সম্ভবত সঙ্গীত ফোল্ডারের অ্যাক্সেস কন্ট্রোল লিস্ট (এসিএল) এর সাথে করতে হবে। এসিএল হ'ল নিয়মিত পসিক্সগুলির জন্য পৃথক অনুমতি ব্যবস্থা যা সাধারণত তালিকাবদ্ধ থাকে ls -l। হোম ফোল্ডারে এবং অন্য কোথাও কয়েকটি ডিরেক্টরিতে এসিএল রয়েছে।

হোম ডিরেক্টরিতে এসিএলগুলি দেখতে, ব্যবহার করুন:

/bin/ls -le ~

আপনি সম্ভবত 0: group:everyone deny deleteসংগীত ডিরেক্টরিটির মতো একটি নিয়ম দেখতে পাবেন । আপনি যেমন উল্লেখ করেছেন আপনি সমস্যাটি ওভাররাইড করতে পারেন sudo। আপনি যদি এটি করতে না চান (বা না করতে পারেন) তবে আপনার কাছে অন্য বিকল্প রয়েছে, আপনি যদি ফাইলটির মালিক হন তবে। আপনি তার সূচীর উপর ভিত্তি করে সংগীত ডিরেক্টরিটির এসিএল থেকে আপত্তিজনক এন্ট্রিটি ছাঁটাই করতে পারেন (0 উদাহরণটিতে আমি উপরে দিয়েছি):

/bin/chmod -a# 0 Music

অথবা আপনি এসিএলে সমস্ত এন্ট্রিগুলি সরিয়ে ফেলতে পারেন:

/bin/chmod -N Music

এখন আপনি ডিরেক্টরিটি চারপাশে স্থানান্তর করতে পারেন (নিয়মিত POSIX অনুমতি সাপেক্ষে)। সরানোর পরে আপনি যদি এসিএলকে পিছনে রাখতে চান তবে আপনি ব্যবহার করতে পারেন:

/bin/chmod +a "group:everyone deny delete" Music_tmp

এবং /bin/ls -leএসিএল যেমনটি চান তা নিশ্চিত করতে আবার ব্যবহার করুন । man chmodআরও তথ্যের জন্য এসিএল উদাহরণগুলি দেখুন। বিশেষত, এই ভূমিকাটি সহায়ক:

প্রতিটি ফাইলের একটি করে এসিএল থাকে, যাতে প্রবেশের আদেশের তালিকা থাকে। প্রতিটি এন্ট্রি কোনও ব্যবহারকারী বা গোষ্ঠীকে বোঝায় এবং অনুমতিগুলির একটি সেট মঞ্জুরি দেয় বা অস্বীকার করে। কোনও ক্ষেত্রে ব্যবহারকারী এবং একটি গ্রুপ একই নামের সাথে উপস্থিত থাকলে, নাম / ধরণের নির্দিষ্টকরণের জন্য ব্যবহারকারী / গোষ্ঠীর নামটিকে "ব্যবহারকারী:" বা "গোষ্ঠী:" দিয়ে উপস্থাপন করা যেতে পারে।

এসিএল অর্ডার

আমি মনে করি না যে ম্যান পৃষ্ঠাটি অর্ডার দেওয়ার চারপাশের নিয়মগুলি ব্যাখ্যা করে তবে এই পৃষ্ঠাটি এসিএলগুলির জন্য আদেশের বিধিগুলি পরিষ্কারভাবে ব্যাখ্যা করে। বিশেষত, একটি সুস্পষ্ট denyনিয়মের আগে একটি সুস্পষ্ট allowবিধি প্রয়োগ করা হবে । সুতরাং, যতক্ষণ না group:everyone deny deleteএন্ট্রি স্থির থাকে ততক্ষণ কোনও allowনিয়ম দিয়ে আপনার ব্যবহারকারীর মুছতে অনুমতি দেওয়া সম্ভব নয় । এটি কারণ এই everyoneগোষ্ঠীতে অনুমতি অস্বীকার করা হয়েছে , এতে আপনি অন্তর্ভুক্ত আছেন এবং সেই নিয়মটি প্রথমে প্রয়োগ করা হবে।


2
আমি কেন জানি এটিকে নিম্নমানের করা হয়েছিল। everyone deny deleteMacOS 'ডিফল্ট হোম ডিরেক্টরি উপর ACL এর এন্ট্রি প্রকৃত কারণ ডিরেক্টরি তন্ন তন্ন সরানো কিংবা মুছে ফেলা যাবে। (এছাড়াও, লক্ষ্য করুন যে ওএস এগুলি যে কোনও সময় পুনরায় তৈরি করতে পারে))
দিতি

1
এই উত্তর রকড !!! পবিত্র জঞ্জাল, এই নতুন এসিএল হ'ল একটি বিশাল পিটা।
ডিন হিলার

3

আমি মুছে ফেলার চেষ্টা করছি এমন একটি ডিরেক্টরিতে প্রোগ্রামের সেট চলছিল তখন আমার এই সমস্যা হয়েছিল। ডিরেক্টরিটি স্থানান্তর করতে, আমাকে প্রথমে সেই ডিরেক্টরি থেকে চলমান সমস্ত প্রোগ্রাম মেরে ফেলতে হয়েছিল।

নিম্নলিখিত কমান্ডগুলিতে আপনি কীভাবে আপনার প্রোগ্রামের নাম নির্বাচন করেন সে সম্পর্কে খুব সতর্কতা অবলম্বন করুন। রেফারেন্সের জন্য আমি নিম্নলিখিত কমান্ডগুলি ব্যবহার করেছি:

ps aux | grep -i [NAME_OF_ANNOYING_PROGRAM] | grep -v grep
# make sure that you are only about to kill the programs you want to kill

ps aux | grep -i [NAME_OF_ANNOYING_PROGRAM] | grep -v grep | awk '{print $2}' | sudo xargs kill -9
sudo mv /usr/local/[DIR_FOR_ANNOYING_PROGRAM] /usr/local/[DIR_FOR_ANNOYING_PROGRAM]2

সাধারণ পদ্ধতিটি হ'ল:

  1. প্রশ্নযুক্ত ডিরেক্টরি থেকে চলমান সমস্ত প্রোগ্রামকে হত্যা করুন
  2. ডিরেক্টরি নামকরণ করার চেষ্টা
  3. যদি এটি ব্যর্থ হয়, ডিরেক্টরি থেকে সমস্ত প্রোগ্রামকে জোর করে হত্যা করুন ( kill -9অনেক সাবধানতার সাথে )
  4. ডিরেক্টরি নামকরণ করার চেষ্টা
  5. যদি এটি ব্যর্থ হয়, প্রোগ্রামটি আবার চলছে কিনা তা দেখুন, এটি কোনও ডিমন প্রোগ্রাম দ্বারা আবার কোনও ডিরেক্টরি থেকে চালিত হয়েছে তা আবার চালু করা হয়েছে
  6. বিরক্তিকর প্রোগ্রামটি পুনরায় চালু করা ডেমন প্রোগ্রামটিকে জোর করে হত্যা করুন
  7. বিরক্তিকর প্রোগ্রাম হত্যা
  8. ডিরেক্টরিটির নাম পরিবর্তন করুন
  9. মুনাফা

1
আমি মনে করি না যে ওপিতে সম্ভবত programs / সঙ্গীত ডিরেক্টরি থেকে কোনও প্রোগ্রাম চলছে। যাইহোক তিনি বলেছিলেন যে তিনি সুডো ব্যবহার করতে চান না, যা এই উত্তরটি দেয়।
স্পিনআপ

আমি যা বলছি তা হ'ল আমারও সেই অবস্থা ছিল। কারও পক্ষে সহায়ক হতে পারে যদিও এটি ওপিতে সহায়ক ছিল না।
ওয়াটসআইনাবক্স

এটি সম্ভবত কারও পক্ষে সহায়ক, অবশ্যই - সে কারণেই আমি উড়ান করি নি। তবে আমি মনে করি স্ট্যাক এক্সচেঞ্জের অভিপ্রায়টি হ'ল পোস্ট উত্তরগুলি যে প্রশ্নটি হয়েছিল সেটার উত্তর দেয়।
স্পিনআপ 18

1
আর একটি সম্ভাব্য সমস্যা, যদি আপনি এই উত্তরটির জন্য একজন নবজাতকের সাধারণ ব্যবহার হতে বোঝেন: আপনি প্রথমে আপনার অনুসন্ধানের পদটি খুব সাবধানে বেছে নেওয়ার grepএবং এটি পরীক্ষা করার বিষয়ে কোনও সতর্কতা প্রদান করবেন না । আপনি grepkill
যেটিকে প্রথমে রাখছেন

1
ভাল, @ ওয়াটস, আমি মনে করি এটি একটি বড় উন্নতি
1'19 স্পিনআপ

0

এটি তখনও ঘটতে পারে যখন ভিতরে থাকা ফাইলগুলির মধ্যে একটি লিখন-সুরক্ষিত থাকে। আমার আজ প্রান্তের কেসটি ছিল যখন access.logঅ্যাপাচি-তে লেখা-সুরক্ষিত ছিল, যা ইতিমধ্যে বন্ধ ছিল। আমি সবেমাত্র এই ফাইলটি সরিয়েছি, তাই আরও আমি পিতামাতার ডিরেক্টরিটি স্থানান্তর করতে সক্ষম হয়েছি।

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