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


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.