টবির উত্তরের ভিত্তিতে, আমি এটি ডিবিয়ান / উবুন্টুতে কিছুটা আলাদা উপায়ে কনফিগার করার একটি উপায় পেয়েছি। প্রসঙ্গে, দেখুন:
সুতরাং দেবিয়ান / উবুন্টুর এই pam-auth-update
আদেশ রয়েছে এবং আপনি যখন /etc/pam.d/sudo
এটি দেখেন তখন এমন দেখাচ্ছে:
#%PAM-1.0
@include common-auth
@include common-account
@include common-session-noninteractive
এবং এর /etc/pam.d/common-session-noninteractive
মতো দেখাচ্ছে:
#
# /etc/pam.d/common-session-noninteractive - session-related modules
# common to all non-interactive services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of all non-interactive sessions.
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details.
# here are the per-package modules (the "Primary" block)
session [default=1] pam_permit.so
# here's the fallback if no module succeeds
session requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
session required pam_permit.so
# and here are more per-package modules (the "Additional" block)
session required pam_unix.so
# end of pam-auth-update config
সুতরাং নিশ্চিত, আমি উপরের যে কোনও ফাইল সম্পাদনা করতে পারলাম তবে স্পষ্টতই এখানে কিছু "উচ্চ ক্ষমতা" রয়েছে। প্যাম নিয়ম যুক্ত করতে পারে এমন অন্যান্য প্যাকেজগুলির সাথে আমার খেলার পরিবর্তনগুলি কীভাবে পাবেন? এটিকে শীর্ষে উপস্থাপন করার জন্য, মনে হচ্ছিল আমি /etc/pam.d/sudo
দু'জনের মাঝে @include
এইরকম কোনও লাইন যুক্ত করতে পারছি না ..
##### THIS DIDN'T WORK :( ######
@include common-auth
@include common-account
session [default=ignore] pam_succeed_if.so quiet_success service = sudo uid = 0 ruser = myappuser
@include common-session-noninteractive
উপরের লিঙ্কগুলি পড়ার পরে অন্যান্য উদাহরণগুলি দেখুন (দেখুন /usr/share/pam-configs/unix
) আমি এটি নিয়ে এসেছি /usr/share/pam-configs/myapp
:
# Don't log "session opened" messages for myapp user
# See: https://wiki.ubuntu.com/PAMConfigFrameworkSpec
# https://manpages.debian.org/stretch/libpam-modules/pam_succeed_if.8.en.html
Name: myapp disable session logging
Default: yes
Priority: 300
Session-Type: Additional
Session:
[default=ignore] pam_succeed_if.so quiet_success service = sudo uid = 0 ruser = myappuser
Session
এবং Session-Type
নিয়ন্ত্রণ করুন কোন ফাইলগুলি সম্পাদনা করা হয় এবং Priority
কোন আদেশে তারা প্রবেশ করে তা সংজ্ঞায়িত করে that ফাইলটি যুক্ত করার পরে এবং চলার পরে pam-auth-update
, /etc/pam.d/common-session-noninteractive
দেখতে এটি দেখতে (নীচে :)
#... omitted
session required pam_permit.so
# and here are more per-package modules (the "Additional" block)
session [default=ignore] pam_succeed_if.so quiet_success service = sudo uid = 0 ruser = myappuser
session required pam_unix.so
# end of pam-auth-update config
... যা আমরা চাই কারণ আমাদের pam_succeed_if
লাইনের আগে আসা উচিত session required pam_unix.so
। (এই লাইনটি এসেছিল /use/share/pam-configs/unix
এবং Priority: 256
তাই এটি দ্বিতীয়টি শেষ হয়)) এছাড়াও নোট করুন যে আমি service = sudo
প্রিকিকেটটি ছেড়ে দিয়েছি কারণ common-session-noninteractive
সম্ভবত অন্যান্য কনফিগগুলিতেও অন্তর্ভুক্ত থাকতে পারে sudo
।
আমার ক্ষেত্রে, আমি ইতিমধ্যে আমার কোডটিকে একটি .deb ইনস্টলার হিসাবে প্যাকেজ করেছি তাই আমি /usr/share/pam-configs/myapp
ফাইলটি যুক্ত pam-auth-update --package
করেছি postinst
এবং আমার এবং prerm
স্ক্রিপ্টগুলিতে যুক্ত করেছি এবং আমি যেতে ভাল আছি!
সতর্কীকরণ ...
আপনি যদি উপরে উল্লিখিত PAMConfigFrameworkSpec নিবন্ধটি পড়েন তবে এটি একটি Session-Interactive-Only
বিকল্প সংজ্ঞায়িত করে তবে কেবল নন-ইন্টারেক্টিভ বিধি নির্দিষ্ট করার উপায় নেই । তাই আপডেট করা/etc/pam.d/common-session
হয়েছিল । আমি মনে করি না এটির কাছাকাছি উপায় আছে। যদি আপনি ইন্টারেক্টিভ সেশনগুলি সেই ব্যবহারকারীর জন্য লগ না করে ঠিক থাকেন (এটি কোনও পরিষেবা অ্যাকাউন্ট, তাই না?) তবে আপনার সব ঠিক করা উচিত!
বোনাস: কিভাবে sudo লগ আউটপুট অপসারণ করতে
ছাড়াও session openened|closed
উল্লেখ্য PAM নিঃসরণ করে লাইন, sudo
কমান্ড যে চালানো সম্পর্কে অতিরিক্ত তথ্য লগ করা হয়। দেখে মনে হচ্ছে:
[user] : TTY=unknown ; PWD=... ; USER=root ; COMMAND=...
আপনি যদি এটি সরাতে চান তবে এই লিঙ্কটি খুলুন নীচে চালিয়ে যান ...
সুতরাং ... আপনি সম্ভবত সাধারণত /etc/sudoers.d/___
সেটআপের সাথে পরিচিত যা কোনও পরিষেবা অ্যাকাউন্টের জন্য এমন কিছু করতে পারে যা কিছু ক্রিয়াকলাপের জন্য সুপারসিউজার প্রাইভেস প্রয়োজন:
myuser ALL=(ALL) NOPASSWD: /bin/ping
যে ভিতরে যেতে পারে /etc/sudoers.d/10_myuser
। ঠিক আছে, অন্যান্য জিনিসগুলির মধ্যে আপনিও উল্লেখ করতে পারেনDefaults
। বিশেষভাবে এই সিনট্যাক্স নোট করুন'Defaults' ':' User_List
এখন, SUDOERS অপশন বিভাগটি দেখুন । আকর্ষণীয় বিট অন্তর্ভুক্ত log_input
, log_output
কিন্তু (সম্ভবত) আরও গুরুত্বপূর্ণ, syslog
এবং logfile
। এটি আমার কাছে উপস্থিত হয়ে দেখা গেছে যে ডেবিয়ানের সাম্প্রতিক সংস্করণগুলিতে হয়, আরএসপ্লোগ বা sudo
লগইন করুন stdout
বা stderr
ডিফল্টরূপে। সুতরাং আমার জন্য এটি আমার পরিষেবার জন্য জার্নালড লগে প্রদর্শিত হচ্ছে, এবং যেমন /var/log/auth.log
এটি যেখানে আমার অ্যাপ্লিকেশন লগগুলিতে মিশ্রিত হবে না not সুডো লগিং অপসারণ করতে, আমি নিম্নলিখিতগুলিতে যুক্ত করেছি /etc/sudoers.d/10_myuser
যাতে দেখে মনে হয়:
Defaults:myuser !logfile, !syslog
myuser ALL=(ALL) NOPASSWD: /bin/ping
ওয়াইএমএমভি, আপনি যদি লগিং অক্ষম করা অনুভব করেন তবে সুরক্ষা অডিটগুলির সাথে সমস্যাগুলি তৈরি হয় আপনি আরএসস্লগ ফিল্টারগুলির মাধ্যমে এটি সমাধান করার চেষ্টাও করতে পারেন।
session closed for user root
এবং যদি আমি এটি ফিল্টার করি তবে আমি সমস্ত বার্তা ফিল্টার করছি। আমি একটি নির্দিষ্ট ব্যবহারকারীর জন্য চাই যার বার্তায় উল্লেখ নেই এবং আমি এর নামে ফিল্টার করতে পারি না ...