using rc.subr only by root restriction

Anthony Pankov ap00 at mail.ru
Mon Jun 26 07:33:10 UTC 2017


Hello,

> this was my fault. :)

Did you mean that you've commited a patch which change the behavior?

> There are some limits that you can set as a user.

> I think this is a fine change; but I can't speak for the correctness
> of using rc.subr as a general library set for your own purposes. :0

At this time I don't think that my patch is a best solutions.

First  of  all  I  don't see any explanation of ${name}_login_class in
rc.subr(8).  Silently  applying  'daemon'  login class to all services
seems to be very surprising. I think there are  people who modified 'daemon'
login  class  and  get  a weird  result in their system. I know how
complex to investigate such things.

May  be  we  can agree at "explicit is better than implicit" principle
and  do  not  apply  a  login  class  when  ${name}_login_class is not
declared explicity?

It will solve my problem too.


> On 23 June 2017 at 08:25, Anthony Pankov via freebsd-hackers
> <freebsd-hackers at freebsd.org> wrote:
>> Greetings
>>
>> I  was  deploying  my  new  system  based  on  FreeBSD 11 and got ф
>> surprise.
>> I have specific subsystem which use own startup scripts tied to rc.subr
>> for better integration. Those  scripts  can  be  used  not  only  by system startup but also by
>> unpriveleged user.
>> With  FreeBSD  11 in case of unpriveleged user the error appear:  "limits:
>> setrlimit datasize: Operation not permitted"
>>
>> There is a thread on a forum about the issue: https://forums.freebsd.org/threads/58304/
>>
>> I've  never  seen a warning  to do not use rc.subr in regular scripts so I
>> made it this way.
>>
>> May    be    we   can  consider  to  patch  rc.subr  and  remove  this
>> restriction?
>>
>>
>>
>> P.S. This patch helps, but may be there is a better way.
>> --- /etc/rc.subr.old    2017-06-21 07:11:39.716210000 +0300
>> +++ /etc/rc.subr        2017-06-21 07:18:21.215444000 +0300
>> @@ -1072,7 +1072,9 @@
>>                         fi
>>
>>                                         # Prepend default limits
>> -                       _doit="limits -C $_login_class $_doit"
>> +                       if [ `id -u` -eq 0 ]; then
>> +                               _doit="limits -C $_login_class $_doit"
>> +                       fi
>>
>>                                         # run the full command
>>                                         #
>>
>>
>> --
>>
>>  Anthony Pankov                          mailto:ap00 at mail.ru
>>




More information about the freebsd-hackers mailing list