You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
183 lines
5.9 KiB
183 lines
5.9 KiB
diff --color -ru a/usbguard-notifier-0.0.6/man/usbguard-notifier.1 b/usbguard-notifier-0.0.6/man/usbguard-notifier.1
|
|
--- a/usbguard-notifier-0.0.6/man/usbguard-notifier.1 2021-10-14 12:44:57.816146101 +0200
|
|
+++ b/usbguard-notifier-0.0.6/man/usbguard-notifier.1 2021-10-14 12:46:14.442519466 +0200
|
|
@@ -39,7 +39,12 @@
|
|
.PP
|
|
\fB\-w, \-\-wait\fR
|
|
.RS 4
|
|
-Wait until an active IPC connection is estabilished\&.
|
|
+Wait until an active IPC connection is estabilished\&. ie\&. infinite number of attempts\&.
|
|
+.RE
|
|
+.PP
|
|
+\fB\-n, \-\-num\-attempts\fR \fInum\fR
|
|
+.RS 4
|
|
+Number of IPC connection attempts. Window between each attempt is 1 second\&. The default number of attempts is 3\&.
|
|
.RE
|
|
.PP
|
|
\fB\-d, \-\-debug\fR
|
|
@@ -51,6 +56,64 @@
|
|
.RS 4
|
|
Show help\&.
|
|
.RE
|
|
+.SH "HOW TO START"
|
|
+.sp
|
|
+In order to make usbguard\-notifier work properly, you will need to perform certain actions:
|
|
+.sp
|
|
+.RS 4
|
|
+.ie n \{\
|
|
+\h'-04' 1.\h'+01'\c
|
|
+.\}
|
|
+.el \{\
|
|
+.sp -1
|
|
+.IP " 1." 4.2
|
|
+.\}
|
|
+Each user who wants to run usbguard\-notifier service needs to have sufficient IPC privileges to connect to the usbguard IPC interface\&. To allow a specific user to listen to the device signals you can use the following command:
|
|
+
|
|
+
|
|
+\fB$ sudo usbguard add\-user\fR
|
|
+\fIUSER\fR
|
|
+\fB\-d listen\fR
|
|
+
|
|
+Or you can allow a group of users:
|
|
+
|
|
+
|
|
+\fB$ sudo usbguard add\-user \-g\fR
|
|
+\fIGROUP\fR
|
|
+\fB\-d listen\fR
|
|
+.RE
|
|
+.sp
|
|
+.RS 4
|
|
+.ie n \{\
|
|
+\h'-04' 2.\h'+01'\c
|
|
+.\}
|
|
+.el \{\
|
|
+.sp -1
|
|
+.IP " 2." 4.2
|
|
+.\}
|
|
+Now, you need a running usbguard\-daemon instance to connect to\&. Start the usbguard service or restart it if it is already running\&.
|
|
+.RE
|
|
+.sp
|
|
+.RS 4
|
|
+.ie n \{\
|
|
+\h'-04' 3.\h'+01'\c
|
|
+.\}
|
|
+.el \{\
|
|
+.sp -1
|
|
+.IP " 3." 4.2
|
|
+.\}
|
|
+After configuring IPC privileges and starting up the usbguard\-daemon, the user can now start the usbguard\-notifier service:
|
|
+
|
|
+
|
|
+\fB$ systemctl start \-\-user usbguard\-notifier\&.service\fR
|
|
+
|
|
+Optionally, the user can enable the usbguard\-notifier service to start automatically after the login:
|
|
+
|
|
+
|
|
+\fB$ systemctl enable \-\-user usbguard\-notifier\&.service\fR
|
|
+.RE
|
|
+.sp
|
|
+The usbguard\-notifier should now be running\&. Anytime a USB device gets inserted/ejected or allowed/blocked a message will pop up in the user\(cqs graphical interface\&.
|
|
.SH "SEE ALSO"
|
|
.sp
|
|
usbguard(1)
|
|
diff --color -ru a/usbguard-notifier-0.0.6/src/Main.cpp b/usbguard-notifier-0.0.6/src/Main.cpp
|
|
--- a/usbguard-notifier-0.0.6/src/Main.cpp 2020-03-04 08:59:49.138771474 +0100
|
|
+++ b/usbguard-notifier-0.0.6/src/Main.cpp 2021-10-14 12:46:14.443519484 +0200
|
|
@@ -20,6 +20,7 @@
|
|
#include "Log.hpp"
|
|
#include "Notifier.hpp"
|
|
|
|
+#include <cstdlib>
|
|
#include <getopt.h>
|
|
#include <iostream>
|
|
#include <libgen.h>
|
|
@@ -27,10 +28,11 @@
|
|
|
|
#include <usbguard/Exception.hpp>
|
|
|
|
-static const char* short_options = "wdh";
|
|
+static const char* short_options = "wn:dh";
|
|
|
|
static const struct ::option long_options[] = {
|
|
{ "wait", no_argument, nullptr, 'w' },
|
|
+ { "num-attempts", required_argument, nullptr, 'n' },
|
|
{ "debug", no_argument, nullptr, 'd' },
|
|
{ "help", no_argument, nullptr, 'h' }
|
|
};
|
|
@@ -40,22 +42,26 @@
|
|
out << "Usage: " << app_name << " [OPTIONS]" << std::endl;
|
|
out << std::endl;
|
|
out << "Options:" << std::endl;
|
|
- out << " -w, --wait Wait until an active IPC connection is estabilished." << std::endl;
|
|
- out << " -d, --debug Enable debug mode." << std::endl;
|
|
- out << " -h, --help Show this usage message." << std::endl;
|
|
+ out << " -w, --wait Wait until an active IPC connection is estabilished." << std::endl;
|
|
+ out << " -n, --num-attempts <num> Number of IPC connection attempts." << std::endl;
|
|
+ out << " -d, --debug Enable debug mode." << std::endl;
|
|
+ out << " -h, --help Show this usage message." << std::endl;
|
|
}
|
|
|
|
int main(int argc, char** argv)
|
|
{
|
|
const std::string app_name(::basename(*argv));
|
|
bool wait_connection = false, debug = false;
|
|
- int opt;
|
|
+ int opt, num_attempts = 3;
|
|
|
|
while ((opt = getopt_long(argc, argv, short_options, long_options, nullptr)) != -1) {
|
|
switch (opt) {
|
|
case 'w':
|
|
wait_connection = true;
|
|
break;
|
|
+ case 'n':
|
|
+ num_attempts = std::atoi(optarg);
|
|
+ break;
|
|
case 'd':
|
|
debug = true;
|
|
break;
|
|
@@ -71,23 +77,26 @@
|
|
}
|
|
NOTIFIER_LOGGER.setDebugMode(debug);
|
|
|
|
- for (;;) {
|
|
+ bool print_err = true;
|
|
+ for (int i = 0; wait_connection || i < num_attempts; ++i) {
|
|
try {
|
|
usbguardNotifier::Notifier notifier(app_name);
|
|
notifier.connect();
|
|
std::cout << "Connection has been established" << std::endl;
|
|
+ print_err = true;
|
|
+ i = 0;
|
|
notifier.wait();
|
|
} catch (const std::runtime_error& e) {
|
|
std::cerr << "Error:" << e.what() << std::endl;
|
|
return EXIT_FAILURE;
|
|
} catch (const usbguard::Exception& e) {
|
|
- std::cerr << "IPC connection failure!" << e.message() << std::endl;
|
|
- std::cerr << "Check if usbguard-daemon is running in the background" << std::endl;
|
|
- if (!wait_connection) {
|
|
- break;
|
|
+ if (print_err) {
|
|
+ print_err = false;
|
|
+ std::cerr << "IPC connection failure!" << e.message() << std::endl;
|
|
+ std::cerr << "Check if usbguard-daemon is running in the background" << std::endl;
|
|
}
|
|
- sleep(1);
|
|
}
|
|
+ sleep(1);
|
|
}
|
|
return EXIT_SUCCESS;
|
|
}
|
|
diff --color -ru a/usbguard-notifier-0.0.6/usbguard-notifier.service.in b/usbguard-notifier-0.0.6/usbguard-notifier.service.in
|
|
--- a/usbguard-notifier-0.0.6/usbguard-notifier.service.in 2020-03-04 09:00:32.019254871 +0100
|
|
+++ b/usbguard-notifier-0.0.6/usbguard-notifier.service.in 2021-10-14 12:46:14.444519502 +0200
|
|
@@ -3,7 +3,7 @@
|
|
After=usbguard.service
|
|
|
|
[Service]
|
|
-ExecStart=%bindir%/usbguard-notifier -w
|
|
+ExecStart=%bindir%/usbguard-notifier
|
|
|
|
[Install]
|
|
WantedBy=default.target
|