Linux NFS development
 help / color / mirror / Atom feed
* [PATCH 0/1] rpcbind: install the rpcbind program to sbindir.
@ 2017-07-28 13:52 Michael Orlitzky
  2017-07-28 13:52 ` [PATCH 1/1] autotools: install rpcbind to --sbindir Michael Orlitzky
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Orlitzky @ 2017-07-28 13:52 UTC (permalink / raw)
  To: linux-nfs

According to its own man page, the rpcbind program "can only be
started by the super-user." On systems where a distinction is made, it
therefore makes sense to install rpcbind to the autotools sbindir
rather than the regular bindir where it is currently installed.

Michael Orlitzky (1):
  autotools: install rpcbind to --sbindir.

 Makefile.am                | 3 ++-
 configure.ac               | 6 +++---
 systemd/rpcbind.service.in | 2 +-
 3 files changed, 6 insertions(+), 5 deletions(-)

-- 
2.13.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/1] autotools: install rpcbind to --sbindir.
  2017-07-28 13:52 [PATCH 0/1] rpcbind: install the rpcbind program to sbindir Michael Orlitzky
@ 2017-07-28 13:52 ` Michael Orlitzky
  2017-07-31 14:55   ` Steve Dickson
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Orlitzky @ 2017-07-28 13:52 UTC (permalink / raw)
  To: linux-nfs

According to its own man page, the rpcbind program "can only be
started by the super-user." On systems where a distinction is made, it
therefore makes sense to install rpcbind to the autotools sbindir
rather than the regular bindir where it is currently installed. This
is accomplished by three small changes:

  1. Move rpcbind from bin_PROGRAMS to sbin_PROGRAMS in Makefile.am.
  2. Change @_bindir@ to @_sbindir@ in the rpcbind systemd service file.
  3. Tell configure.ac that it should substitute the value of $sbindir
     into @_sbindir@ instead of $bindir$ into @_bindir@.

The rpcinfo tool remains where it is, in bindir, since unprivileged
users are able to usefully run it. This avoids forcing maintainers to
choose between two bad options: hiding rpcinfo from unprivileged
users, or installing a useless rpcbind for them.
---
 Makefile.am                | 3 ++-
 configure.ac               | 6 +++---
 systemd/rpcbind.service.in | 2 +-
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 43c2710..c160a95 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -29,7 +29,8 @@ if LIBWRAP
 AM_CPPFLAGS +=	-DLIBWRAP
 endif
 
-bin_PROGRAMS = rpcbind rpcinfo
+bin_PROGRAMS = rpcinfo
+sbin_PROGRAMS = rpcbind
 
 rpcbind_SOURCES = \
 	src/check_bound.c \
diff --git a/configure.ac b/configure.ac
index 3790310..359a418 100644
--- a/configure.ac
+++ b/configure.ac
@@ -61,9 +61,9 @@ AC_SEARCH_LIBS([pthread_create], [pthread])
 
 AC_CHECK_HEADERS([nss.h rpcsvc/mount.h])
 
-# make bindir available for substitution in config file
+# make sbindir available for substitution in config file
 # 2 "evals" needed to expand variable names
-AC_SUBST([_bindir])
-AC_CONFIG_COMMANDS_PRE([eval eval _bindir=$bindir])
+AC_SUBST([_sbindir])
+AC_CONFIG_COMMANDS_PRE([eval eval _sbindir=$sbindir])
 
 AC_OUTPUT([Makefile systemd/rpcbind.service])
diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in
index 03a9e0b..f8cfa9f 100644
--- a/systemd/rpcbind.service.in
+++ b/systemd/rpcbind.service.in
@@ -12,7 +12,7 @@ After=rpcbind.socket
 [Service]
 Type=notify
 # distro can provide a drop-in adding EnvironmentFile=-/??? if needed.
-ExecStart=@_bindir@/rpcbind $RPCBIND_OPTIONS -w -f
+ExecStart=@_sbindir@/rpcbind $RPCBIND_OPTIONS -w -f
 
 [Install]
 WantedBy=multi-user.target
-- 
2.13.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/1] autotools: install rpcbind to --sbindir.
  2017-07-28 13:52 ` [PATCH 1/1] autotools: install rpcbind to --sbindir Michael Orlitzky
@ 2017-07-31 14:55   ` Steve Dickson
  2017-08-01  5:22     ` NeilBrown
  0 siblings, 1 reply; 6+ messages in thread
From: Steve Dickson @ 2017-07-31 14:55 UTC (permalink / raw)
  To: Michael Orlitzky, linux-nfs



On 07/28/2017 09:52 AM, Michael Orlitzky wrote:
> According to its own man page, the rpcbind program "can only be
> started by the super-user." On systems where a distinction is made, it
> therefore makes sense to install rpcbind to the autotools sbindir
> rather than the regular bindir where it is currently installed. This
> is accomplished by three small changes:
> 
>   1. Move rpcbind from bin_PROGRAMS to sbin_PROGRAMS in Makefile.am.
>   2. Change @_bindir@ to @_sbindir@ in the rpcbind systemd service file.
>   3. Tell configure.ac that it should substitute the value of $sbindir
>      into @_sbindir@ instead of $bindir$ into @_bindir@.
> 
> The rpcinfo tool remains where it is, in bindir, since unprivileged
> users are able to usefully run it. This avoids forcing maintainers to
> choose between two bad options: hiding rpcinfo from unprivileged
> users, or installing a useless rpcbind for them.
> ---
>  Makefile.am                | 3 ++-
>  configure.ac               | 6 +++---
>  systemd/rpcbind.service.in | 2 +-
>  3 files changed, 6 insertions(+), 5 deletions(-)
A couple things... You are  missing a Signed-off-by line

Also I would like some more input from others about
changing the default install directory to sbin

Anybody have a problem with this?

steved.
> 
> diff --git a/Makefile.am b/Makefile.am
> index 43c2710..c160a95 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -29,7 +29,8 @@ if LIBWRAP
>  AM_CPPFLAGS +=	-DLIBWRAP
>  endif
>  
> -bin_PROGRAMS = rpcbind rpcinfo
> +bin_PROGRAMS = rpcinfo
> +sbin_PROGRAMS = rpcbind
>  
>  rpcbind_SOURCES = \
>  	src/check_bound.c \
> diff --git a/configure.ac b/configure.ac
> index 3790310..359a418 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -61,9 +61,9 @@ AC_SEARCH_LIBS([pthread_create], [pthread])
>  
>  AC_CHECK_HEADERS([nss.h rpcsvc/mount.h])
>  
> -# make bindir available for substitution in config file
> +# make sbindir available for substitution in config file
>  # 2 "evals" needed to expand variable names
> -AC_SUBST([_bindir])
> -AC_CONFIG_COMMANDS_PRE([eval eval _bindir=$bindir])
> +AC_SUBST([_sbindir])
> +AC_CONFIG_COMMANDS_PRE([eval eval _sbindir=$sbindir])
>  
>  AC_OUTPUT([Makefile systemd/rpcbind.service])
> diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in
> index 03a9e0b..f8cfa9f 100644
> --- a/systemd/rpcbind.service.in
> +++ b/systemd/rpcbind.service.in
> @@ -12,7 +12,7 @@ After=rpcbind.socket
>  [Service]
>  Type=notify
>  # distro can provide a drop-in adding EnvironmentFile=-/??? if needed.
> -ExecStart=@_bindir@/rpcbind $RPCBIND_OPTIONS -w -f
> +ExecStart=@_sbindir@/rpcbind $RPCBIND_OPTIONS -w -f
>  
>  [Install]
>  WantedBy=multi-user.target
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/1] autotools: install rpcbind to --sbindir.
  2017-07-31 14:55   ` Steve Dickson
@ 2017-08-01  5:22     ` NeilBrown
  2017-08-01 15:27       ` Steve Dickson
  0 siblings, 1 reply; 6+ messages in thread
From: NeilBrown @ 2017-08-01  5:22 UTC (permalink / raw)
  To: Steve Dickson, Michael Orlitzky, linux-nfs

[-- Attachment #1: Type: text/plain, Size: 3437 bytes --]

On Mon, Jul 31 2017, Steve Dickson wrote:

> On 07/28/2017 09:52 AM, Michael Orlitzky wrote:
>> According to its own man page, the rpcbind program "can only be
>> started by the super-user." On systems where a distinction is made, it
>> therefore makes sense to install rpcbind to the autotools sbindir
>> rather than the regular bindir where it is currently installed. This
>> is accomplished by three small changes:
>> 
>>   1. Move rpcbind from bin_PROGRAMS to sbin_PROGRAMS in Makefile.am.
>>   2. Change @_bindir@ to @_sbindir@ in the rpcbind systemd service file.
>>   3. Tell configure.ac that it should substitute the value of $sbindir
>>      into @_sbindir@ instead of $bindir$ into @_bindir@.
>> 
>> The rpcinfo tool remains where it is, in bindir, since unprivileged
>> users are able to usefully run it. This avoids forcing maintainers to
>> choose between two bad options: hiding rpcinfo from unprivileged
>> users, or installing a useless rpcbind for them.
>> ---
>>  Makefile.am                | 3 ++-
>>  configure.ac               | 6 +++---
>>  systemd/rpcbind.service.in | 2 +-
>>  3 files changed, 6 insertions(+), 5 deletions(-)
> A couple things... You are  missing a Signed-off-by line
>
> Also I would like some more input from others about
> changing the default install directory to sbin
>
> Anybody have a problem with this?

In SUSE we run
  ./configure --bindir=/sbin .....
for rpcbind.

So: no, we do not have a problem with this.  Nor do I personally.

This came up before in the thread starting
  https://www.spinics.net/lists/linux-nfs/msg60349.html
but didn't quite get resolved for some reason that I don't recall.

Thanks,
NeilBrown

>
> steved.
>> 
>> diff --git a/Makefile.am b/Makefile.am
>> index 43c2710..c160a95 100644
>> --- a/Makefile.am
>> +++ b/Makefile.am
>> @@ -29,7 +29,8 @@ if LIBWRAP
>>  AM_CPPFLAGS +=	-DLIBWRAP
>>  endif
>>  
>> -bin_PROGRAMS = rpcbind rpcinfo
>> +bin_PROGRAMS = rpcinfo
>> +sbin_PROGRAMS = rpcbind
>>  
>>  rpcbind_SOURCES = \
>>  	src/check_bound.c \
>> diff --git a/configure.ac b/configure.ac
>> index 3790310..359a418 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -61,9 +61,9 @@ AC_SEARCH_LIBS([pthread_create], [pthread])
>>  
>>  AC_CHECK_HEADERS([nss.h rpcsvc/mount.h])
>>  
>> -# make bindir available for substitution in config file
>> +# make sbindir available for substitution in config file
>>  # 2 "evals" needed to expand variable names
>> -AC_SUBST([_bindir])
>> -AC_CONFIG_COMMANDS_PRE([eval eval _bindir=$bindir])
>> +AC_SUBST([_sbindir])
>> +AC_CONFIG_COMMANDS_PRE([eval eval _sbindir=$sbindir])
>>  
>>  AC_OUTPUT([Makefile systemd/rpcbind.service])
>> diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in
>> index 03a9e0b..f8cfa9f 100644
>> --- a/systemd/rpcbind.service.in
>> +++ b/systemd/rpcbind.service.in
>> @@ -12,7 +12,7 @@ After=rpcbind.socket
>>  [Service]
>>  Type=notify
>>  # distro can provide a drop-in adding EnvironmentFile=-/??? if needed.
>> -ExecStart=@_bindir@/rpcbind $RPCBIND_OPTIONS -w -f
>> +ExecStart=@_sbindir@/rpcbind $RPCBIND_OPTIONS -w -f
>>  
>>  [Install]
>>  WantedBy=multi-user.target
>> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/1] autotools: install rpcbind to --sbindir.
  2017-08-01  5:22     ` NeilBrown
@ 2017-08-01 15:27       ` Steve Dickson
  2017-08-01 18:47         ` Michael Orlitzky
  0 siblings, 1 reply; 6+ messages in thread
From: Steve Dickson @ 2017-08-01 15:27 UTC (permalink / raw)
  To: NeilBrown, Michael Orlitzky, linux-nfs



On 08/01/2017 01:22 AM, NeilBrown wrote:
> On Mon, Jul 31 2017, Steve Dickson wrote:
> 
>> On 07/28/2017 09:52 AM, Michael Orlitzky wrote:
>>> According to its own man page, the rpcbind program "can only be
>>> started by the super-user." On systems where a distinction is made, it
>>> therefore makes sense to install rpcbind to the autotools sbindir
>>> rather than the regular bindir where it is currently installed. This
>>> is accomplished by three small changes:
>>>
>>>   1. Move rpcbind from bin_PROGRAMS to sbin_PROGRAMS in Makefile.am.
>>>   2. Change @_bindir@ to @_sbindir@ in the rpcbind systemd service file.
>>>   3. Tell configure.ac that it should substitute the value of $sbindir
>>>      into @_sbindir@ instead of $bindir$ into @_bindir@.
>>>
>>> The rpcinfo tool remains where it is, in bindir, since unprivileged
>>> users are able to usefully run it. This avoids forcing maintainers to
>>> choose between two bad options: hiding rpcinfo from unprivileged
>>> users, or installing a useless rpcbind for them.
>>> ---
>>>  Makefile.am                | 3 ++-
>>>  configure.ac               | 6 +++---
>>>  systemd/rpcbind.service.in | 2 +-
>>>  3 files changed, 6 insertions(+), 5 deletions(-)
>> A couple things... You are  missing a Signed-off-by line
>>
>> Also I would like some more input from others about
>> changing the default install directory to sbin
>>
>> Anybody have a problem with this?
> 
> In SUSE we run
>   ./configure --bindir=/sbin .....
> for rpcbind.
> 
> So: no, we do not have a problem with this.  Nor do I personally.
> 
> This came up before in the thread starting
>   https://www.spinics.net/lists/linux-nfs/msg60349.html
> but didn't quite get resolved for some reason that I don't recall.It turns out commit 5739ac634 (Fix path for rpcbind in rpcbind.service)
move the rpcbind from sbindir to bindir and now this patch is
moving it back?? There is definitely some confusion here!

steved.
 
> 
> Thanks,
> NeilBrown
> 
>>
>> steved.
>>>
>>> diff --git a/Makefile.am b/Makefile.am
>>> index 43c2710..c160a95 100644
>>> --- a/Makefile.am
>>> +++ b/Makefile.am
>>> @@ -29,7 +29,8 @@ if LIBWRAP
>>>  AM_CPPFLAGS +=	-DLIBWRAP
>>>  endif
>>>  
>>> -bin_PROGRAMS = rpcbind rpcinfo
>>> +bin_PROGRAMS = rpcinfo
>>> +sbin_PROGRAMS = rpcbind
>>>  
>>>  rpcbind_SOURCES = \
>>>  	src/check_bound.c \
>>> diff --git a/configure.ac b/configure.ac
>>> index 3790310..359a418 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -61,9 +61,9 @@ AC_SEARCH_LIBS([pthread_create], [pthread])
>>>  
>>>  AC_CHECK_HEADERS([nss.h rpcsvc/mount.h])
>>>  
>>> -# make bindir available for substitution in config file
>>> +# make sbindir available for substitution in config file
>>>  # 2 "evals" needed to expand variable names
>>> -AC_SUBST([_bindir])
>>> -AC_CONFIG_COMMANDS_PRE([eval eval _bindir=$bindir])
>>> +AC_SUBST([_sbindir])
>>> +AC_CONFIG_COMMANDS_PRE([eval eval _sbindir=$sbindir])
>>>  
>>>  AC_OUTPUT([Makefile systemd/rpcbind.service])
>>> diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in
>>> index 03a9e0b..f8cfa9f 100644
>>> --- a/systemd/rpcbind.service.in
>>> +++ b/systemd/rpcbind.service.in
>>> @@ -12,7 +12,7 @@ After=rpcbind.socket
>>>  [Service]
>>>  Type=notify
>>>  # distro can provide a drop-in adding EnvironmentFile=-/??? if needed.
>>> -ExecStart=@_bindir@/rpcbind $RPCBIND_OPTIONS -w -f
>>> +ExecStart=@_sbindir@/rpcbind $RPCBIND_OPTIONS -w -f
>>>  
>>>  [Install]
>>>  WantedBy=multi-user.target
>>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/1] autotools: install rpcbind to --sbindir.
  2017-08-01 15:27       ` Steve Dickson
@ 2017-08-01 18:47         ` Michael Orlitzky
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Orlitzky @ 2017-08-01 18:47 UTC (permalink / raw)
  To: linux-nfs

On 08/01/2017 11:27 AM, Steve Dickson wrote:
> 
> It turns out commit 5739ac634 (Fix path for rpcbind in rpcbind.service)
> move the rpcbind from sbindir to bindir and now this patch is
> moving it back?? There is definitely some confusion here!
> 

Before my patch, rpcbind was installed to bindir, so having @_sbindir@
in the systemd service file back then was wrong. After my patch, rpcbind
is actually installed to the sbindir, so that's the right thing to have
in the service file.

The original confusion may have been caused by what Neil said that they
do on SUSE, which is set

  ./configure --bindir=/sbin

We're actually doing the same thing on Gentoo, and my motivation for
this patch is so that we can stop: doing that puts rpcinfo in /sbin,
and users can't see it in their paths.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-08-01 18:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-28 13:52 [PATCH 0/1] rpcbind: install the rpcbind program to sbindir Michael Orlitzky
2017-07-28 13:52 ` [PATCH 1/1] autotools: install rpcbind to --sbindir Michael Orlitzky
2017-07-31 14:55   ` Steve Dickson
2017-08-01  5:22     ` NeilBrown
2017-08-01 15:27       ` Steve Dickson
2017-08-01 18:47         ` Michael Orlitzky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox