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


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.