mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 06:12:32 +00:00
tools: Use install
instead of touch/chown
combination
touch + chown can have a gap between the commands (or the second failed). This could lead to unexpected permissions (root, instead of frr) for some .conf files or directories. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
This commit is contained in:
parent
0407bb2dc0
commit
972cdc560e
18
tools/frr.in
18
tools/frr.in
@ -53,13 +53,6 @@ vtyfile()
|
|||||||
echo "$V_PATH/$1.vty"
|
echo "$V_PATH/$1.vty"
|
||||||
}
|
}
|
||||||
|
|
||||||
chownfrr()
|
|
||||||
{
|
|
||||||
test -n "$FRR_USER" && chown "$FRR_USER" "$1"
|
|
||||||
test -n "$FRR_GROUP" && chgrp "$FRR_GROUP" "$1"
|
|
||||||
test -n "$FRR_CONFIG_MODE" && chmod "$FRR_CONFIG_MODE" "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Check if daemon is started by using the pidfile.
|
# Check if daemon is started by using the pidfile.
|
||||||
started()
|
started()
|
||||||
{
|
{
|
||||||
@ -103,12 +96,10 @@ check_daemon()
|
|||||||
# check for config file
|
# check for config file
|
||||||
if [ -n "$2" ]; then
|
if [ -n "$2" ]; then
|
||||||
if [ ! -r "$C_PATH/$1-$2.conf" ]; then
|
if [ ! -r "$C_PATH/$1-$2.conf" ]; then
|
||||||
touch "$C_PATH/$1-$2.conf"
|
install -g "$FRR_GROUP" -o "$FRR_USER" -m "$FRR_CONFIG_MODE" /dev/null "$C_PATH/$1-$2.conf"
|
||||||
chownfrr "$C_PATH/$1-$2.conf"
|
|
||||||
fi
|
fi
|
||||||
elif [ ! -r "$C_PATH/$1.conf" ]; then
|
elif [ ! -r "$C_PATH/$1.conf" ]; then
|
||||||
touch "$C_PATH/$1.conf"
|
install -g "$FRR_GROUP" -o "$FRR_USER" -m "$FRR_CONFIG_MODE" /dev/null "$C_PATH/$1.conf"
|
||||||
chownfrr "$C_PATH/$1.conf"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
@ -533,9 +524,8 @@ convert_daemon_prios
|
|||||||
|
|
||||||
if [ ! -d $V_PATH ]; then
|
if [ ! -d $V_PATH ]; then
|
||||||
echo "Creating $V_PATH"
|
echo "Creating $V_PATH"
|
||||||
mkdir -p $V_PATH
|
install -g "$FRR_GROUP" -o "$FRR_USER" -m "$FRR_CONFIG_MODE" -d /proc "$V_PATH"
|
||||||
chownfrr $V_PATH
|
chmod gu+x "${V_PATH}"
|
||||||
chmod 755 /$V_PATH
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$3" ] && [ "$3" != "all" ]; then
|
if [ -n "$3" ] && [ "$3" != "all" ]; then
|
||||||
|
@ -62,15 +62,6 @@ debug() {
|
|||||||
printf '\n' >&2
|
printf '\n' >&2
|
||||||
}
|
}
|
||||||
|
|
||||||
chownfrr() {
|
|
||||||
[ -n "$FRR_USER" ] && chown "$FRR_USER" "$1"
|
|
||||||
[ -n "$FRR_GROUP" ] && chgrp "$FRR_GROUP" "$1"
|
|
||||||
[ -n "$FRR_CONFIG_MODE" ] && chmod "$FRR_CONFIG_MODE" "$1"
|
|
||||||
if [ -d "$1" ]; then
|
|
||||||
chmod gu+x "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
vtysh_b () {
|
vtysh_b () {
|
||||||
[ "$1" = "watchfrr" ] && return 0
|
[ "$1" = "watchfrr" ] && return 0
|
||||||
if [ ! -r "$C_PATH/frr.conf" ]; then
|
if [ ! -r "$C_PATH/frr.conf" ]; then
|
||||||
@ -152,8 +143,7 @@ daemon_prep() {
|
|||||||
|
|
||||||
cfg="$C_PATH/$daemon${inst:+-$inst}.conf"
|
cfg="$C_PATH/$daemon${inst:+-$inst}.conf"
|
||||||
if [ ! -r "$cfg" ]; then
|
if [ ! -r "$cfg" ]; then
|
||||||
touch "$cfg"
|
install -g "$FRR_GROUP" -o "$FRR_USER" -m "$FRR_CONFIG_MODE" /dev/null "$cfg"
|
||||||
chownfrr "$cfg"
|
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@ -171,8 +161,8 @@ daemon_start() {
|
|||||||
[ "$MAX_FDS" != "" ] && ulimit -n "$MAX_FDS" > /dev/null 2> /dev/null
|
[ "$MAX_FDS" != "" ] && ulimit -n "$MAX_FDS" > /dev/null 2> /dev/null
|
||||||
daemon_prep "$daemon" "$inst" || return 1
|
daemon_prep "$daemon" "$inst" || return 1
|
||||||
if test ! -d "$V_PATH"; then
|
if test ! -d "$V_PATH"; then
|
||||||
mkdir -p "$V_PATH"
|
install -g "$FRR_GROUP" -o "$FRR_USER" -m "$FRR_CONFIG_MODE" -d /proc "$V_PATH"
|
||||||
chownfrr "$V_PATH"
|
chmod gu+x "${V_PATH}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
eval wrap="\$${daemon}_wrap"
|
eval wrap="\$${daemon}_wrap"
|
||||||
|
Loading…
Reference in New Issue
Block a user