অন্য ব্যবহারকারীর জন্য ফাইল অনুমতি পরীক্ষা করুন


0

অ্যাপাচি কোনও ফাইল অ্যাক্সেস করতে না পারার অভিযোগ করছে। অ্যাক্সেসটি কীভাবে বাধা দিচ্ছে তা খুঁজে পাওয়ার কোনও সহজ উপায় আছে?

আমি জানি যে ব্যবহারকারী কোন গ্রুপের অন্তর্ভুক্ত তা জানার পদ্ধতিতে, ls -ldফাইলের পথে প্রতিটি ফোল্ডারে একটি করে অনুমতি পরীক্ষা করতে এবং ls -lফাইলটিতে নিজেই একটি চূড়ান্ত করতে পেরেছি, তবে এটি বেশ ক্লান্তিকর। তারপরে সেলিনাক্স এবং এসিএল ফাইলও রয়েছে যা খেলতেও পারে।

আমিও জানি আমি থেকে Apache লগইন শেল পরিবর্তন করতে পারেন /sbin/nologinথেকে /bin/bash, তারপর su - apacheএবং cdফোল্ডারগুলির মাধ্যমে পর্যন্ত আমি পারবো না, কিন্তু যে ক্লান্তিকর হয়।

এটি এমন কিছু যা আমি প্রায়শই করি এবং আমার সন্দেহ হয় অন্যরাও এটি করে, তাই আমি ধরে নিই যে আমি এখানে কিছু অনুপস্থিত যা এটি আরও সহজ করে তোলে।

উত্তর:


1

আমার ভুল. আমি ভাবতে চাই যে নীচেরগুলি আরও সহায়ক হবে।

#!/bin/bash

uid=`id -u`

echo $uid

cmd='find . ! \( -user '${uid}

echo $cmd

for gid in `id -G`
do
    cmd=${cmd}' -o -gid '${gid}
done

cmd=$cmd' \)'

echo "..."
echo $cmd

for file in `find . ! \( -gid 1000 \)`
do
    a=$((`stat ${file} --print=%a`%10))

    if [ $a -eq 0 ] ; then
        echo $file
    fi
done

এটি ব্যবহারকারীকে মালিকানাধীন ফাইলগুলি সন্ধান করে। আমি জানতে চাইছি যে প্রশ্নযুক্ত ব্যবহারকারী কোনও ফাইলে অ্যাক্সেস পড়েছেন কিনা। পড়ার অ্যাক্সেস সহ কোনও গ্রুপের সদস্য হয়েও ফাইলটি যদি তাদের মালিকানা না পায় বা তারা বিকল্পভাবে তাদের অ্যাক্সেস বঞ্চিত হতে পারে কারণ ফাইলটি যে ফোল্ডারে রয়েছে সেটিতে তাদের অ্যাক্সেস নেই বলে তারা পড়তে পারা অ্যাক্সেস পেতে পারে
গ্রেগ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.