URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 77525
[ Назад ]

Исходное сообщение
"FreeBSD запуск процессов от другого пользователя"

Отправлено melmaxnvk , 26-Ноя-07 11:30 
Доброго времени суток.
Имеются сервера FreeBSD (версии от 5.4 до 6.2).

Есть самописный скрипт который производит определенные действия в файловой системе - переименовывает удаляет создает директории (он крутится непрерывно). В данный момент он запущен от root (типа #sh /home/user/test.sh &). Во избежание каких либо проблем создал отдельную папку (/home/user/dir_for_test)где этот скрипт работает с файлами. В данный момент если в этом скрипте написать "rm -f -R /" то думаю он удалит всё даже ничего не сказав. Добавил в системе пользователя test (pw user add test -d /nonexistent -s /usr/sbin/nologin)
#pw user show test
#test:*:1004:1004::0:0:User &:/nonexistent:/usr/sbin/nologin

Раздал права на папку /home/user/dir_for_test
#chown -R test /home/user/dir_for_test
#chmod -R 755 /home/user/dir_for_test

Как теперь мне запустить test.sh от имени юзера test???

PS cron и crontab пожалуйста не предлагать, т.к. процесс часто стартую/стопаю

PPS
   смотрел стартовые скрипты /usr/local/etc/rc.d/mysqld.sh (он как раз и запускает   процесс mysqld от именю пользователя mysql) - но ничего подходящего не обнаружил. Как я понял, в mysqlв это выполнено не на уровне shell а на уровне бинарника.


Содержание

Сообщения в этом обсуждении
"FreeBSD запуск процессов от другого пользователя"
Отправлено kapany3 , 26-Ноя-07 12:05 
>Как теперь мне запустить test.sh от имени юзера test???

su -c test.sh test


"FreeBSD запуск процессов от другого пользователя"
Отправлено melmaxnvk , 26-Ноя-07 12:54 
>>Как теперь мне запустить test.sh от имени юзера test???
>
>su -c test.sh test

Спасибо. Не думал что все так просто ))

1) У меня точная команда выглядит так: su test -c test.sh
2) Пока не разобрался, но для этой команды нужно что бы пользователь имел shell - /usr/sbin/nologin не подходит


"FreeBSD запуск процессов от другого пользователя"
Отправлено universite , 27-Ноя-07 06:36 
>>>Как теперь мне запустить test.sh от имени юзера test???
>>
>>su -c test.sh test
>
>Спасибо. Не думал что все так просто ))
>
>1) У меня точная команда выглядит так: su test -c test.sh
>2) Пока не разобрался, но для этой команды нужно что бы пользователь
>имел shell - /usr/sbin/nologin не подходит


     -m      Leave the environment unmodified.  The invoked shell is your
             login shell, and no directory changes are made.  As a security
             precaution, if the target user's shell is a non-standard shell
             (as defined by getusershell(3)) and the caller's real uid is non-
             zero, su will fail.

Вы упорно не стремитесь почитать немного man'ов  :(