|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21572/root/lib/udev/ |
Upload File : |
#!/bin/bash
#
# convert old udev permissions.d file to the new rules.d format.
# revision 2
#
# Written by Michael Buesch <mbuesch@freenet.de>
# This is released into the Public Domain.
#
perm_file="$1"
function processLine
{
local line="$1"
if [ -z "$line" ]; then
echo
return 1
fi
if [ "`echo $line | cut -b1`" = "#" ]; then
# comment
echo "$line"
return 2
fi
local i=
local kern_name=
local owner=
local group=
local mode=
for ((i = 1; i <= 4; i++)); do
local tmp="`echo $line | cut -d: -f $i`"
if [ $i -eq 1 ]; then
kern_name="$tmp"
elif [ $i -eq 2 ]; then
owner="$tmp"
elif [ $i -eq 3 ]; then
group="$tmp"
elif [ $i -eq 4 ]; then
mode="$tmp"
fi
done
if [ -z "$kern_name" ]; then
echo "Malformed line: \"$line\"" >&2
return 3
fi
local need_rule="no"
local out="KERNEL==\"$kern_name\""
local kern_name_len="`echo $kern_name | wc -c`"
kern_name_len="`expr $kern_name_len + 9`"
local num_tabs="`expr 32 - $kern_name_len`"
num_tabs="`expr $num_tabs / 8`"
while [ $num_tabs -gt 0 ]; do
out="${out}\t"
num_tabs="`expr $num_tabs - 1`"
done
if [ -n "$owner" ] && [ "$owner" != "root" ]; then
out="${out}, OWNER=\"$owner\""
need_rule="yes"
fi
if [ -n "$group" ] && [ "$group" != "root" ]; then
out="${out}, GROUP=\"$group\""
need_rule="yes"
fi
if [ -n "$mode" ] && [ "$mode" != "0600" ] && [ "$mode" != "600" ]; then
out="${out}, MODE=\"$mode\""
need_rule="yes"
fi
if [ "$need_rule" = "no" ]; then
echo "Do not need a rule for: \"$line\" (It's udev default permissions)" >&2
return 4
fi
echo -e "$out"
return 0
}
function processInput
{
echo "Converting udev permissions file. This can take a while..." >&2
cat $perm_file | \
while read line; do
processLine "$line"
done
echo "done." >&2
}
if ! [ -r "$perm_file" ]; then
echo "Could not read input file" >&2
echo "Usage: $0 old_permission_file > new_rules_file" >&2
exit 1
fi
processInput
exit 0