chownमहान है यदि आप एक सुपरयूज़र हैं। मेरे पास एक ऐसा मुद्दा था जहां makeमेरी निर्देशिका में कोई और व्यक्ति चला था , और अब कुछ फाइलें थीं जिन्हें मैं संशोधित नहीं कर सकता था। यहां मेरा वर्कअराउंड है जो फाइलों और निर्देशिकाओं को संभालता है, हालांकि यह प्रत्यय के साथ झूठ बोलने वाली निर्देशिकाओं को छोड़ देता है .mkmeownerअगर यह उन्हें हटा नहीं सकता है।
- निम्न स्क्रिप्ट फ़ाइलों और निर्देशिकाओं के स्वामित्व में परिवर्तन करती है, जो वर्तमान उपयोगकर्ता के स्वामित्व में है, प्रत्येक निर्देशिका की नई प्रतिलिपि बनाकर अनुमति देने का प्रयास करती है या वर्तमान उपयोगकर्ता के स्वामित्व वाली फ़ाइल नहीं हटाती है (या हटाने की कोशिश कर रही है) मूल फ़ाइल, और उचित नामकरण।
- इसका आशय यह है कि "मुझे मालिक बनाओ" के लिए एक संक्षिप्त नाम होना चाहिए। मैं अंडरस्कोर का उपयोग नहीं करता क्योंकि वे टाइप करने के लिए एक दर्द हैं।
उदाहरण:
% mkmeowner .
% mkmeowner dirpath1 dirpath2
- यह
mkmeowneroneआपके पथ में होने के लिए निम्न स्क्रिप्ट की आवश्यकता है ।
mkmeowner:
#!/bin/bash
[ "x$1" == "x-h" ] || [ "x$1" == "x--help" ] && cat << END && exit 0
Usage: $0 dirorfile [direorfile2 ...]:
change ownership of directories or files to current user.
Current user must have permissions to read those and write to owner directory.
END
mkmeownerone=`which mkmeownerone`
for d in $*; do
find "$d" -not -user `whoami` -exec $mkmeownerone {} \;
done
mkmeownerone:
#!/bin/bash
# change ownership of one file or directory
f="$1"
expr match "${f}" '.*\.mkmeowner$' > /dev/null && exit 1 # already tried to do this one
if mv -f "$f" "${f}.mkmeowner"; then
cp -pr "${f}.mkmeowner" "$f" && rm -rf "${f}.mkmeowner"
exit 0
fi
exit 1
man chownऔरman chmodआसानी से अपने प्रश्न का उत्तर दें।