लिनक्स के तहत सभी उपयोगकर्ताओं के लिए 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.