অজান্তেই আমার ডিস্কের অনুমতি কাঠামোটি ছুঁড়েছে - কেন?


23

আমি চেষ্টা করছিলাম chownমধ্যে /optএবং কোনো কারণে chownপিতা বা মাতা এবং chowned সবকিছু আপ jumped।

কেন কেউ / কীভাবে এটি হতে পারে এবং ভবিষ্যতে কীভাবে এড়াতে হবে তার পরামর্শ দিতে পারে? এটি একটি সামান্য বিষয় যে কোনও প্রদত্ত ডিয়ারে একটি কমান্ড চালানো কার্যকরভাবে লাফিয়ে ও মূল ডায়ারে চালাতে পারে।

ubuntu: /opt > sudo chown -R root:www-data .*
chown: changing ownership of '../var/lib/lxcfs/proc/cpuinfo': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/proc/meminfo': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/proc/stat': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/proc/uptime': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/proc/diskstats': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/proc/swaps': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/proc': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/devices': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/blkio': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/hugetlb': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/rdma': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/pids': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/freezer': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/cpuset': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/memory': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/perf_event': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/cpu,cpuacct': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/net_cls,net_prio': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/name=systemd': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup/unified': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs/cgroup': Operation not permitted
chown: changing ownership of '../var/lib/lxcfs': No such file or directory
^C
:ubuntu: /opt >

2
আমি এটি এইভাবে করতাম: sudo chown -R root:wwwdata /opt- হেল্প সংলাপ অনুসারে ... সম্ভবত সেই পাইপটি ব্যবহারের ফলে কোনও সমস্যা হয়েছে ???
জোশুয়া বেসনিয়াত

13
.*মেলে ..(প্যারেন্ট ডিরেক্টরি, যা /) - দেখুন "chmod 777। * -R" chmod পিতামহ ডিরেক্টরি (..)?
স্টিল্ড্রাইভার

7
@ স্টিল্ড্রাইভার যা মনে হচ্ছে এটি উত্তর হিসাবে পোস্ট করা উচিত;)
জোশুয়া বেসিনিট

2
সুতরাং লুকানো ফাইলগুলিতে অনুমতি সেট করার সঠিক উপায়টি কী, আমি যা করার চেষ্টা করছিলাম?
ডিউক ডুগল

4
@ জোশুয়াবেসনেট আমি আর্গুমেন্টে পুনরাবৃত্ত কমান্ডগুলি চালনা / এড়িয়ে চলার চেষ্টা করি কারণ বেশিরভাগ কীবোর্ডগুলি এন্টার কীটি মোটামুটি কাছে রাখে / বাকী কমান্ডটি টাইপ করার আগে এন্ট্রিটিকে দুর্ঘটনাক্রমে আঘাত করা খুব সহজ। এই ঝুঁকি হ্রাস করার জন্য, কেউ হয় cdমূল ডিরেক্টরিতে যেতে পারে এবং ফাঁস / বাদ দিতে পারে, বা কমান্ডটি শুরু (করতে পারে যার অর্থ মিলটি )টাইপ না করা অবধি কমান্ডটি কার্যকর করা হবে না , এটি সিটিআরএল -সি-তে আঘাত হানার সুযোগ দেয় এবং জামিন না দিয়ে বেরিয়ে যায় একটি খারাপ ভুল (যেমন rm -rf /tmp/foo-installএবং টি এর পরিবর্তে এন্টার চাপুন)।
মন্টি হার্ডার

উত্তর:


25

আপনি ব্যবহার করেছেন বলে এটি ঘটেছে:

sudo chown -R root:www-data .*

পরিবর্তে যখন আপনার এটি ব্যবহার করা উচিত ছিল:

sudo chown -R root:www-data ./*

প্রথমত, -Rলক্ষ্য ডিরেক্টরিতে সমস্ত ডিরেক্টরি জন্য পুনরাবৃত্ত হয়।

অতিরিক্তভাবে, *বর্তমান ডিরেক্টরিতে সমস্ত ফাইল এবং ডিরেক্টরি মিলবে will এর পরে, .*সমস্ত ডিরেক্টরি এবং ডিরেক্টরি ডিরেক্টরি বর্তমান ডিরেক্টরি থেকে এক স্তরের উপরে মিলবে ।

ভবিষ্যতে এড়াতে, আপনি উদাহরণগুলি যেমন আদেশটি lsকার্যকর করার আগে আপনি পাথ যাচাই করতে কমান্ডটি ব্যবহার করতে পারেন chown:

ls -a ./*
ls -a *
ls -a .*
ls -a ../*

এটি এড়ানোর আরেকটি উপায় হ'ল আপনি যে নির্দেশিকায় কমান্ড চালাতে চান তাতে সর্বদা সম্পূর্ণ পথ ব্যবহার করা।

এখানে একটি উদাহরণ:

sudo chown -R root:www-data /opt/*

সম্পাদনা:

আপনি chmodসরাসরি অধীনে সমস্ত লুকানো ফাইল বা ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন /opt(প্রথম অক্ষরটি .যা তাদের গোপন করার পরে ধরে নেওয়া হয় তা হ'ল একটি চিঠি, একটি সংখ্যা, একটি ড্যাশ বা আন্ডারস্কোর যা বেশিরভাগ ফাইলের ক্ষেত্রে সত্য হওয়া উচিত)।

for i in /opt/.[A-Za-z0-9-_]*; do sudo chmod root:www-data "/opt/$i"; done

chmodনিম্নলিখিত কমান্ডটি চালিয়ে আপনি কী ফাইলগুলি যাচাই করতে পারবেন তা :

ls /opt/.[A-Za-z0-9-_]*

কমান্ডের প্রথম অংশ : for i in /opt/.[A-Za-z0-9-_]*বলে যে, গ্লোব এর সমস্ত /opt/.[A-Za-z0-9-_]*ফলাফলের জন্য প্রতিটি ফলাফলটি ভেরিয়েবল "i" তে নির্ধারিত করে।

বিশ্বব্যাপী এখানে বলেছে যে প্রথম চরিত্রটি অবশ্যই অবশ্যই হবে .এবং পরবর্তী অক্ষরটি [A-Za-z0-9-_] অবশ্যই এমন কোনও অক্ষর হতে হবে যা এজেড বা এজেড বা যে কোনও সংখ্যা 0-9 বা একটি -বা একটি হতে পারে _

এটি ফলাফলগুলি বাদ দেবে .এবং ..যা বর্তমান ডিরেক্টরি এবং বর্তমান ডিরেক্টরিতে ডিরেক্টরিটি উপস্থাপন করে এবং কেবল লুকানো ফাইল এবং ডিরেক্টরি অন্তর্ভুক্ত করবে।

কমান্ডের দ্বিতীয় অংশ : do sudo chmod root:www-data "/opt/$i"বর্তমান ভ্যালুতে মেলে এমন সমস্ত ভেরিয়েবলের জন্য কমান্ড চালাতে বলেছে $i

কমান্ডের তৃতীয় অংশ : doneবলেছেন যে আমি শেষ করেছি।


অতিরিক্তভাবে, আপনি বিকল্পটি পুনরাবৃত্তিযোগ্য -Rসহ বিকল্পটি ব্যবহার করেছেন chmodএবং -Rসমস্ত ডিরেক্টরি এবং ফাইলগুলিতে প্রয়োগ করবেন ।

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


5
আমার অভিপ্রায় ছিল লুকানো ফাইলগুলিকে টার্গেট করা। আমি ভুল করে অধিকৃত যে হিসাবে এখানে বর্ণিত লুকানো ফাইল grepping জন্য ব্যবহৃত সিনট্যাক্স stackoverflow.com/questions/10375689/... সাধারণত লুকানো ফাইলের জন্য বৈধ সিনট্যাক্স হয়। মনে হয় না।
ডিউক ডুগল

2
@ ডুকডুগাল আপনার এখনই প্রথম উত্তরটি অবিলম্বে গ্রহণ করা উচিত নয়। এটি গ্রহণ করার 24 ঘন্টা আগে অপেক্ষা করা ভাল বলে। সেই সময়ে আরও আরও দরকারী বা আরও ভাল লিখিত উত্তরগুলি আসতে পারে যা গ্রহণযোগ্যতার দাবিদার। আপনি যে সমস্ত উত্তর কার্যকর বলে মনে করেন সেগুলি আপনি উচ্চতর করতে পারেন। স্ট্যাক এক্সচেঞ্জ "" কে প্রথমে জবাব দেয় "তবে" কে সেরা উত্তর দেয় "(বিষয়বস্তু এবং স্বচ্ছতার ক্ষেত্রে উভয়ই) সম্পর্কে নয় (বা হওয়া উচিত নয়)।
গিয়াকোমো আলজিটা

11
সম্পাদনাটি ভয়ঙ্কর। এটি lsআউটপুট পার্স করার পরামর্শ দেয় এবং উত্তর ব্যবহার করার সময় খুব ধীর হয় find
ইনস্টল মনিকা বলেছেন

9
(1) বাশগুলিতে কোনও ওয়াইল্ডকার্ড (গ্লোব / প্যাটার্ন) পুনরাবৃত্ত নয় এবং **এটি স্পষ্টভাবে সক্ষম করতে হবে। আইএমএইচও, আপনার ভূমিকা সম্পর্কে আরও পরিষ্কার হওয়া উচিত  -R। (২) লোকেদের সমতল ব্যবহার এড়াতে পরামর্শ দেওয়া হয় *কারণ এটি ফাইল নামগুলির সাথে মেলাতে -পারে যা এরপরে বিকল্প হিসাবে ব্যাখ্যা করা হবে।  এর বিরুদ্ধে রক্ষা করা উচিত, তবে আমি নিশ্চিত নই যে সমস্ত কমান্ডই সেই সম্মেলনের সম্মান করে। … (চালিয়ে যাওয়া)command -- *
স্কট

6
(চালিয়ে যাওয়া) ... (3)  *,  ./* এবং এমনকি  বিকল্পটি সেট না করা পর্যন্ত /opt/* "ডট ফাইলগুলি" ( .*) খুঁজে পেতে ব্যর্থ dotglobযিহোশূয় বেসেনাট্টে এবং  ইলকচাচু যেমন  বলেছেন, chown -R /optএবং chown -R .আরও ভাল। … (চালিয়ে যাওয়া)
স্কট

45

এই ক্ষেত্রে শেল গ্লোব .*মেলে ..(মূল ডিরেক্টরি) দুর্ভাগ্যক্রমে এটি /:

steeldriver@t400s:/opt$ ls .*
.:

..:
bin  boot  cdrom  dev  etc  home  initrd.img  initrd.img.old  lib  lib32  lib64
libx32  lost+found  media  mnt  opt  proc  root  run  sbin  snap  srv  swapfile  sys
tmp  usr  var  vmlinuz  vmlinuz.old

অতিরিক্ত আলোচনার জন্য দেখুন:


6
এটি সঠিক এবং আরও সহজ উত্তর
17:48

5

আপনার সমস্যাগুলি এসেছিল কারণ বিন্দু দিয়ে শুরু হওয়া সমস্ত কিছুর সাথে .*মেলে । প্রসঙ্গটি বর্তমান ডিরেক্টরি, যেহেতু এই অভিব্যক্তিটি কোনও পথ অন্তর্ভুক্ত করে না। সুতরাং, বর্তমান ডিরেক্টরিতে যদি কোনও লুকানো ফাইল বা ফোল্ডার থাকে তবে আপনি সেগুলি মেলাতে পারবেন। তবে (যেমন আপনি এই ফোল্ডারে চালিয়ে দেখবেন ), আপনিও মিলবে এবং and.gitls -a...

এবং .., অবশ্যই, পিতামহিত ডিরেক্টরি, তাই chmod -Rপিতামহিত ডিরেক্টরিতে পুনরাবৃত্তভাবে লক্ষ্যবস্তু।


যেমন নিখুঁত পাথ /opt/.*সাহায্য করবে না, সিডাব্লুডি = /opt/..এর মতোই । ../opt
পিটার কর্ডেস

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