mirror of
https://github.com/systemd/systemd.git
synced 2024-11-05 23:51:28 +03:00
a37610d0f8
The distro rules are the best example you can get and the use of dev.d/ is no longer recommended. Signed-off-by: Kay Sievers <kay.sievers@suse.de>
53 lines
1.2 KiB
Bash
53 lines
1.2 KiB
Bash
#!/bin/sh
|
|
|
|
# Fedora solution to set the ownership/permissions of s device to the local
|
|
# logged in user. Uses the program pam_console_setowner to match the names of
|
|
# the device node and the symlinks against a device list and applies the
|
|
# configured ownership and permission to the node.
|
|
|
|
[ "$ACTION" != "add" ] && exit 0
|
|
|
|
# we do not have console users in rc.sysinit
|
|
[ -n "$IN_INITLOG" ] && exit 0
|
|
|
|
if [ -x /sbin/pam_console_setowner -a -f /var/run/console/console.lock \
|
|
-a -e "$DEVNAME" ]; then
|
|
|
|
if [ -x /usr/bin/logger ]; then
|
|
LOGGER=/usr/bin/logger
|
|
elif [ -x /bin/logger ]; then
|
|
LOGGER=/bin/logger
|
|
else
|
|
unset LOGGER
|
|
fi
|
|
#
|
|
# for diagnostics
|
|
#
|
|
if [ -t 1 -o -z "$LOGGER" ]; then
|
|
mesg () {
|
|
echo "$@"
|
|
}
|
|
else
|
|
mesg () {
|
|
$LOGGER -t $(basename $0)"[$$]" "$@"
|
|
}
|
|
fi
|
|
|
|
debug_mesg () {
|
|
test "$udev_log" = "" -o "$udev_log" = "no" && return
|
|
mesg "$@"
|
|
}
|
|
|
|
if [ -f /etc/udev/udev.conf ]; then
|
|
. /etc/udev/udev.conf
|
|
fi
|
|
|
|
SYMLINKS=""
|
|
for i in $(/usr/bin/udevinfo -q symlink -p "$DEVPATH"); do
|
|
[ $? -gt 0 ] && break
|
|
SYMLINKS="$SYMLINKS ${udev_root%%/}/$i"
|
|
done
|
|
debug_mesg "Restoring console permissions for $DEVNAME $SYMLINKS"
|
|
/sbin/pam_console_setowner "$DEVNAME" $SYMLINKS
|
|
fi
|