package: dropbear: make PATH configurable
PATCH 1/1 package: dropbear: make PATH configurable
Make the default PATH dropbear is using configurable.
If not specified, it will continue to default to dropbear's DEFAULT_PATH.
---
Please let me know what you think. Thanks.
package/dropbear/Config.in | 6 ++++++ package/dropbear/dropbear.mk | 8 ++++++++ 2 files changed, 14 insertions(+)
package/dropbear/Config.in +6 -0
@@ -55,4 +55,10 @@ config BR2_PACKAGE_DROPBEAR_LASTLOG Enable logging of dropbear access to lastlog. Notice that Buildroot does not generate lastlog by default. +config BR2_PACKAGE_DROPBEAR_PATH + string "dropbear default path" + help + Use the path specified here as dropbear's default path. + If not specified, dropbear will use "/usr/bin:/bin". + endif
package/dropbear/dropbear.mk +8 -0
@@ -51,6 +51,14 @@ define DROPBEAR_DISABLE_STANDALONE $(SED) 's:\(#define NON_INETD_MODE\):/*\1 */:' $(@D)/options.h endef +ifneq ($(BR2_PACKAGE_DROPBEAR_PATH),"") +define DROPBEAR_CUSTOM_PATH + $(SED) 's|^\(#define DEFAULT_PATH\).*|\1 $(BR2_PACKAGE_DROPBEAR_PATH)|' $(@D)/options.h +endef + +DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_CUSTOM_PATH +endif + define DROPBEAR_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/dropbear/dropbear.service \ $(TARGET_DIR)/usr/lib/systemd/system/dropbear.service
Signature · 1 line
2.7.4
PATCH 1/1 package: dropbear: make PATH configurable
Markus, All,
On 2018-03-08 13:44 -0800, Markus Mayer spake thusly:
Quoted 4 lines
Make the default PATH dropbear is using configurable.
If not specified, it will continue to default to dropbear's
DEFAULT_PATH.
Isn't it better to jut let the user provide a ~/.profile file which actually sets the PATH?
Regards,
Yann E. MORIN.
Quoted 50 lines
Signed-off-by Markus Mayer <[email protected]>---
Please let me know what you think. Thanks.
package/dropbear/Config.in | 6 ++++++ package/dropbear/dropbear.mk | 8 ++++++++ 2 files changed, 14 insertions(+)package/dropbear/Config.in +6
-0@@ -55,4 +55,10 @@ config BR2_PACKAGE_DROPBEAR_LASTLOG Enable logging of dropbear access to lastlog. Notice that Buildroot does not generate lastlog by default. +config BR2_PACKAGE_DROPBEAR_PATH + string "dropbear default path" + help + Use the path specified here as dropbear's default path. + If not specified, dropbear will use "/usr/bin:/bin". + endifpackage/dropbear/dropbear.mk +8
-0@@ -51,6 +51,14 @@ define DROPBEAR_DISABLE_STANDALONE $(SED) 's:\(#define NON_INETD_MODE\):/*\1 */:' $(@D)/options.h endef +ifneq ($(BR2_PACKAGE_DROPBEAR_PATH),"") +define DROPBEAR_CUSTOM_PATH + $(SED) 's|^\(#define DEFAULT_PATH\).*|\1 $(BR2_PACKAGE_DROPBEAR_PATH)|' $(@D)/options.h +endef + +DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_CUSTOM_PATH +endif + define DROPBEAR_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/dropbear/dropbear.service \ $(TARGET_DIR)/usr/lib/systemd/system/dropbear.serviceSignature · 6 lines
2.7.4 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 package: dropbear: make PATH configurable
Quoted 10 lines · Yann E. MORIN
Markus, All,
On 2018-03-08 13:44 -0800, Markus Mayer spake thusly:
Quoted 4 lines
Make the default PATH dropbear is using configurable.
If not specified, it will continue to default to dropbear's
DEFAULT_PATH.Isn't it better to jut let the user provide a ~/.profile file which actually sets the PATH?
That's certainly one way to do it and one can still choose to do that for when it works.
Where we have found it helpful to change the default is for non-interactive shells, i.e. running a command via ssh without logging in first. If you try to do "ssh eval-board ifconfig" it'll fail, because /sbin isn't in the path. And .profile doesn't help you.
There's an example:
$ ssh brcmstb ifconfig sh: ifconfig: command not found
No surprise, because /sbin isn't in the PATH.
$ ssh brcmstb 'echo $PATH' /usr/bin:/bin
But hold on. ".profile" does exist and it does add /sbin to the PATH. Still no luck, though.
$ ssh brcmstb 'cat .profile' PATH=/bin:/usr/bin:/sbin:/usr/sbin
Of course it works if you specify the full path.
$ ssh brcmstb /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:10:18:DD:33:10
inet addr:192.168.15.8 Bcast:192.168.15.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:364 errors:0 dropped:0 overruns:0 frame:0
TX packets:274 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:65845 (64.3 KiB) TX bytes:45749 (44.6 KiB)lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
And when you log in, ".profile" does what you expect it to do. So, ".profile" works for interactive shells, but not for non-interactive ones.
$ ssh brcmstb # echo $PATH /bin:/usr/bin:/sbin:/usr/sbin
Hence the idea of allowing a user to modify the DEFAULT_PATH in dropbear itself.
Regards,
-Markus
Quoted 61 lines
Regards,
Yann E. MORIN.Quoted 46 lines
Signed-off-by Markus Mayer <[email protected]>---
Please let me know what you think. Thanks.
package/dropbear/Config.in | 6 ++++++ package/dropbear/dropbear.mk | 8 ++++++++ 2 files changed, 14 insertions(+)package/dropbear/Config.in +6
-0@@ -55,4 +55,10 @@ config BR2_PACKAGE_DROPBEAR_LASTLOG Enable logging of dropbear access to lastlog. Notice that Buildroot does not generate lastlog by default. +config BR2_PACKAGE_DROPBEAR_PATH + string "dropbear default path" + help + Use the path specified here as dropbear's default path. + If not specified, dropbear will use "/usr/bin:/bin". + endifpackage/dropbear/dropbear.mk +8
-1@@ -51,6 +51,14 @@ define DROPBEAR_DISABLE_STANDALONE $(SED) 's:\(#define NON_INETD_MODE\):/*\1 */:' $(@D)/options.h endef +ifneq ($(BR2_PACKAGE_DROPBEAR_PATH),"") +define DROPBEAR_CUSTOM_PATH + $(SED) 's|^\(#define DEFAULT_PATH\).*|\1 $(BR2_PACKAGE_DROPBEAR_PATH)|' $(@D)/options.h +endef + +DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_CUSTOM_PATH +endif + define DROPBEAR_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/dropbear/dropbear.service \ $(TARGET_DIR)/usr/lib/systemd/system/dropbear.service --2.7.4
Quoted 4 lines
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot--
.-----------------.--------------------.------------------.--------------------.| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |'------------------------------^-------^------------------^--------------------'
PATCH 1/1 package: dropbear: make PATH configurable
On Mar 8, 2018 2:29 PM, "Markus Mayer" <[email protected]> wrote:
Quoted 10 lines · Yann E. MORIN
Markus, All,
On 2018-03-08 13:44 -0800, Markus Mayer spake thusly:
Quoted 4 lines
Make the default PATH dropbear is using configurable.
If not specified, it will continue to default to dropbear's
DEFAULT_PATH.Isn't it better to jut let the user provide a ~/.profile file which actually sets the PATH?
That's certainly one way to do it and one can still choose to do that for when it works.
Where we have found it helpful to change the default is for non-interactive shells, i.e. running a command via ssh without logging in first. If you try to do "ssh eval-board ifconfig" it'll fail, because /sbin isn't in the path. And .profile doesn't help you.
There's an example:
$ ssh brcmstb ifconfig sh: ifconfig: command not found
No surprise, because /sbin isn't in the PATH.
$ ssh brcmstb 'echo $PATH' /usr/bin:/bin
But hold on. ".profile" does exist and it does add /sbin to the PATH. Still no luck, though.
$ ssh brcmstb 'cat .profile' PATH=/bin:/usr/bin:/sbin:/usr/sbin
Of course it works if you specify the full path.
$ ssh brcmstb /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:10:18:DD:33:10
inet addr:192.168.15.8 Bcast:192.168.15.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:364 errors:0 dropped:0 overruns:0 frame:0
TX packets:274 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:65845 (64.3 KiB) TX bytes:45749 (44.6 KiB)lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
And when you log in, ".profile" does what you expect it to do. So, ".profile" works for interactive shells, but not for non-interactive ones.
$ ssh brcmstb # echo $PATH /bin:/usr/bin:/sbin:/usr/sbin
ssh -t $host echo $PATH
Hence the idea of allowing a user to modify the DEFAULT_PATH in dropbear itself.
Regards,
-Markus
Quoted 35 lines
Regards,
Yann E. MORIN.Quoted 32 lines
Signed-off-by Markus Mayer <[email protected]>---
Please let me know what you think. Thanks.
package/dropbear/Config.in | 6 ++++++ package/dropbear/dropbear.mk | 8 ++++++++ 2 files changed, 14 insertions(+)package/dropbear/Config.in +6
-0@@ -55,4 +55,10 @@ config BR2_PACKAGE_DROPBEAR_LASTLOG Enable logging of dropbear access to lastlog. Notice that Buildroot does not generate lastlog by default. +config BR2_PACKAGE_DROPBEAR_PATH + string "dropbear default path" + help + Use the path specified here as dropbear's default path. + If not specified, dropbear will use "/usr/bin:/bin". + endifpackage/dropbear/dropbear.mk +0
-0@@ -51,6 +51,14 @@ define DROPBEAR_DISABLE_STANDALONE $(SED) 's:\(#define NON_INETD_MODE\):/*\1 */:' $(@D)/options.h endef
Quoted 3 lines
package/dropbear/dropbear.mk define DROPBEAR_DISABLE_STANDALONE
Quoted 3 lines
package/dropbear/dropbear.mk +3
-0+ifneq ($(BR2_PACKAGE_DROPBEAR_PATH),"") +define DROPBEAR_CUSTOM_PATH + $(SED) 's|^\(#define DEFAULT_PATH\).*|\1
$(BR2_PACKAGE_DROPBEAR_PATH)|' $(@D)/options.h
Quoted 11 lines
Quoted 11 lines
package/dropbear/dropbear.mk +5
-1+endef + +DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_CUSTOM_PATH +endif + define DROPBEAR_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 package/dropbear/dropbear.service \ $(TARGET_DIR)/usr/lib/systemd/system/dropbear.service --2.7.4
Quoted 7 lines
Quoted 4 lines
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot--
.-----------------.--------------------.------------------.-
-------------------.
Quoted 1 line
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics'
conspiracy: |
Quoted 1 line
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___
|
Quoted 1 line
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There
is no |
Quoted 1 line
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v
conspiracy. |
Quoted 1 line
'------------------------------^-------^------------------^-
-------------------'
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180308/e5021b41/attachment.html>
PATCH 1/1 package: dropbear: make PATH configurable
On Thu, Mar 8, 2018 at 4:34 PM, Christopher McCrory <[email protected]> wrote:
<snip>
Quoted 11 lines
$ ssh brcmstb # echo $PATH /bin:/usr/bin:/sbin:/usr/sbinssh -t $host echo $PATH
I thought that would work (forcing a term), but it doesn't
This will do what you want on your local project
$ cat output/local.mk DROPBEAR_CONF_OPTS += --enable-foo=bar
define DROPBEAR_CUSTOM_PATH
$(SED) 's|^\(#define DEFAULT_PATH\).*|\1 "/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"|' $(@D)/options.h
endef
DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_CUSTOM_PATH
Signature · 7 lines
Christopher McCrory To the optimist, the glass is half full. To the pessimist, the glass is half empty. To the engineer, the glass is twice as big as it needs to be. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180309/4ec865f7/attachment.html>
PATCH 1/1 package: dropbear: make PATH configurable
Quoted 22 lines · Christopher McCrory
On Thu, Mar 8, 2018 at 4:34 PM, Christopher McCrory <[email protected]> wrote:
<snip>
Quoted 8 lines
$ ssh brcmstb # echo $PATH /bin:/usr/bin:/sbin:/usr/sbinssh -t $host echo $PATH
I thought that would work (forcing a term), but it doesn't
This will do what you want on your local project
$ cat output/local.mk DROPBEAR_CONF_OPTS += --enable-foo=bar
Quoted 7 lines
define
DROPBEAR_CUSTOM_PATH
$(SED) 's|^\(#define DEFAULT_PATH\).*|\1 "/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"|' $(@D)/options.h
endef
DROPBEAR_POST_EXTRACT_HOOKS+=DROPBEAR_CUSTOM_PATH
If nobody else wants to make use of this feature, we can certainly stick it in local.mk. I figured it might be beneficial to others, as well.
I'll create a version with a safer regexp as suggested by Nicolas, and then I'll let the maintainers decide if this is worthwhile or not.
Regards,
-Markus
Quoted 5 lines
--
Christopher McCrory
To the optimist, the glass is half full.
To the pessimist, the glass is half empty.
To the engineer, the glass is twice as big as it needs to be.
PATCH 1/1 package: dropbear: make PATH configurable
In reply to Markus MayerQuoted 34 lines · Markus Mayer
Make the default PATH dropbear is using configurable.
If not specified, it will continue to default to dropbear's
DEFAULT_PATH.Signed-off-by Markus Mayer <[email protected]>---
Please let me know what you think. Thanks.
package/dropbear/Config.in | 6 ++++++ package/dropbear/dropbear.mk | 8 ++++++++ 2 files changed, 14 insertions(+)package/dropbear/Config.in +6
-0@@ -55,4 +55,10 @@ config BR2_PACKAGE_DROPBEAR_LASTLOG Enable logging of dropbear access to lastlog. Notice that Buildroot does not generate lastlog by default. +config BR2_PACKAGE_DROPBEAR_PATH + string "dropbear default path" + help + Use the path specified here as dropbear's default path. + If not specified, dropbear will use "/usr/bin:/bin". + endifpackage/dropbear/dropbear.mk +0
-0
package/dropbear/dropbear.mk define DROPBEAR_DISABLE_STANDALONE · line 57
Quoted 7 lines
package/dropbear/dropbear.mk +4
-0@@ -51,6 +51,14 @@ define DROPBEAR_DISABLE_STANDALONE $(SED) 's:\(#define NON_INETD_MODE\):/*\1 */:' $(@D)/options.h endef +ifneq ($(BR2_PACKAGE_DROPBEAR_PATH),"") +define DROPBEAR_CUSTOM_PATH + $(SED) 's|^\(#define DEFAULT_PATH\).*|\1 $(BR2_PACKAGE_DROPBEAR_PATH)|' $(@D)/options.h +endef
You should probably protect this regex a bit more. It could overwrite a future macro beginning with DEFAULT_PATH, or it could stop working if someone add spaces between #define and DEFAULT_PATH. Such future bugs could stay unnoticed if the compilation does not fail.
Alternatively, you could append an #undef and #define at the end of the file, so that #undef can fails if DEFAULT_PATH does not exist anymore.
BTW, you probably know that ifconfig is deprecated, and the replacement is 'ip a' from busybox or iproute2, which is inside /bin