Страница 1 из 1

Изменеие скрипта запуска c установкой umask для DELUGE

Добавлено: 2012-02-29 11:30:15
oleg3232
Ребята . профессионалы !

Исходные данные: FreeBSD 9.0 Release amd64

Установил из портов deluge-1.3.3,1

Настроил в rc.conf

Код: Выделить всё

#DELUGE
deluged_enable="YES"
deluged_user="torrent"
deluged_confdir="/home/torrent/config/"
deluged_loglevel="error"
deluged_logfile="/home/torrent/deluged.log"
#delugew_enable="YES"
Все прекрасно работает. все замечательно, но вскоре встала проблема с правами на
создаваемые deluge файлы. Пользователь из под которого запускается deluge имеет по умолчанию
umak 022, а надо бы выставить ему umask 000. пользователь не имеет локального шела - nologin.

Перелопатил кучу всего в google на эту тему - главный вывод - модификация стартового скрипта,
где изменялась бы umask. В этом не силен. Все мои попытки потерпели крах. Обращаюсь за профи
за помощью .
Стартовый скрипт /usr/local/etc/rc.d/deluged

Код: Выделить всё

#!/bin/sh

# $FreeBSD: ports/net-p2p/deluge/files/deluged.in,v 1.3 2012/01/14 08:56:43 dougb Exp $
#
# PROVIDE: deluged
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# MANDATORY:
#
# deluged_enable (bool):        Set to NO by default.
#                               Set it to YES to enable deluged.
#
# deluged_user (str):           The UNPRIVILEGED user to run as
#
# OPTIONAL:
#
# deluged_flags (str):          Set as needed
#                               See deluged(1) for more information
#
# deluged_confdir (path):       Set to /home/$deluged_user/.config/deluge
#                               by default
#
# deluged_loglevel (str):       Set to "error" by default
#
# deluged_logfile (path):       Set to /var/tmp/deluged.log by default

. /etc/rc.subr

name="deluged"
rcvar=deluged_enable

command=/usr/local/bin/${name}
command_interpreter=/usr/local/bin/python2.7

pidfile=/var/run/${name}/pid
start_precmd=${name}_prestart
stop_postcmd=${name}_poststop

deluged_prestart()
{
        if [ "$deluged_user" = 'asjklasdfjklasdf' ]; then
                err 1 "You must set deluged_user to a real, unprivileged user"
        fi

        if [ ! -d "/var/run/${name}" ]; then
                if [ -e "/var/run/${name}" ]; then
                        unlink /var/run/${name}
                fi
                mkdir -p /var/run/${name}
        fi

        chmod 0755 /var/run/${name}
        chown -R $deluged_user /var/run/${name}
        su -m torrent -c umask
}

deluged_poststop()
{
        [ -e "$pidfile" ] && unlink $pidfile
        [ -d "${pidfile%/pid}" ] && rmdir ${pidfile%/pid}

        [ -e "$deluged_logfile" -a ! -s "$deluged_logfile" ] &&
                unlink $deluged_logfile
}

load_rc_config $name

: ${deluged_enable:="NO"}
: ${deluged_user:="asjklasdfjklasdf"}
: ${deluged_confdir:="/home/${deluged_user}/.config/deluge"}
: ${deluged_loglevel:="error"}
: ${deluged_logfile:="/var/tmp/${name}.log"}

required_dirs="$deluged_confdir"
command_args="-c $required_dirs -L $deluged_loglevel -l $deluged_logfile -P $pidfile"

run_rc_command "$1"


Re: Изменеие скрипта запуска c установкой umask для DELUGE

Добавлено: 2012-02-29 11:54:43
oleg3232
В стартовом скрипте - это мое творчество su -m torrent -c umask - этой строки нет -можно удалить.
Не могу найти как отредактировать пост свой.

Re: Изменеие скрипта запуска c установкой umask для DELUGE

Добавлено: 2012-02-29 11:57:52
hizel
посмотрите man login.conf

Re: Изменеие скрипта запуска c установкой umask для DELUGE

Добавлено: 2012-02-29 12:05:49
oleg3232
hizel писал(а):посмотрите man login.conf
Копал в этом направлении. Добавил класс для пользователя torrent и соответственно присвоил его пользователю torrent
Описание класса скопировано с класса default , за исключением изменения umask на 0
После изменений была выполнена команда #cap_mkdb /etc/login.conf
Описание класса в login.conf

Код: Выделить всё

torrent:\
        :passwd_format=md5:\
        :copyright=/etc/COPYRIGHT:\
        :welcome=/etc/motd:\
        :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\
        :path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin ~/bin:\
        :nologin=/var/run/nologin:\
        :cputime=unlimited:\
        :datasize=unlimited:\
        :stacksize=unlimited:\
        :memorylocked=unlimited:\
        :memoryuse=unlimited:\
        :filesize=unlimited:\
        :coredumpsize=unlimited:\
        :openfiles=unlimited:\
        :maxproc=unlimited:\
        :sbsize=unlimited:\
        :vmemoryuse=unlimited:\
        :swapuse=unlimited:\
        :pseudoterminals=unlimited:\
        :priority=0:\
        :ignoretime@:\
        :umask=0:


Re: Изменеие скрипта запуска c установкой umask для DELUGE

Добавлено: 2012-02-29 13:13:31
oleg3232
Проблема актуальна!!!

Re: Изменеие скрипта запуска c установкой umask для DELUGE

Добавлено: 2012-02-29 13:53:26
kpp
А если указать маску первой строкой в скрипте?

Код: Выделить всё

umask 000

Re: Изменеие скрипта запуска c установкой umask для DELUGE

Добавлено: 2012-02-29 14:26:19
oleg3232
kpp писал(а):А если указать маску первой строкой в скрипте?

Код: Выделить всё

umask 000
Спасибо! Получилось!

Большая просьба , объяснить , почему сработало именно , в случае , когда я поставил самой первой строкой.
Когда ставил в середине скрипта среди параметров - не работало.

Re: Изменеие скрипта запуска c установкой umask для DELUGE

Добавлено: 2012-02-29 14:37:48
kpp
Если вы о своей строке

Код: Выделить всё

su -m torrent -c umask
, то мне не ясно чего вы хотели получить от нее в итоге ;)

Re: Изменеие скрипта запуска c установкой umask для DELUGE

Добавлено: 2012-02-29 14:44:52
oleg3232
kpp писал(а):Если вы о своей строке

Код: Выделить всё

su -m torrent -c umask
, то мне не ясно чего вы хотели получить от нее в итоге ;)
там до этого была еще переменная введена umask , которая присваивалась по желанию. Но это возможно бред - признаю, так как совсем профан по написанию скриптов(да и вообще начинающий).

Re: Изменеие скрипта запуска c установкой umask для DELUGE

Добавлено: 2012-03-02 12:55:00
oleg3232
Как я уже и писал , что добавление в стартовый скрипт строки umask 0000 позволило добиться требуемого изменения. Но появилось одно неприятное НО !! При перезапуске демона ./deluged restart из консоли ручками - все заработало, но при перезапуске системы и автоматическом старте демона umask не переназначается, то есть не срабатывает команда в скрипте.
В связи с чем вопрос остается актуальным !!!

Текущий скрипт /usr/local/etc/rc.d/deluged

Код: Выделить всё

#!/bin/sh

# $FreeBSD: ports/net-p2p/deluge/files/deluged.in,v 1.3 2012/01/14 08:56:43 dougb Exp $
#
# PROVIDE: deluged
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# MANDATORY:
#
# deluged_enable (bool):        Set to NO by default.
#                               Set it to YES to enable deluged.
#
# deluged_user (str):           The UNPRIVILEGED user to run as
#
# OPTIONAL:
#
# deluged_flags (str):          Set as needed
#                               See deluged(1) for more information
#
# deluged_confdir (path):       Set to /home/$deluged_user/.config/deluge
#                               by default
#
# deluged_loglevel (str):       Set to "error" by default
#
# deluged_logfile (path):       Set to /var/tmp/deluged.log by default

. /etc/rc.subr

umask 000

name="deluged"
rcvar=deluged_enable

command=/usr/local/bin/${name}
command_interpreter=/usr/local/bin/python2.7

pidfile=/var/run/${name}/pid

start_precmd=${name}_prestart
stop_postcmd=${name}_poststop


deluged_prestart()
{
        if [ "$deluged_user" = 'asjklasdfjklasdf' ]; then
                err 1 "You must set deluged_user to a real, unprivileged user"
        fi

        if [ ! -d "/var/run/${name}" ]; then
                if [ -e "/var/run/${name}" ]; then
                        unlink /var/run/${name}
                fi
                mkdir -p /var/run/${name}
        fi

        chmod 0755 /var/run/${name}
        chown -R $deluged_user /var/run/${name}
}

deluged_poststop()
{
        [ -e "$pidfile" ] && unlink $pidfile
        [ -d "${pidfile%/pid}" ] && rmdir ${pidfile%/pid}

        [ -e "$deluged_logfile" -a ! -s "$deluged_logfile" ] &&
                unlink $deluged_logfile
}

load_rc_config $name

: ${deluged_enable:="NO"}
: ${deluged_user:="asjklasdfjklasdf"}
: ${deluged_confdir:="/home/${deluged_user}/.config/deluge"}
: ${deluged_loglevel:="error"}
: ${deluged_logfile:="/var/tmp/${name}.log"}

required_dirs="$deluged_confdir"
command_args="-c $required_dirs -L $deluged_loglevel -l $deluged_logfile -P $pidfile"

run_rc_command "$1"

Re: Изменеие скрипта запуска c установкой umask для DELUGE

Добавлено: 2012-03-05 9:33:35
oleg3232
Никто не поможет ??

Re: Изменеие скрипта запуска c установкой umask для DELUGE

Добавлено: 2012-06-19 22:05:14
linecommander
oleg3232 писал(а):Настроил в rc.conf

Код: Выделить всё

#DELUGE
deluged_enable="YES"
deluged_user="torrent"
deluged_confdir="/home/torrent/config/"
deluged_loglevel="error"
deluged_logfile="/home/torrent/deluged.log"
#delugew_enable="YES"
а можно узнать зачем так сложно? у меня и без этого делюга работала;
или прошли те времена?..