लिनक्स के तहत सभी उपयोगकर्ताओं के लिए umask कैसे जांचें?


18

AIX के तहत मैं umaskसभी उपयोगकर्ताओं के लिए जाँच कर सकता हूँ :

cut -d : -f 1 /etc/passwd | while read ONELINE; do lsuser -a umask "$ONELINE"; done

लेकिन मैं umaskलिनक्स के तहत सभी उपयोगकर्ताओं के लिए सेटिंग कैसे देख सकता हूं ? ( suहर उपयोगकर्ता के लिए और फिर umaskआदेश? क्या इसके लिए कोई बेहतर तरीके हैं?)

Update1:

यह suसभी उपयोगकर्ताओं के लिए सबसे अच्छा नहीं है , क्योंकि कुछ आरएचईएल सर्वरों पर कुछ उपयोगकर्ता के लिए डिफ़ॉल्ट शेल रुका हुआ / शटडाउन है।:

shutdown:x:6:0:shutdown;asdf;asdf;F:/sbin:/sbin/shutdown

तो अगर मैं suउपयोगकर्ता के लिए ... तो सर्वर बंद हो जाता है?

UPDATE2: मैंने एक गैर-su आधारित उत्तर के लिए एक इनाम बनाया।


मैंने सिस्टम यूजर ($ 3> 500) से बचने के लिए पहले ही उल्लेख कर दिया है, इसका मतलब है UID 500 से ऊपर की जाँच करें
— राहुल पाटिल

फिर से: मुझे सिस्टम उपयोगकर्ताओं को छोड़कर, सभी उपयोगकर्ताओं के लिए umask की जांच करने की आवश्यकता है :)
— gasko peter

हम वैध शेल की जांच कर सकते हैं, आप क्या सोचते हैं? , का अर्थ है यदि शेल अन्य / बिन / बैश है, तो हम उस उपयोगकर्ता को छोड़ सकते हैं। है ना?
— राहुल पाटिल

जवाबों:


9

आप का उपयोग कर जाँच कर सकते हैं:

for user in $(awk -F: '{print $1}' /etc/passwd); 
do 
    printf "%-10s" "$user" ; su -c 'umask' -l $user 2>/dev/null
done

सिस्टम उपयोगकर्ता जाँच से बचने के लिए:

for user in $(awk -F: '( $3 >= 500 ){print $1}' /etc/passwd); 
do 
    printf "%-10s" "$user" ; su -c 'umask' -l $user 2>/dev/null
done

आउटपुट:

ram       0022
shyam     0022
suraj     0022
vinayak   0022
javed     0022

1
ठीक है, धन्यवाद, लेकिन क्या उपयोगकर्ता के पास "सु" के बिना ओम्स्क की जांच करने का कोई तरीका है?
— गास्को पेटर

यदि आपने मैन्युअल रूप से सेट किया है, ~.bashrcतो कहें कि आप इस फ़ाइल में जा सकते हैं।
— राहुल पाटिल

इसे कई जगहों पर सेट किया जा सकता है ... यही कारण है कि
— ग्रेपिंग

फिर हमें कई स्थानों पर जांच करनी होगी
— राहुल पाटिल

यह बेहतर होना चाहिए, यदि आपने प्रति उपयोगकर्ता में आम फ़ाइल उदा में सेट किया है जैसे .bashrc
— राहुल पाटिल

10

umaskआम तौर पर कॉन्फ़िग फ़ाइल के माध्यम से प्रणाली विस्तृत सेट है: /etc/login.defs:

$ grep UMASK /etc/login.defs 
UMASK           077

यह मान ओवरराइड किया जा सकता है, लेकिन आमतौर पर या तो के माध्यम से नहीं है /etc/bashrc, /etc/profileऔर / या उपयोगकर्ताओं द्वारा उनके $HOME/.bashrc(मान लें कि वे बैश का उपयोग कर रहे हैं)।

यदि आप grepउन उल्लिखित फाइलों में "umask" के लिए हैं, तो आप इसे RHEL बॉक्स पर भी नोटिस करेंगे:

$ grep umask /etc/bashrc /etc/profile
/etc/bashrc:    # By default, we want umask to get set. This sets it for non-login shell.
/etc/bashrc:       umask 002
/etc/bashrc:       umask 022
/etc/profile:# By default, we want umask to get set. This sets it for login shell
/etc/profile:    umask 002
/etc/profile:    umask 022

गहरा खोदना:

  • /etc/bashrc

    # By default, we want umask to get set. This sets it for non-login shell.
    # Current threshold for system reserved uid/gids is 200
    # You could check uidgid reservation validity in
    # /usr/share/doc/setup-*/uidgid file
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
       umask 002
    else
       umask 022
    fi
    
  • /etc/profile

    # By default, we want umask to get set. This sets it for login shell
    # Current threshold for system reserved uid/gids is 200
    # You could check uidgid reservation validity in
    # /usr/share/doc/setup-*/uidgid file
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
        umask 002
    else
        umask 022
    fi
    

कम से कम आरएचईएल सिस्टम पर umaskया तो 002यदि आपका यूआईडी 199 से अधिक है, और 022अन्यथा (सिस्टम खाते)।


उबंटू और (शायद) डेबियन-आधारित प्रणालियों के लिए, आपको ऐसा करना चाहिए ~/.profile, जिसमें डिफ़ॉल्ट मान है जो फ़ाइल के शीर्ष पर आपके द्वारा प्रति-उपयोगकर्ता के आधार पर असुविधाजनक और संशोधित करने के लिए टिप्पणी की गई है।
— code_dredd
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.