Patchwork [1/1] dropbear: Change the path to find configuration file and add a configuration file for dropbear

login
register
mail settings
Submitter Xiaofeng Yan
Date Aug. 29, 2011, 10:48 a.m.
Message ID <87a9dca42042f94b9de19efa514b2938cc11e486.1314604566.git.xiaofeng.yan@windriver.com>
Download mbox | patch
Permalink /patch/10717/
State New, archived
Headers show

Comments

Xiaofeng Yan - Aug. 29, 2011, 10:48 a.m.
From: Xiaofeng Yan <xiaofeng.yan@windriver.com>

dropbear will check "/etc/pam.d/sshd" which comes from package "openssh" \
When enabling pam supporting. But if we only install dropbear \
package without package "openssh", then "dropbear" will not \
find a configuration file. The changes are as follow for fixing this bug:

- Change the path to find configuration file (/etc/pam.d/sshd --> /etc/pam.d/dropbear)
- Add a configuration file "/etc/pam.d/dropbear"

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
---
 meta/recipes-core/dropbear/dropbear.inc            |    6 +++++-
 meta/recipes-core/dropbear/dropbear/dropbear       |    4 ++++
 .../dropbear/dropbear-configuration-file.patch     |   18 ++++++++++++++++++
 3 files changed, 27 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-core/dropbear/dropbear/dropbear
 create mode 100644 meta/recipes-core/dropbear/dropbear/dropbear-configuration-file.patch
Richard Purdie - Aug. 29, 2011, 12:54 p.m.
On Mon, 2011-08-29 at 18:48 +0800, Xiaofeng Yan wrote:
> From: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> 
> dropbear will check "/etc/pam.d/sshd" which comes from package "openssh" \
> When enabling pam supporting. But if we only install dropbear \
> package without package "openssh", then "dropbear" will not \
> find a configuration file. The changes are as follow for fixing this bug:
> 
> - Change the path to find configuration file (/etc/pam.d/sshd --> /etc/pam.d/dropbear)
> - Add a configuration file "/etc/pam.d/dropbear"
> 
> Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
> ---
>  meta/recipes-core/dropbear/dropbear.inc            |    6 +++++-
>  meta/recipes-core/dropbear/dropbear/dropbear       |    4 ++++
>  .../dropbear/dropbear-configuration-file.patch     |   18 ++++++++++++++++++
>  3 files changed, 27 insertions(+), 1 deletions(-)
>  create mode 100644 meta/recipes-core/dropbear/dropbear/dropbear
>  create mode 100644 meta/recipes-core/dropbear/dropbear/dropbear-configuration-file.patch
> 
> diff --git a/meta/recipes-core/dropbear/dropbear.inc b/meta/recipes-core/dropbear/dropbear.inc
> index 5af9ebd..577b288 100644
> --- a/meta/recipes-core/dropbear/dropbear.inc
> +++ b/meta/recipes-core/dropbear/dropbear.inc
> @@ -19,7 +19,9 @@ SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.gz \
>  	         file://init \
>                   ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} "
>  
> -PAM_SRC_URI = "file://dropbear-enable-pam.patch"
> +PAM_SRC_URI = "file://dropbear-enable-pam.patch \
> +               file://dropbear-configuration-file.patch \
> +               file://dropbear"
>  
>  inherit autotools update-rc.d
>  
> @@ -51,6 +53,7 @@ do_install() {
>  		   ${D}${sysconfdir}/init.d \
>  		   ${D}${sysconfdir}/default \
>  		   ${D}${sysconfdir}/dropbear \
> +		   ${D}${sysconfdir}/pam.d \
>                     ${D}${bindir} \
>  		   ${D}${sbindir} \
>  		   ${D}${localstatedir}
> @@ -68,6 +71,7 @@ do_install() {
>  				  -e 's,/usr/bin,${bindir},g' \
>  				  -e 's,/usr,${prefix},g' > ${D}${sysconfdir}/init.d/dropbear
>  	chmod 755 ${D}${sysconfdir}/init.d/dropbear
> +	install -m 0644 ${WORKDIR}/dropbear  ${D}${sysconfdir}/pam.d/

I suspect this won't build in the DISTRO_FEATURES not containing pam
case due to the above file not existing. Please put a check in there to
see if it exists.

Cheers,

Richard
Xiaofeng Yan - Aug. 31, 2011, 2:13 a.m.
On 2011?08?29? 20:54, Richard Purdie wrote:
> On Mon, 2011-08-29 at 18:48 +0800, Xiaofeng Yan wrote:
>> From: Xiaofeng Yan<xiaofeng.yan@windriver.com>
>>
>> dropbear will check "/etc/pam.d/sshd" which comes from package "openssh" \
>> When enabling pam supporting. But if we only install dropbear \
>> package without package "openssh", then "dropbear" will not \
>> find a configuration file. The changes are as follow for fixing this bug:
>>
>> - Change the path to find configuration file (/etc/pam.d/sshd -->  /etc/pam.d/dropbear)
>> - Add a configuration file "/etc/pam.d/dropbear"
>>
>> Signed-off-by: Xiaofeng Yan<xiaofeng.yan@windriver.com>
>> ---
>>   meta/recipes-core/dropbear/dropbear.inc            |    6 +++++-
>>   meta/recipes-core/dropbear/dropbear/dropbear       |    4 ++++
>>   .../dropbear/dropbear-configuration-file.patch     |   18 ++++++++++++++++++
>>   3 files changed, 27 insertions(+), 1 deletions(-)
>>   create mode 100644 meta/recipes-core/dropbear/dropbear/dropbear
>>   create mode 100644 meta/recipes-core/dropbear/dropbear/dropbear-configuration-file.patch
>>
>> diff --git a/meta/recipes-core/dropbear/dropbear.inc b/meta/recipes-core/dropbear/dropbear.inc
>> index 5af9ebd..577b288 100644
>> --- a/meta/recipes-core/dropbear/dropbear.inc
>> +++ b/meta/recipes-core/dropbear/dropbear.inc
>> @@ -19,7 +19,9 @@ SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.gz \
>>   	         file://init \
>>                    ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} "
>>
>> -PAM_SRC_URI = "file://dropbear-enable-pam.patch"
>> +PAM_SRC_URI = "file://dropbear-enable-pam.patch \
>> +               file://dropbear-configuration-file.patch \
>> +               file://dropbear"
>>
>>   inherit autotools update-rc.d
>>
>> @@ -51,6 +53,7 @@ do_install() {
>>   		   ${D}${sysconfdir}/init.d \
>>   		   ${D}${sysconfdir}/default \
>>   		   ${D}${sysconfdir}/dropbear \
>> +		   ${D}${sysconfdir}/pam.d \
>>                      ${D}${bindir} \
>>   		   ${D}${sbindir} \
>>   		   ${D}${localstatedir}
>> @@ -68,6 +71,7 @@ do_install() {
>>   				  -e 's,/usr/bin,${bindir},g' \
>>   				  -e 's,/usr,${prefix},g'>  ${D}${sysconfdir}/init.d/dropbear
>>   	chmod 755 ${D}${sysconfdir}/init.d/dropbear
>> +	install -m 0644 ${WORKDIR}/dropbear  ${D}${sysconfdir}/pam.d/
> I suspect this won't build in the DISTRO_FEATURES not containing pam
> case due to the above file not existing. Please put a check in there to
> see if it exists.
>
Sorry for my fault. you are a really careful man. I will modify my fault.

Thanks
Yan
> Cheers,
>
> Richard
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>

Patch

diff --git a/meta/recipes-core/dropbear/dropbear.inc b/meta/recipes-core/dropbear/dropbear.inc
index 5af9ebd..577b288 100644
--- a/meta/recipes-core/dropbear/dropbear.inc
+++ b/meta/recipes-core/dropbear/dropbear.inc
@@ -19,7 +19,9 @@  SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.gz \
 	         file://init \
                  ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} "
 
-PAM_SRC_URI = "file://dropbear-enable-pam.patch"
+PAM_SRC_URI = "file://dropbear-enable-pam.patch \
+               file://dropbear-configuration-file.patch \
+               file://dropbear"
 
 inherit autotools update-rc.d
 
@@ -51,6 +53,7 @@  do_install() {
 		   ${D}${sysconfdir}/init.d \
 		   ${D}${sysconfdir}/default \
 		   ${D}${sysconfdir}/dropbear \
+		   ${D}${sysconfdir}/pam.d \
                    ${D}${bindir} \
 		   ${D}${sbindir} \
 		   ${D}${localstatedir}
@@ -68,6 +71,7 @@  do_install() {
 				  -e 's,/usr/bin,${bindir},g' \
 				  -e 's,/usr,${prefix},g' > ${D}${sysconfdir}/init.d/dropbear
 	chmod 755 ${D}${sysconfdir}/init.d/dropbear
+	install -m 0644 ${WORKDIR}/dropbear  ${D}${sysconfdir}/pam.d/
 }
 
 pkg_postinst_${PN} () {
diff --git a/meta/recipes-core/dropbear/dropbear/dropbear b/meta/recipes-core/dropbear/dropbear/dropbear
new file mode 100644
index 0000000..47e787f
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear/dropbear
@@ -0,0 +1,4 @@ 
+#%PAM-1.0
+
+auth     include  common-auth
+account  include  common-account
diff --git a/meta/recipes-core/dropbear/dropbear/dropbear-configuration-file.patch b/meta/recipes-core/dropbear/dropbear/dropbear-configuration-file.patch
new file mode 100644
index 0000000..5e94553
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear/dropbear-configuration-file.patch
@@ -0,0 +1,18 @@ 
+dropbear: Change the path ("/etc/pam.d/sshd" as default) to find a pam configuration file \
+to "/etc/pam.d/dropbear for dropbear when enabling pam supporting" 
+
+Upstream-Status: Inappropriate [configuration] 
+
+Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
+
+--- a/svr-authpam.c	2008-11-11 22:09:03.000000000 +0800
++++ b/svr-authpam.c.new	2011-08-29 09:53:24.000000000 +0800
+@@ -199,7 +199,7 @@
+ 	userData.passwd = password;
+ 
+ 	/* Init pam */
+-	if ((rc = pam_start("sshd", NULL, &pamConv, &pamHandlep)) != PAM_SUCCESS) {
++	if ((rc = pam_start("dropbear", NULL, &pamConv, &pamHandlep)) != PAM_SUCCESS) {
+ 		dropbear_log(LOG_WARNING, "pam_start() failed, rc=%d, %s\n", 
+ 				rc, pam_strerror(pamHandlep, rc));
+ 		goto cleanup;