When working with CentOS 7.4 and Apache 2.4.6, many administrators notice these recurring entries in /var/log/secure
during HTTPD service restarts:
Jan 19 8:23:48 localhost polkitd[493]: Registered Authentication Agent for unix-process:5739:174943
Jan 19 8:23:49 localhost polkitd[493]: Unregistered Authentication Agent for unix-process:5739:174943
These messages originate from PolicyKit (polkit), the privilege management framework in Linux. They indicate temporary authentication agents being spawned during service management operations.
The messages appear because:
- Apache's systemd unit file may include Polkit-related directives
- Your server has active SELinux policies enforcing privilege checks
- The restart command triggers temporary authentication requests
Polkit handles authorization for privileged operations. During systemctl restart httpd
, the process:
- Spawns a temporary pkttyagent (process 5739 in our example)
- Registers it with polkitd (process 493)
- Completes authorization
- Unregisters the agent
Option 1: Suppress the messages (if they're just noise)
# Create a custom rsyslog filter
cat > /etc/rsyslog.d/ignore_polkit.conf << EOF
:msg, contains, "Registered Authentication Agent" ~
:msg, contains, "Unregistered Authentication Agent" ~
EOF
systemctl restart rsyslog
Option 2: Modify Polkit policies (advanced)
# Create custom policy for Apache
cat > /etc/polkit-1/rules.d/10-httpd-restart.rules << EOF
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.systemd1.manage-units" &&
action.lookup("unit") == "httpd.service") {
return polkit.Result.YES;
}
});
EOF
After implementing changes, verify with:
# Clear existing logs
> /var/log/secure
# Restart Apache
systemctl restart httpd
# Check logs
tail -n 5 /var/log/secure
While these messages are harmless, frequent restarts may cause:
- Minor increase in disk I/O from log writes
- Small CPU overhead from Polkit processing
- Potential SELinux context switching delays
When restarting Apache on CentOS 7.4 with systemctl restart httpd
, you'll notice these entries in /var/log/secure
:
Jan 19 8:23:48 localhost polkitd[493]: Registered Authentication Agent for unix-process:5739:174943 (system bus name :1.119 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
Jan 19 8:23:49 localhost polkitd[493]: Unregistered Authentication Agent for unix-process:5739:174943 (system bus name :1.119, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
These messages originate from PolicyKit (polkit), the privilege management system in Linux. When Apache (or any service) restarts via systemd, polkit spawns a temporary authentication agent (pkttyagent
) to handle potential privilege escalations.
The complete sequence is:
- A systemd unit requests a service restart
- Polkit checks if authentication is needed
- pkttyagent registers as the authentication handler
- Since no actual authentication is required, it immediately unregisters
While these messages might look concerning, they're completely normal system behavior when:
- Running on CentOS/RHEL 7.x
- Using systemd to manage services
- The service doesn't actually require privileged access
Option 1: Filter the Logs (Recommended)
If the messages are just cluttering your logs, configure rsyslog to filter them out:
# Create a new rsyslog filter file
cat > /etc/rsyslog.d/ignore_polkit.conf << EOF
:msg, contains, "Registered Authentication Agent" ~
:msg, contains, "Unregistered Authentication Agent" ~
EOF
systemctl restart rsyslog
Option 2: Modify Polkit Configuration
Reduce polkit logging level by editing /etc/polkit-1/rules.d/49-nopasswd_global.rules
:
polkit.addRule(function(action, subject) {
if (subject.isInGroup("apache")) {
return polkit.Result.NOT_HANDLED;
}
});
Option 3: Alternative Restart Method
Use direct Apache control instead of systemd:
apachectl graceful
The authentication agent (pkttyagent
) is part of polkit's architecture for handling interactive authentication. In modern systems (CentOS 8/RHEL 8+), this behavior was modified to reduce log noise.
You can verify polkit's version with:
rpm -q polkit
For CentOS 7, you'll typically see version 0.112, where this behavior is expected.
If you're using log monitoring tools, you might want to create exclusion rules for these messages. For example, in Logstash:
filter {
if [message] =~ /(Registered|Unregistered) Authentication Agent/ {
drop {}
}
}
For organizations with strict auditing requirements, consider documenting this as expected behavior rather than suppressing the messages entirely.