কীভাবে এসএসএইচ ফাইল স্থানান্তর সম্পর্কে বিজ্ঞপ্তি পাবেন?


1

আমি ভাবছি যে এমন কোনও পদ্ধতি বা প্রোগ্রাম রয়েছে যা এসএসএইচ ফাইল স্থানান্তর পর্যবেক্ষণ করতে পারে এবং কোনও ফাইল (আগত) স্থানান্তরিত হলে ইমেল প্রেরণ করতে পারে?

(অন্য বিকল্পটি হ'ল এসএসএইচের মাধ্যমে কেউ লগ ইন করলে কমপক্ষে একটি বিজ্ঞপ্তি পাওয়া, যদিও ইমেলটিতে কোন ফাইল স্থানান্তরিত হয়েছে সে সম্পর্কে তথ্য থাকলে তা আদর্শ হবে)

তদ্ব্যতীত, একজন এসএসআই ফাইল স্থানান্তরে নিযুক্ত যারা সক্রিয় ব্যবহারকারীদের কীভাবে তা দেখতে পরীক্ষা করতে পারেন?

আমি বুঝতে পারছি এটি একটি ওএসএক্স প্রশ্ন, তবে আমি ভেবেছিলাম এটি সুপার ইউজার সাইটের পক্ষে আরও উপযুক্ত হবে। ভুল হয়ে গেলে সরানোর জন্য দয়া করে ভোট দিন :)


1
ম্যাক ওএস এক্স সম্পর্কিত প্রশ্নগুলি সুপার ব্যবহারকারীর উপর রয়েছে। সর্বদা ছিল। বিষয় ওভারল্যাপ সহ অন্য সাইটের উপস্থিতি এটি পরিবর্তন করে না।
ড্যানিয়েল অঙ্গুলিনির্দেশ

1
এসএসএইচ লগইন, প্রমাণীকরণ এবং লগআউট system.log(কনসোল.এপ এ দেখুন) s বিশেষত subsystem request for sftpবার্তাটি কী ধরণের এসএসএইচ সংযোগ তা নির্ধারণে সহায়ক হতে পারে। দুর্ভাগ্যবশত, এমনকি বৃদ্ধি LogLevelমধ্যে /etc/sshd_configথেকে DEBUG3(সর্বোচ্চ) আপলোড করা ফাইলের ফাইলের নাম প্রদর্শন করা হয় না, এবং যখন সেশন খোলা অথবা বন্ধ খুব দরকারী ... নাও হতে পারে হয় পরে কঠোরভাবে যাচ্ছে
ড্যানিয়েল অঙ্গুলিনির্দেশ

ভকভগক! লগইন করুন এবং logouts একটি শুরুর হয় - ধন্যবাদ @Daniel
OrangeBox

আপনি এটি logwatchদূরবর্তী লগইন এবং সিস্টেম-ওয়াইড ফাইল পরিবর্তনের জন্য করতে পারেন । আমাকে logwatchপ্রতিদিন / সাপ্তাহিক একটি প্রতিবেদন ইমেল করার জন্য আমার ক্রোন জব সেটআপ রয়েছে তবে আপনি টার্মিনাল এমুলেটরটিতে সরাসরি প্রতিবেদন তৈরি করতে পারেন।
ব্রেকথ্রু

সম্ভবত এটির

উত্তর:


2

এখনই কোন ব্যবহারকারীদের একটি সক্রিয় এসএফটিপি সেশন রয়েছে তা পরীক্ষা করার জন্য, আপনি sftp-serverপ্রক্রিয়াটি সন্ধান করতে পারেন । নোট করুন যে প্রক্রিয়া উপস্থিতি অগত্যা এই অর্থ যে তারা বর্তমানে ফাইল স্থানান্তর করছে।

$ ps uax | grep '[s]ftp-server'
1000     15115  0.0  0.0  12532   728 ?        Ss   14:38   0:00 /usr/lib/openssh/sftp-server

(যদি আপনি অবাক হন তবে গ্রেট কমান্ডটি আউটপুট থেকে আড়াল করার জন্য প্যাটার্নের বর্গাকার বন্ধনীগুলি "হ্যাক" হিসাবে ব্যবহৃত হয়))

শেল স্ক্রিপ্ট (বাশ)

#!/usr/bin/env bash

pids=$(pgrep -x sftp-server)
users=()

for pid in "${pids[@]}"; do
    users+=("$(ps --no-headers -o user 15115)")
done

echo "Users with active SFTP sessions: ${users[*]}"

আপনি যদি প্রতি লাইনে একজন ব্যবহারকারী আউটপুট দিতে চান তবে এটির সাথে শেষ লাইনটি প্রতিস্থাপন করুন:

echo "Users with active SFTP sessions:"
echo
for user in "${user[@]}"; do
    echo "$user"
done

বিকল্পভাবে, আপনি /procনির্ভর করে পরিবর্তে ফাইল সিস্টেমটি ব্যবহার করতে পারেন pgrep। এটি এই উত্তরে বিস্তারিত নয়।


ওএস এক্স এর PS তে নেই --no-headersতবে আপনি ব্যবহার করতে পারেন ps -p 15115 -o user=
ল্রি

0

এটি ইমেলের মাধ্যমে একটি কাস্টম বার্তা প্রেরণের জন্য একটি উদাহরণ স্ক্রিপ্ট।

echo "User $USER just logged in * $(date '+%d-%m-%Y %T') |
    sendmail -q -u "SSH Login" -f 'Originator <from@address.com>' \
             -t 'Your Name <your.email@domain.com>' -s smtp.server.com &

ইমেল প্রেরণের জন্য আপনার sendmail প্যাকেজ ইনস্টল করা দরকার । sendmailআরও তথ্যের জন্য ম্যান পৃষ্ঠা পড়ুন ।

আপনি .bash_loginপছন্দসই ব্যবহারকারীর মতো এটির মতো একটি স্ক্রিপ্ট রাখতে পারেন যাতে যখনই ব্যক্তি টার্মিনাল লগইন ব্যবহার করে এবং লগইন সফল হয় আপনি কোনও ইমেল বিজ্ঞপ্তি পাবেন। (এসএসএইচ টার্মিনাল লগইন ব্যবহার করে))

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.