उपयोगकर्ता के लिए फ़ाइल की प्रभावी अनुमति का परीक्षण करें


24

क्या किसी विशिष्ट उपयोगकर्ता के लिए फ़ाइल की प्रभावी अनुमतियों का परीक्षण करना संभव है?

मैं सामान्य रूप su userसे फ़ाइल को एक्सेस करता हूं और फिर करता हूं, लेकिन मैं अब बिना शेल (यानी सिस्टम उपयोगकर्ता) वाले उपयोगकर्ता पर यह परीक्षण करना चाहता हूं

जवाबों:


23

sudoआदेश के साथ एक विशेष उपयोगकर्ता के रूप में कुछ भी चला सकते हैं -uविकल्प। गोले के बारे में चिंता करने के बजाय, बस catअपनी फ़ाइल को अपने लक्षित उपयोगकर्ता के रूप में (या निष्पादित, जो भी हो) करने का प्रयास करें:

$ sudo -u apache cat .ssh/authorized_keys 
cat: .ssh/authorized_keys: Permission denied

catहालांकि यह शायद सबसे अच्छा विकल्प नहीं है ... यह आप एक बड़ी फ़ाइल या एक बाइनरी फ़ाइल का परीक्षण कर रहे हैं ...
एलेक्सिस विलके

24

मुझे स्क्रिप्ट में उपयोग करने के लिए सुविधाजनक कुछ मिला

 sudo -u <user> test -r <file-to-test> && ...

1
सबसे अच्छा जवाब, जैसा कि आप वास्तव में फाइल को संशोधित / बनाने के बिना पठनीय (-r), लिखने योग्य (-w) और निष्पादन योग्य (-x) के लिए परीक्षण कर सकते हैं। man testअधिक जानकारी के लिए
थॉमस

12
sudo -u <user> test -r <file-to-test>; echo $?

echo $?भाग इच्छा उत्पादन परीक्षण से बाहर निकलने की स्थिति।

बस यहाँ याद रखें कि 0यदि ऑपरेशन सफल रहा तो आउटपुट होगा ! या गैर-शून्य, जैसे 1, यदि नहीं।

जैसा @ थॉमस की टिप्पणी @ user72025 के जवाब पर, का उपयोग man testकी तरह अधिक आपरेशन परीक्षण पाने के लिए, test -xपरीक्षण executability को, test -wwritability के लिए, आदि


1
मेरे लिए, यह सबसे उपयोगी उत्तर है। User72025 द्वारा एक पास था, लेकिन मुझे नहीं पता था कि परिणाम क्या था। आपने स्पष्ट कर दिया है। धन्यवाद। मतदान हो रहा है।
प्रेरित

6

मैंने पाया है कि आप su -s <shellname> <username>एक विशिष्ट उपयोगकर्ता के रूप में एक विशिष्ट शेल दर्ज करने के लिए उपयोग कर सकते हैं । आप हमेशा की तरह फ़ाइल अनुमतियों का परीक्षण कर सकते हैं।

उदाहरण के लिए:

su -s /bin/bash Debian-exim
touch /etc/exim4/exim4.conf.template

बहुत दिलचस्प विकल्प।
एलेक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.