বর্তমান ব্যবহারকারীর একটি ডিরেক্টরিতে লেখার অনুমতি আছে কিনা তা নির্ধারণ করুন


9

আমি জানি আপনি এটির মাধ্যমে ডিরেক্টরিটির মালিক নির্ধারণ করতে পারেন:

ls -ld ~/foo | awk '{ print $3 }'

এরপরে আপনি এটি করে এটি ব্যবহারকারীর সাথে তুলনা করতে পারেন:

if [[ $(ls -ld ~/foo | awk '{ print $3 }') == "$USER" ]] # or $(id -u -n ) instead of $USER
then
    echo "You are the owner"
else
    echo "You are NOT the owner"
fi

তবে আপনার মালিক না হয়ে লেখার অনুমতি থাকতে পারে। আপনি এটি কীভাবে নির্ধারণ করবেন?

উত্তর:


20

আমি ধরে নিচ্ছি

if [ -w ~/foo ]; then ....

আপনি যা চান তা করা উচিত

এছাড়াও, stat -c %U ~/fooপার্স চেয়ে মালিক প্রাপ্ত একটি ভাল উপায় নেই lsআউটপুট।


1
নোট যেটি statআধুনিক লিনাক্স সিস্টেমগুলির সাথে সুনির্দিষ্ট, অন্যান্য ইউনিটগুলির আলাদা statবা নাও থাকতে পারে । এলএস পার্স করা সাধারণত সমস্যার সমাধান , তবে তৃতীয় শব্দটি বেশিরভাগ ক্ষেত্রে কাজ করে (জিনিসগুলি পরে ভেঙে যায়) হিসাবে মালিককে পার্স করা; এটি এখনও নিখুঁত নয় (কিছু সিস্টেম ব্যবহারকারীর নাম ফাঁকা করার অনুমতি দেয়)।
গিলস 'অশুভ হওয়া বন্ধ করুন'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.