Package init
This commit is contained in:
commit
3b60b9114d
BIN
v4.2.3.tar.gz
Normal file
BIN
v4.2.3.tar.gz
Normal file
Binary file not shown.
11
yp-tools-2.12-adjunct.patch
Normal file
11
yp-tools-2.12-adjunct.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
diff -up yp-tools-2.12/src/yppasswd.c.adjunct yp-tools-2.12/src/yppasswd.c
|
||||||
|
--- yp-tools-2.12/src/yppasswd.c.adjunct 2012-04-23 13:17:47.000988833 +0200
|
||||||
|
+++ yp-tools-2.12/src/yppasswd.c 2012-04-23 13:18:01.209802938 +0200
|
||||||
|
@@ -774,6 +775,7 @@
|
||||||
|
/* We can't check the password with shadow passwords enabled. We
|
||||||
|
* leave the checking to yppasswdd */
|
||||||
|
if (uid != 0 && strcmp (pwd->pw_passwd, "x") != 0 &&
|
||||||
|
+ 0 != strncmp (pwd->pw_passwd, "##", 2) && /* don't check passwords using passwd.adjunct feature */
|
||||||
|
strcmp (pwd->pw_passwd, hashpass ) != 0)
|
||||||
|
{
|
||||||
|
int passwdlen = get_passwd_len (pwd->pw_passwd);
|
||||||
44
yp-tools-2.12-crypt.patch
Normal file
44
yp-tools-2.12-crypt.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
diff -up yp-tools-2.12/src/yppasswd.c.crypt yp-tools-2.12/src/yppasswd.c
|
||||||
|
--- yp-tools-2.12/src/yppasswd.c.crypt 2012-04-23 13:01:35.599721168 +0200
|
||||||
|
+++ yp-tools-2.12/src/yppasswd.c 2012-04-23 13:16:18.251261293 +0200
|
||||||
|
@@ -772,9 +778,16 @@ main (int argc, char **argv)
|
||||||
|
{
|
||||||
|
int passwdlen = get_passwd_len (pwd->pw_passwd);
|
||||||
|
char *sane_passwd = alloca (passwdlen + 1);
|
||||||
|
+ char *crypted;
|
||||||
|
strncpy (sane_passwd, pwd->pw_passwd, passwdlen);
|
||||||
|
sane_passwd[passwdlen] = 0;
|
||||||
|
- if (strcmp (crypt (s, sane_passwd), sane_passwd))
|
||||||
|
+ crypted = crypt (s, sane_passwd);
|
||||||
|
+ if(crypted == NULL)
|
||||||
|
+ {
|
||||||
|
+ fprintf (stderr, _("Sorry - crypt() failed.\n"));
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+ if (strcmp (crypted, sane_passwd))
|
||||||
|
{
|
||||||
|
fprintf (stderr, _("Sorry.\n"));
|
||||||
|
return 1;
|
||||||
|
@@ -789,6 +802,7 @@ main (int argc, char **argv)
|
||||||
|
char *error_msg;
|
||||||
|
#endif /* USE_CRACKLIB */
|
||||||
|
char *buf, salt[37], *p = NULL;
|
||||||
|
+ char *crypted;
|
||||||
|
int tries = 0;
|
||||||
|
|
||||||
|
buf = (char *) malloc (129);
|
||||||
|
@@ -869,7 +883,13 @@ main (int argc, char **argv)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
- yppwd.newpw.pw_passwd = strdup (crypt (buf, salt));
|
||||||
|
+ crypted = crypt (buf, salt);
|
||||||
|
+ if(crypted == NULL) {
|
||||||
|
+ fprintf (stderr, _("Sorry - crypt() failed.\n"));
|
||||||
|
+ return 1;
|
||||||
|
+ } else {
|
||||||
|
+ yppwd.newpw.pw_passwd = strdup (crypted);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (f_flag)
|
||||||
68
yp-tools-2.12-hash.patch
Normal file
68
yp-tools-2.12-hash.patch
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
diff -up yp-tools-2.12/man/yppasswd.1.in.hash yp-tools-2.12/man/yppasswd.1.in
|
||||||
|
--- yp-tools-2.12/man/yppasswd.1.in.hash 2011-09-09 16:18:49.469037058 +0200
|
||||||
|
+++ yp-tools-2.12/man/yppasswd.1.in 2011-09-09 16:20:19.101030930 +0200
|
||||||
|
@@ -81,6 +81,12 @@ for authentication with the
|
||||||
|
.BR yppasswdd (8)
|
||||||
|
daemon. Subsequently, the
|
||||||
|
program prompts for the updated information:
|
||||||
|
+.P
|
||||||
|
+If we use shadowing passwords using passwd.adjunct, SHA-512 will be
|
||||||
|
+used for hashing a new password by default. If we want to use MD5,
|
||||||
|
+SHA_256 or older DES, we need to set the environment variable
|
||||||
|
+YP_PASSWD_HASH. Possible values are "DES", "MD5", "SHA-256" and
|
||||||
|
+"SHA-512" (value is case-insensitive).
|
||||||
|
.\"
|
||||||
|
.\"
|
||||||
|
.IP "\fByppasswd\fP or \fB-p\fP"
|
||||||
|
diff -up yp-tools-2.12/src/yppasswd.c.hash yp-tools-2.12/src/yppasswd.c
|
||||||
|
--- yp-tools-2.12/src/yppasswd.c.hash 2011-09-09 16:20:35.360029823 +0200
|
||||||
|
+++ yp-tools-2.12/src/yppasswd.c 2011-09-09 16:25:21.589010245 +0200
|
||||||
|
@@ -514,6 +514,32 @@ create_random_salt (char *salt, int num_
|
||||||
|
close (fd);
|
||||||
|
}
|
||||||
|
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * Reads environment variable YP_PASSWD_HASH and returns hash id.
|
||||||
|
+ * Possible values are MD5, SHA-256, SHA-512 and DES.
|
||||||
|
+ * If other value is set or it is not set at all, SHA-512 is used.
|
||||||
|
+ */
|
||||||
|
+static int
|
||||||
|
+get_env_hash_id()
|
||||||
|
+{
|
||||||
|
+ const char *v = getenv("YP_PASSWD_HASH");
|
||||||
|
+ if (!v)
|
||||||
|
+ return SHA_512;
|
||||||
|
+
|
||||||
|
+ if (!strcasecmp(v, "DES"))
|
||||||
|
+ return DES;
|
||||||
|
+
|
||||||
|
+ if (!strcasecmp(v, "SHA-256"))
|
||||||
|
+ return SHA_256;
|
||||||
|
+
|
||||||
|
+ if (!strcasecmp(v, "MD5"))
|
||||||
|
+ return MD5;
|
||||||
|
+
|
||||||
|
+ return SHA_512;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
int
|
||||||
|
main (int argc, char **argv)
|
||||||
|
{
|
||||||
|
@@ -723,6 +749,15 @@ main (int argc, char **argv)
|
||||||
|
|
||||||
|
hash_id = get_hash_id (pwd->pw_passwd);
|
||||||
|
|
||||||
|
+ /* If we use passwd.adjunct, there is no magic value like $1$ in the
|
||||||
|
+ * beginning of password, but ##username instead. Thus, SHA_512 will be
|
||||||
|
+ * used for hashing a new password by default. If we want to use DES,
|
||||||
|
+ * MD5 or SHA_256, we need to set the environment variable
|
||||||
|
+ * YP_PASSWD_HASH (e.g. YP_PASSWD_HASH=DES).
|
||||||
|
+ */
|
||||||
|
+ if (strncmp(pwd->pw_passwd, "##", 2) == 0)
|
||||||
|
+ hash_id = get_env_hash_id();
|
||||||
|
+
|
||||||
|
/* Preserve 'rounds=<N>$' (if present) in case of SHA-2 */
|
||||||
|
if (hash_id == SHA_256 || hash_id == SHA_512)
|
||||||
|
{
|
||||||
11
yp-tools-4.2.2-strict-prototypes.patch
Normal file
11
yp-tools-4.2.2-strict-prototypes.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- yp-tools-yp-tools-4.2.2/src/yppasswd.c.strict-protorypes 2017-02-21 15:51:03.452034055 +0100
|
||||||
|
+++ yp-tools-yp-tools-4.2.2/src/yppasswd.c 2017-02-21 15:51:14.996030455 +0100
|
||||||
|
@@ -547,7 +547,7 @@ create_random_salt (char *salt, int num_
|
||||||
|
* If other value is set or it is not set at all, SHA-512 is used.
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
-get_env_hash_id()
|
||||||
|
+get_env_hash_id(void)
|
||||||
|
{
|
||||||
|
const char *v = getenv("YP_PASSWD_HASH");
|
||||||
|
if (!v)
|
||||||
58
yp-tools.spec
Normal file
58
yp-tools.spec
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
%global __filter_GLIBC_PRIVATE 1
|
||||||
|
|
||||||
|
Name: yp-tools
|
||||||
|
Version: 4.2.3
|
||||||
|
Release: 3
|
||||||
|
Summary: Network Information Service (YP) client utilities
|
||||||
|
License: GPLv2
|
||||||
|
URL: http://www.linux-nis.org/nis/yp-tools/index.html
|
||||||
|
Source0: https://github.com/thkukuk/yp-tools/archive/v%{version}.tar.gz
|
||||||
|
Patch0: yp-tools-2.12-hash.patch
|
||||||
|
Patch1: yp-tools-2.12-crypt.patch
|
||||||
|
Patch2: yp-tools-2.12-adjunct.patch
|
||||||
|
Patch3: yp-tools-4.2.2-strict-prototypes.patch
|
||||||
|
|
||||||
|
BuildRequires: git autoconf automake libtool
|
||||||
|
BuildRequires: gettext-devel libtirpc-devel libnsl2-devel
|
||||||
|
Requires: ypbind >= 3:2.4-2 glibc
|
||||||
|
|
||||||
|
%description
|
||||||
|
This package provides NIS client programs.NIS,Network Information
|
||||||
|
Service,provides passwords,groupinformation and other network information
|
||||||
|
to machines on a network.It is also known as Sun Yellow Pages.
|
||||||
|
You need to install ypbind on machine which runs NIS programs.
|
||||||
|
|
||||||
|
%package help
|
||||||
|
Summary: Doc files for yp-tools
|
||||||
|
Buildarch: noarch
|
||||||
|
|
||||||
|
%description help
|
||||||
|
The help package contains doc files for yp-tools.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n %{name}-%{version} -p1 -S git
|
||||||
|
autoreconf -ifv
|
||||||
|
|
||||||
|
%build
|
||||||
|
export CFLAGS="$CFLAGS %{optflags} -Wno-cast-function-type"
|
||||||
|
%configure --disable-domainname
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
|
||||||
|
%find_lang %{name}
|
||||||
|
|
||||||
|
%files -f %{name}.lang
|
||||||
|
%doc COPYING AUTHORS THANKS etc/nsswitch.conf
|
||||||
|
%{_sbindir}/*
|
||||||
|
%{_bindir}/*
|
||||||
|
/var/yp/nicknames
|
||||||
|
|
||||||
|
%files help
|
||||||
|
%doc README NEWS ChangeLog
|
||||||
|
%{_mandir}/*/*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Aug 30 2019 luhuaxin <luhuaxin@huawei.com> - 4.2.3-3
|
||||||
|
- Package init
|
||||||
Loading…
x
Reference in New Issue
Block a user