লক-স্ক্রিন ইভেন্টগুলি লগ করা হচ্ছে


10

সমস্যা

ফেডোরা 18 চালাচ্ছেন কোনও ব্যবহারকারী তার কার্য কেন্দ্রটি লক করে আনলক করবে তার সঠিক তারিখ এবং সময় দেখুন।

প্রশ্ন

ফেডোরা 18 (বা একটি সাধারণ লিনাক্স সমাধান) এ "লক-স্ক্রিন" ব্যবহারকারীর প্রবেশ এবং প্রস্থান করার কোনও ইভেন্ট লগ করার কোনও উপায় আছে কি?

চেষ্টা করা হয়েছে

  1. দেখার চেষ্টা করে /var/log/boot- কোন সাহায্য নেই। এবং তাকিয়ে /var/log/messagesআমি বার্তাটি পেয়েছি systemd-logind[xxx]: New session 140 of user YYY, কিন্তু লক-স্ক্রিন (জিনোম?) ইভেন্টটি খুঁজে পাইনি।
  2. দিকে তাকিয়ে চেষ্টা /var/log/audit/audit.logযা ব্যবহারকারীদের এবং পরিষেবার সব সাজানোর বিষয়ে পিএএম সম্পর্কিত বার্তাগুলিকে অনেক আছে, কিন্তু আমি সত্যিই নিশ্চিত স্ক্রীন লক করার কার্যকলাপ খুঁজে পায় তার জন্য দেখুন কি নই

উত্তর:


7

"ডিবিস-মনিটর" ব্যবহার করে এখানে আরও একটি সমাধান দেওয়া হয়েছে। সামান্য বাশ স্ক্রিপ্ট লগিং স্ক্রিন ক্রিয়াকলাপ।

exit_report(){
echo "$(date) Monitoring Terminated."
}
trap "exit_report; exit;" 0

lockmon() {
adddate() {
    while IFS= read -r line; do
      echo "$(date) $line" | grep "boolean" | sed 's/   boolean true/Screen Locked/' | sed 's/   boolean false/Screen Unlocked/'
    done
}
echo "$(date) Monitoring Started."
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | adddate

}

lockmon >> lock_screen.log

আমি এটি একটি .shফাইলে রেখেছি এবং এটি জিনোমের স্টার্টআপ অ্যাপ্লিকেশনগুলিতে যুক্ত করেছি। এটি টিনের উপর কী বলে, thx
14

4

একবার দেখে নেওয়ার চেষ্টা করুন /var/log/auth.log। আপনার পিএএম এবং / অথবা স্ক্রিনসেভার অ্যাপ্লিকেশন থেকে কিছু সম্পর্কিত বার্তা দেখতে হবে।


আমার কাছে নেই /var/log/auth.log, আমার কাছে আছে /var/log/audit/audit.logযাতে সমস্ত ধরণের ব্যবহারকারী এবং পরিষেবা সম্পর্কে পিএএম সম্পর্কিত বার্তা রয়েছে, তবে আমি লক-স্ক্রিনের ক্রিয়াকলাপটি সন্ধান করার জন্য কী সন্ধান করতে হবে তা আমি সত্যই নিশ্চিত নই
টুটুডাজু

আমার কাছে /var/log/auth.log আছে এবং লাম আপ / লক আউট ইভেন্টগুলির সাথে পিএএম বা স্ক্রীনসেভার অ্যাপের কোনও বার্তা নেই।
ychaouche

4

হ্যাঁ এটি আপনার জন্য কোথাও লগ করা হয়েছে বলে মনে হয় না। @ টতুডাজুজুর একটি ভাল সমাধান রয়েছে তাই আমি ভেবেছিলাম যে আমি আগ্রহী তাদের জন্য এটি পোর্ট করা (এবং জিনোম ব্যবহারের উপর নির্ভরতা সরিয়ে ফেলতে পারি, ডেস্কটপ পরিবেশ নির্বিশেষে এটি কাজ করা উচিত)।
আপনার যদি পটভূমিতে এই চলমান থাকে এবং এটি কোনও লগ ফাইলে পাইপ করুন তবে আপনার লগইন করতে হবে।

#!/bin/bash

#prints out, among other things;
#      string "org.kde.screensaver"
#transform it to 'org.kde.screensaver'
service=$(\
    dbus-send \
        --session \
        --dest=org.freedesktop.DBus \
        --type=method_call \
        --print-reply \
        /org/freedesktop/DBus org.freedesktop.DBus.ListNames \
    | grep -o '[^"]*.screensaver'
)

#prints out, among other things;
#method bool org.freedesktop.ScreenSaver.SetActive(bool e)
#transform it to 'org.freedesktop.ScreenSaver'
interface=$(
    qdbus \
        $service /ScreenSaver \
    | grep -oP '[^ ]*(?=.SetActive)'
)

path='/ScreenSaver'

#monitor it with a while loop
dbus-monitor "type='signal',interface='$interface',member='ActiveChanged',path='$path'" \
| while read -r line; do
    #ignore the metadata and pull the 'boolean <true/false>' line
    read line

    #check if it is set to true
    if echo $line | grep -q 'true'; then
        echo "Locked at $(date)"
    else
        echo "Unlocked at $(date)"
    fi
done

এটি আমার ফেডোরায় কে-ডি-র সাহায্যে দৌড়াদৌড়ি করেছে তবে আমি অনুমান করি যে এটি অন্যান্য জিনিসের মতো জিনোম এবং সেটেরার সাথে কাজ করবে।
আপনার grepসমর্থন না করলে আপনার সমস্যা থাকতে পারে -P(এক্ষেত্রে আপনি কেবল ব্যবহার করতে পারেন sed)।


2

এটির উত্তরও দিতে পারে যদিও অন্যদের অনুরূপ প্রয়োজন (বা কৌতূহলী মন) দিয়ে সহায়তা করার জন্য এটি আমার উত্তর না (আমার বস আমাকে সমাধানটি সরবরাহ করেছিলেন)।

tl; dr: লকস্ক্রিনের সক্রিয় / নিষ্ক্রিয় সংকেত পেতে ডি-বাস ব্যবহার করুন।

দেখে মনে হচ্ছে ডি-বাস মেসেজিং ব্যাপকভাবে জিনোম অ্যাপ্লিকেশনগুলি এবং স্ক্রিনস্যাভার অ্যাপ্লিকেশন দ্বারা বিশেষত সমর্থিত এবং এটি দেখে মনে হয় যে জিনোম-স্ক্রীনসেভার অ্যাপ্লিকেশনটি জিনোম শেলের জন্য সরকারী লকিং অ্যাপ্লিকেশন।

সুতরাং, এটি পরীক্ষা করার জন্য, আমি কেবল dbus- মনিটরের উপর দৌড়েছি এবং প্রতিক্রিয়াটি পেয়েছি :

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'"

এই ক্রিয়াকলাপটি কোনও ফাইলে লগ করার জন্য আমি একটি অজগর স্ক্রিপ্ট লিখেছি:

#!/usr/bin/env python
from datetime import datetime
import os
import pwd
import subprocess
import time

LOG_FILE = os.path.expanduser('~/hours_log.csv')


cmd = subprocess.Popen(["dbus-monitor \"type='signal',interface="
                        "'org.gnome.ScreenSaver'\""], shell=True,
                       stdout=subprocess.PIPE)

running = 0
while 1:
    time.sleep(0.1)
    if running:
        output = cmd.stdout.readline()
        status = 'unlocked' if 'true' in output else 'locked'
        new_line = "{time} {user} {status} the screen\n".format(
            time=datetime.now().ctime(),
            user=pwd.getpwuid(os.getuid())[0],
            status=status
        )
        with open(LOG_FILE, 'a') as f:
            f.write(new_line)

        running = 0
    line = cmd.stdout.readline()
    if "ActiveChange" in line and 'org.gnome.ScreenSaver' in line:
        running = 1

পোলিং? কি সম্পদের অপচয়।
ychaouche

2

আপনি কোন স্ক্রিনসেভার ব্যবহার করছেন? যদি এটি এক্সস্ক্রেনসেভার হয় তবে লগ অপশনগুলি চালু করুন এবং লগ ফাইলটি পর্যবেক্ষণ করার চেষ্টা করুন।

http://www.jwz.org/xscreensaver/man1.html


আমি কেবল নিজের উত্তরে লিখেছি যে জিনোম শেল-এর ডিফল্টটি হ'ল জিনোম-স্ক্রিনসেভার, যা আমি যা ব্যবহার করছি তা প্রদর্শিত হয় (যেহেতু ফেডোরা ডিফল্টরূপে জিনোম শেল ইনস্টল করে) ...
tutuDajuju

2

লিনাক্স মিন্ট 17.1। আমার dbus স্ট্রিংটি দেখতে এমন দেখাচ্ছে:

 dbus-monitor --session "type='signal',path='/org/cinnamon/ScreenSaver'" 

বা এটি দেখতে দেখতে হতে পারে

dbus-monitor --session "type='signal',interface='org.cinnamon.ScreenSaver'"

2

আমি এক্সএফসিই এবং এক্সএসক্রেনসভার ব্যবহার করছি। Dbus- মনিটরের এক্সক্রেইনসেভার লগিং আমার পক্ষে কাজ করে না। তাই আমি আরও একটি সমাধান খুঁজে পেয়েছি। আমি আশা করি এটি অন্যান্য ব্যক্তির পক্ষেও ব্যবহারযোগ্য হবে।

আমি এই কমান্ডটি এক্সএফসিইটি শুরুর সময় চালাচ্ছি:

/usr/bin/xscreensaver-command -watch |logger -t lockLogger

লক / আনলক ইভেন্টগুলি লগ হয় /var/log/messagesএবং এর মাধ্যমে পুনরুদ্ধার করা যায়

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