Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package google-guest-oslogin for 
openSUSE:Factory checked in at 2024-04-23 18:55:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/google-guest-oslogin (Old)
 and      /work/SRC/openSUSE:Factory/.google-guest-oslogin.new.27645 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "google-guest-oslogin"

Tue Apr 23 18:55:15 2024 rev:26 rq:1164370 version:20240311.00

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/google-guest-oslogin/google-guest-oslogin.changes    
    2024-03-01 23:39:45.166457371 +0100
+++ 
/work/SRC/openSUSE:Factory/.google-guest-oslogin.new.27645/google-guest-oslogin.changes
     2024-04-23 18:55:34.645391570 +0200
@@ -1,0 +2,13 @@
+Wed Apr  3 12:56:40 UTC 2024 - John Paul Adrian Glaubitz 
<adrian.glaub...@suse.com>
+
+- Fix file permissions for google_authorized_principals binary (bsc#1222171)
+
+-------------------------------------------------------------------
+Fri Mar 22 13:20:40 UTC 2024 - John Paul Adrian Glaubitz 
<adrian.glaub...@suse.com>
+
+- Update to version 20240311.00 (bsc#1218548, bsc#1221900, bsc#1221901)
+  * pam: Bring back pam's account management implementation (#133)
+  * Change error messages when checking login policy (#129)
+  * Remove quintonamore from OWNERS (#128)
+
+-------------------------------------------------------------------

Old:
----
  google-guest-oslogin-20231116.00.tar.gz

New:
----
  google-guest-oslogin-20240311.00.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ google-guest-oslogin.spec ++++++
--- /var/tmp/diff_new_pack.Lu1jGf/_old  2024-04-23 18:55:35.261413756 +0200
+++ /var/tmp/diff_new_pack.Lu1jGf/_new  2024-04-23 18:55:35.261413756 +0200
@@ -19,7 +19,7 @@
 %{!?_pam_moduledir: %define _pam_moduledir %{_pamdir}}
 
 Name:           google-guest-oslogin
-Version:        20231116.00
+Version:        20240311.00
 Release:        0
 Summary:        Google Cloud Guest OS Login
 License:        Apache-2.0
@@ -82,12 +82,12 @@
 %license LICENSE
 %attr(0755,root,root) %{_bindir}/google_authorized_keys
 %attr(0755,root,root) %{_bindir}/google_authorized_keys_sk
+%attr(0755,root,root) %{_bindir}/google_authorized_principals
 %attr(0755,root,root) %{_bindir}/google_oslogin_nss_cache
 %{_mandir}/man8/*
 %{_libdir}/libnss*
 %{_pam_moduledir}/*
 %{_presetdir}/*
-%{_bindir}/google_authorized_principals
 %{_sbindir}/*
 %{_unitdir}/*
 

++++++ google-guest-oslogin-20231116.00.tar.gz -> 
google-guest-oslogin-20240311.00.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-oslogin-20231116.00/OWNERS 
new/guest-oslogin-20240311.00/OWNERS
--- old/guest-oslogin-20231116.00/OWNERS        2023-11-16 01:38:30.000000000 
+0100
+++ new/guest-oslogin-20240311.00/OWNERS        2024-03-07 19:57:15.000000000 
+0100
@@ -13,5 +13,4 @@
   - jjerger
   - karnvadaliya
   - koln67
-  - quintonamore
   - zmarano
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-oslogin-20231116.00/packaging/google-compute-engine-oslogin.spec 
new/guest-oslogin-20240311.00/packaging/google-compute-engine-oslogin.spec
--- old/guest-oslogin-20231116.00/packaging/google-compute-engine-oslogin.spec  
2023-11-16 01:38:30.000000000 +0100
+++ new/guest-oslogin-20240311.00/packaging/google-compute-engine-oslogin.spec  
2024-03-07 19:57:15.000000000 +0100
@@ -67,6 +67,7 @@
 /%{_lib}/libnss_cache_oslogin-%{version}.so
 /%{_lib}/libnss_oslogin.so.2
 /%{_lib}/libnss_cache_oslogin.so.2
+/%{_lib}/security/pam_oslogin_admin.so
 /%{_lib}/security/pam_oslogin_login.so
 /usr/bin/google_authorized_keys
 /usr/bin/google_authorized_keys_sk
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-oslogin-20231116.00/src/Makefile 
new/guest-oslogin-20240311.00/src/Makefile
--- old/guest-oslogin-20231116.00/src/Makefile  2023-11-16 01:38:30.000000000 
+0100
+++ new/guest-oslogin-20240311.00/src/Makefile  2024-03-07 19:57:15.000000000 
+0100
@@ -47,6 +47,7 @@
 NSS_OSLOGIN              = libnss_oslogin-$(VERSION).so
 NSS_CACHE_OSLOGIN        = libnss_cache_oslogin-$(VERSION).so
 
+PAM_ADMIN                = pam_oslogin_admin.so
 PAM_LOGIN                = pam_oslogin_login.so
 
 BINARIES = google_oslogin_nss_cache google_authorized_keys 
google_authorized_keys_sk google_authorized_principals
@@ -54,7 +55,7 @@
 .PHONY: all clean install
 .DEFAULT_GOAL := all
 
-all: $(NSS_OSLOGIN) $(NSS_CACHE_OSLOGIN) $(PAM_LOGIN) $(BINARIES)
+all: $(NSS_OSLOGIN) $(NSS_CACHE_OSLOGIN) $(PAM_LOGIN) $(PAM_ADMIN) $(BINARIES)
 
 clean:
        rm -f $(BINARIES)
@@ -75,6 +76,9 @@
 $(PAM_LOGIN): pam/pam_oslogin_login.o oslogin_sshca.o oslogin_utils.o
        $(CXX) $(CXXFLAGS) $(CPPFLAGS) -shared $^ -o $@ $(PAMLIBS)
 
+$(PAM_ADMIN): pam/pam_oslogin_admin.o oslogin_sshca.o oslogin_utils.o
+       $(CXX) $(CXXFLAGS) $(CPPFLAGS) -shared $^ -o $@ $(PAMLIBS)
+
 # Utilities.
 
 google_authorized_principals: authorized_principals/authorized_principals.o 
oslogin_utils.o oslogin_sshca.o
@@ -100,7 +104,7 @@
        ln -sf $(NSS_OSLOGIN)         $(DEST_LIBDIR)/$(NSS_OSLOGIN_SONAME)
        ln -sf $(NSS_CACHE_OSLOGIN)   $(DEST_LIBDIR)/$(NSS_CACHE_OSLOGIN_SONAME)
        # PAM modules
-       install -m 0644 -t $(DEST_PAMDIR) $(PAM_LOGIN)
+       install -m 0644 -t $(DEST_PAMDIR) $(PAM_LOGIN) $(PAM_ADMIN)
        # Binaries
        install -m 0755 -t $(DEST_BINDIR) $(BINARIES)
        # Manpages
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-oslogin-20231116.00/src/include/oslogin_utils.h 
new/guest-oslogin-20240311.00/src/include/oslogin_utils.h
--- old/guest-oslogin-20231116.00/src/include/oslogin_utils.h   2023-11-16 
01:38:30.000000000 +0100
+++ new/guest-oslogin-20240311.00/src/include/oslogin_utils.h   2024-03-07 
19:57:15.000000000 +0100
@@ -297,6 +297,11 @@
 
 // AuthoOptions wraps authorization options.
 struct AuthOptions {
+  // admin_policy_required determines if a user is only authorized if admin
+  // policy is available for such a user. i.e. AuthorizeUser() should return
+  // false if adminLogin is not available.
+  bool admin_policy_required;
+
   // security_key determines if the MDS "/users?..." should use
   // the view=securityKey parameter.
   bool security_key;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/guest-oslogin-20231116.00/src/oslogin_utils.cc 
new/guest-oslogin-20240311.00/src/oslogin_utils.cc
--- old/guest-oslogin-20231116.00/src/oslogin_utils.cc  2023-11-16 
01:38:30.000000000 +0100
+++ new/guest-oslogin-20240311.00/src/oslogin_utils.cc  2024-03-07 
19:57:15.000000000 +0100
@@ -1279,18 +1279,18 @@
   long http_code = 0;
   // Invalid user, just leave from here - the principal will not be 
allowed/authorized.
   if (!HttpGet(url.str(), &response, &http_code)) {
-    SysLogErr("Failed to validate organization user %s has login permission.", 
user_name);
+    SysLogErr("Failed to validate that OS Login user %s has %s permission.", 
user_name, policy);
     return false;
   }
 
   if (http_code != 200) {
-    SysLogErr("Failed to validate organization user %s has login permission, "
-              "got HTTP response code: %lu", user_name, http_code);
+    SysLogErr("Failed to validate that OS Login user %s has %s permission; "
+              "got HTTP response code: %lu", user_name, policy, http_code);
     return false;
   }
 
   if (!ParseJsonToSuccess(response)) {
-    SysLogErr("Organization user %s does not have login permission.", 
user_name);
+    SysLogErr("OS Login user %s does not have %s permission.", user_name, 
policy);
     return false;
   }
 
@@ -1388,6 +1388,9 @@
     }
   } else {
     remove(sudoers_filename.c_str());
+    if (opts.admin_policy_required) {
+      return false;
+    }
   }
 
   return true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-oslogin-20231116.00/src/pam/pam_oslogin_admin.cc 
new/guest-oslogin-20240311.00/src/pam/pam_oslogin_admin.cc
--- old/guest-oslogin-20231116.00/src/pam/pam_oslogin_admin.cc  1970-01-01 
01:00:00.000000000 +0100
+++ new/guest-oslogin-20240311.00/src/pam/pam_oslogin_admin.cc  2024-03-07 
19:57:15.000000000 +0100
@@ -0,0 +1,53 @@
+// Copyright 2024 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include <security/pam_modules.h>
+
+#include <compat.h>
+#include <oslogin_utils.h>
+
+using std::string;
+
+using oslogin_utils::AuthOptions;
+
+extern "C" {
+
+// pm_sm_acct_mgmt is the account management PAM implementation for admin 
users (or users
+// with the proper loginAdmin policy). This account management module is 
intended for custom
+// configuration handling only, where users need a way to in their stack 
configurations to
+// differentiate a OS Login user. The Google Guest Agent will not manage the 
lifecycle of
+// this module, it will not add this to the stack as part of the 
standard/default configuration
+// set.
+PAM_EXTERN int
+pam_sm_acct_mgmt(pam_handle_t* pamh, int flags, int argc, const char** argv) {
+  struct AuthOptions opts;
+  const char *user_name;
+  string user_response;
+
+  if (pam_get_user(pamh, &user_name, NULL) != PAM_SUCCESS) {
+    PAM_SYSLOG(pamh, LOG_INFO, "Could not get pam user.");
+    return PAM_PERM_DENIED;
+  }
+
+  opts = { 0 };
+  opts.admin_policy_required = true;
+
+  if (!AuthorizeUser(user_name, opts, &user_response)) {
+    return PAM_PERM_DENIED;
+  }
+
+  return PAM_SUCCESS;
+}
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/guest-oslogin-20231116.00/src/pam/pam_oslogin_login.cc 
new/guest-oslogin-20240311.00/src/pam/pam_oslogin_login.cc
--- old/guest-oslogin-20231116.00/src/pam/pam_oslogin_login.cc  2023-11-16 
01:38:30.000000000 +0100
+++ new/guest-oslogin-20240311.00/src/pam/pam_oslogin_login.cc  2024-03-07 
19:57:15.000000000 +0100
@@ -22,6 +22,7 @@
 #include <compat.h>
 #include <oslogin_utils.h>
 
+using oslogin_utils::AuthOptions;
 using oslogin_utils::ContinueSession;
 using oslogin_utils::GetUser;
 using oslogin_utils::ParseJsonToChallenges;
@@ -32,6 +33,32 @@
 
 extern "C" {
 
+// pm_sm_acct_mgmt is the account management PAM implementation for non-admin 
users (or users
+// without the proper loginAdmin policy). This account management module is 
intended for custom
+// configuration handling only, where users need a way to in their stack 
configurations to
+// differentiate a OS Login user. The Google Guest Agent will not manage the 
lifecycle of
+// this module, it will not add this to the stack as part of the 
standard/default configuration
+// set.
+PAM_EXTERN int
+pam_sm_acct_mgmt(pam_handle_t* pamh, int flags, int argc, const char** argv) {
+  struct AuthOptions opts;
+  const char *user_name;
+  string user_response;
+
+  if (pam_get_user(pamh, &user_name, NULL) != PAM_SUCCESS) {
+    PAM_SYSLOG(pamh, LOG_INFO, "Could not get pam user.");
+    return PAM_PERM_DENIED;
+  }
+
+  opts = { 0 };
+
+  if (!AuthorizeUser(user_name, opts, &user_response)) {
+    return PAM_PERM_DENIED;
+  }
+
+  return PAM_SUCCESS;
+}
+
 PAM_EXTERN int
 pam_sm_setcred(pam_handle_t* pamh, int flags, int argc, const char** argv) {
   return PAM_SUCCESS;

Reply via email to