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

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
oleg3232
проходил мимо
Сообщения: 8
Зарегистрирован: 2012-02-29 10:55:19

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

Непрочитанное сообщение oleg3232 » 2012-02-29 11:30:15

Ребята . профессионалы !

Исходные данные: 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"


Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

oleg3232
проходил мимо
Сообщения: 8
Зарегистрирован: 2012-02-29 10:55:19

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

Непрочитанное сообщение oleg3232 » 2012-02-29 11:54:43

В стартовом скрипте - это мое творчество su -m torrent -c umask - этой строки нет -можно удалить.
Не могу найти как отредактировать пост свой.

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

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

Непрочитанное сообщение hizel » 2012-02-29 11:57:52

посмотрите man login.conf
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

oleg3232
проходил мимо
Сообщения: 8
Зарегистрирован: 2012-02-29 10:55:19

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

Непрочитанное сообщение oleg3232 » 2012-02-29 12:05:49

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:



kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

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

Непрочитанное сообщение kpp » 2012-02-29 13:53:26

А если указать маску первой строкой в скрипте?

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

umask 000
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

oleg3232
проходил мимо
Сообщения: 8
Зарегистрирован: 2012-02-29 10:55:19

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

Непрочитанное сообщение oleg3232 » 2012-02-29 14:26:19

kpp писал(а):А если указать маску первой строкой в скрипте?

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

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

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

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

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

Непрочитанное сообщение kpp » 2012-02-29 14:37:48

Если вы о своей строке

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

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

oleg3232
проходил мимо
Сообщения: 8
Зарегистрирован: 2012-02-29 10:55:19

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

Непрочитанное сообщение oleg3232 » 2012-02-29 14:44:52

kpp писал(а):Если вы о своей строке

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

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

oleg3232
проходил мимо
Сообщения: 8
Зарегистрирован: 2012-02-29 10:55:19

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

Непрочитанное сообщение oleg3232 » 2012-03-02 12:55:00

Как я уже и писал , что добавление в стартовый скрипт строки 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"


linecommander
мл. сержант
Сообщения: 82
Зарегистрирован: 2009-05-11 23:06:49
Откуда: Odessa

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

Непрочитанное сообщение linecommander » 2012-06-19 22:05:14

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"
а можно узнать зачем так сложно? у меня и без этого делюга работала;
или прошли те времена?..
Я не волшебник, я только учусь!