লিনাক্সের অধীনে সমস্ত ব্যবহারকারীর জন্য উমাস্ক কীভাবে পরীক্ষা করবেন?


18

এআইএক্স এর অধীনে আমি এর 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ব্যবহারকারীর কাছে ... তাহলে সার্ভারটি বন্ধ হয়ে যাবে?

আপডেট 2: আমি একটি অ-সু-ভিত্তিক উত্তরের জন্য একটি অনুগ্রহ তৈরি করেছি।


আমি ইতিমধ্যে সিস্টেম ব্যবহারকারীদের এড়ানোর জন্য উল্লেখ করেছি (> 3> 500), মানে ইউআইডি 500 এর উপরে চেক করুন
— রাহুল পাতিল

আবার: সিস্টেম ব্যবহারকারীদের বাদ না দিয়ে আমার সকল ব্যবহারকারীর জন্য
— উমাস্ক

আমরা বৈধ শেল পরীক্ষা করতে পারি, আপনি কি মনে করেন? , এর অর্থ শেল যদি অন্য কোনও / বিন / বাশ হয় তবে আমরা সেই ব্যবহারকারীকে এড়িয়ে যেতে পারি। তাই না?
— রাহুল পাতিল

উত্তর:


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
ঠিক আছে ধন্যবাদ
— গ্যাসকো পিটার 14

আপনি যদি ম্যানুয়ালি সেট করে ~.bashrcরেখেছেন তবে বলুন আপনি এই ফাইলটিতে গ্রেপ করতে পারেন।
— রাহুল পাতিল

এটি অনেক জায়গায় সেট করা যেতে পারে ... এজন্য গ্রেপিং সেরা সমাধান নয়
— গ্যাসকো পিটার

তারপরে আমাদের অনেক জায়গায় চেক করতে হবে
— রাহুল পাতিল

এটি আরও ভাল হওয়া উচিত, যদি আপনি সাধারণ ফাইল হিসাবে ব্যবহারকারী হিসাবে উমাস্ক সেট করে থাকেন যেমন .বাশ্রাক
— রাহুল পাতিল

10

umaskসাধারণত কনফিগ ফাইল মাধ্যমে সিস্টেম জুড়ে সেট করা হয়: /etc/login.defs:

$ grep UMASK /etc/login.defs 
UMASK           077

এই মান ওভাররাইড করা যেতে পারে কিন্তু সাধারণত পারেন মাধ্যমে নয় /etc/bashrc, /etc/profileএবং / অথবা তাদের ব্যবহারকারীদের দ্বারা $HOME/.bashrc(ধরে নেওয়া যাক তারা ব্যাশ ব্যবহার করছেন)।

যদি আপনি grepউল্লিখিত ফাইলগুলিতে "উমাস্ক" এর জন্য থাকেন তবে আপনি এটি আরএইচইএল বাক্সেও লক্ষ্য করবেন:

$ 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
    

সুতরাং RHEL উপর অন্তত সিস্টেম umaskপারেন হয় 002যদি আপনার ইউআইডি 199 তার চেয়ে অনেক বেশী, এবং 022অন্যথায় (সিস্টেম অ্যাকাউন্ট)।


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