From 960f0c8bd926f96246a6567ece6f9851a2b22b76 Mon Sep 17 00:00:00 2001 From: Jay Freeman Date: Wed, 8 Apr 2009 21:42:41 +0000 Subject: Upgraded system-cmds to use PAM (for login). git-svn-id: http://svn.telesphoreo.org/trunk@566 514c082c-b64e-11dc-b46d-3d985efe055d --- data/pam-modules/_metadata/depends | 1 + data/pam-modules/_metadata/description | 1 + data/pam-modules/_metadata/license | 1 + data/pam-modules/_metadata/maintainer | 1 + data/pam-modules/_metadata/name | 1 + data/pam-modules/_metadata/pam.dep | 1 + data/pam-modules/_metadata/preinst | 7 +++ data/pam-modules/_metadata/priority | 1 + data/pam-modules/_metadata/role | 1 + data/pam-modules/_metadata/section | 1 + data/pam-modules/_metadata/tags | 1 + data/pam-modules/_metadata/version | 1 + data/pam-modules/make.sh | 9 ++++ data/pam-modules/pam_modules-36.1.tar.gz | Bin 0 -> 69116 bytes data/pam-modules/pw_util.h | 65 ++++++++++++++++++++++++ data/pam-modules/tempname.diff | 12 +++++ data/pam-modules/vproc_priv.h | 82 +++++++++++++++++++++++++++++++ 17 files changed, 186 insertions(+) create mode 100644 data/pam-modules/_metadata/depends create mode 100644 data/pam-modules/_metadata/description create mode 120000 data/pam-modules/_metadata/license create mode 120000 data/pam-modules/_metadata/maintainer create mode 100644 data/pam-modules/_metadata/name create mode 120000 data/pam-modules/_metadata/pam.dep create mode 100755 data/pam-modules/_metadata/preinst create mode 100644 data/pam-modules/_metadata/priority create mode 100644 data/pam-modules/_metadata/role create mode 100644 data/pam-modules/_metadata/section create mode 100644 data/pam-modules/_metadata/tags create mode 100644 data/pam-modules/_metadata/version create mode 100644 data/pam-modules/make.sh create mode 100644 data/pam-modules/pam_modules-36.1.tar.gz create mode 100644 data/pam-modules/pw_util.h create mode 100644 data/pam-modules/tempname.diff create mode 100644 data/pam-modules/vproc_priv.h (limited to 'data/pam-modules') diff --git a/data/pam-modules/_metadata/depends b/data/pam-modules/_metadata/depends new file mode 100644 index 000000000..d91809320 --- /dev/null +++ b/data/pam-modules/_metadata/depends @@ -0,0 +1 @@ +system-cmds diff --git a/data/pam-modules/_metadata/description b/data/pam-modules/_metadata/description new file mode 100644 index 000000000..18d6587c9 --- /dev/null +++ b/data/pam-modules/_metadata/description @@ -0,0 +1 @@ +standard Apple authentication modules diff --git a/data/pam-modules/_metadata/license b/data/pam-modules/_metadata/license new file mode 120000 index 000000000..9e5e5e89d --- /dev/null +++ b/data/pam-modules/_metadata/license @@ -0,0 +1 @@ +../../../licenses/apsl-2.0 \ No newline at end of file diff --git a/data/pam-modules/_metadata/maintainer b/data/pam-modules/_metadata/maintainer new file mode 120000 index 000000000..0fa66e077 --- /dev/null +++ b/data/pam-modules/_metadata/maintainer @@ -0,0 +1 @@ +../../../people/saurik \ No newline at end of file diff --git a/data/pam-modules/_metadata/name b/data/pam-modules/_metadata/name new file mode 100644 index 000000000..67526dc53 --- /dev/null +++ b/data/pam-modules/_metadata/name @@ -0,0 +1 @@ +PAM Modules diff --git a/data/pam-modules/_metadata/pam.dep b/data/pam-modules/_metadata/pam.dep new file mode 120000 index 000000000..d21087a2d --- /dev/null +++ b/data/pam-modules/_metadata/pam.dep @@ -0,0 +1 @@ +../../pam \ No newline at end of file diff --git a/data/pam-modules/_metadata/preinst b/data/pam-modules/_metadata/preinst new file mode 100755 index 000000000..498792bf9 --- /dev/null +++ b/data/pam-modules/_metadata/preinst @@ -0,0 +1,7 @@ +#!/bin/bash + +if [[ $1 == install || $1 == upgrade ]]; then + /usr/libexec/cydia/move.sh /usr/lib/pam +fi + +exit 0 diff --git a/data/pam-modules/_metadata/priority b/data/pam-modules/_metadata/priority new file mode 100644 index 000000000..a6a7b9cd7 --- /dev/null +++ b/data/pam-modules/_metadata/priority @@ -0,0 +1 @@ +standard diff --git a/data/pam-modules/_metadata/role b/data/pam-modules/_metadata/role new file mode 100644 index 000000000..52b4d7301 --- /dev/null +++ b/data/pam-modules/_metadata/role @@ -0,0 +1 @@ +hacker diff --git a/data/pam-modules/_metadata/section b/data/pam-modules/_metadata/section new file mode 100644 index 000000000..eb7a34ddd --- /dev/null +++ b/data/pam-modules/_metadata/section @@ -0,0 +1 @@ +Administration diff --git a/data/pam-modules/_metadata/tags b/data/pam-modules/_metadata/tags new file mode 100644 index 000000000..a8928cec8 --- /dev/null +++ b/data/pam-modules/_metadata/tags @@ -0,0 +1 @@ +purpose::library diff --git a/data/pam-modules/_metadata/version b/data/pam-modules/_metadata/version new file mode 100644 index 000000000..2b194df7e --- /dev/null +++ b/data/pam-modules/_metadata/version @@ -0,0 +1 @@ +36.1 diff --git a/data/pam-modules/make.sh b/data/pam-modules/make.sh new file mode 100644 index 000000000..18bd58e50 --- /dev/null +++ b/data/pam-modules/make.sh @@ -0,0 +1,9 @@ +pkg:setup + +pkg: mkdir -p /usr/lib/pam + +for module in launchd unix uwtmp; do + echo "${module}" + "${PKG_TARG}-gcc" -shared -o "pam_${module}.so" "pam_${module}"/*.c -lpam -I"${PKG_DATA}" || true + pkg: cp -a "pam_${module}.so" /usr/lib/pam +done diff --git a/data/pam-modules/pam_modules-36.1.tar.gz b/data/pam-modules/pam_modules-36.1.tar.gz new file mode 100644 index 000000000..c7816a223 Binary files /dev/null and b/data/pam-modules/pam_modules-36.1.tar.gz differ diff --git a/data/pam-modules/pw_util.h b/data/pam-modules/pw_util.h new file mode 100644 index 000000000..b5811b0a2 --- /dev/null +++ b/data/pam-modules/pw_util.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Reserved. This file contains Original Code and/or Modifications of + * Original Code as defined in and that are subject to the Apple Public + * Source License Version 1.0 (the 'License'). You may not use this file + * except in compliance with the License. Please obtain a copy of the + * License at http://www.apple.com/publicsource and read it before using + * this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License." + * + * @APPLE_LICENSE_HEADER_END@ + */ +/*- + * Copyright (c) 1994 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)pw_util.h 8.2 (Berkeley) 4/1/94 + */ + +void pw_edit __P((int)); +void pw_error __P((char *, int, int)); +void pw_init __P((void)); +int pw_lock __P((void)); +int pw_mkdb __P((void)); +void pw_prompt __P((void)); +int pw_tmp __P((void)); diff --git a/data/pam-modules/tempname.diff b/data/pam-modules/tempname.diff new file mode 100644 index 000000000..a8d06558c --- /dev/null +++ b/data/pam-modules/tempname.diff @@ -0,0 +1,12 @@ +diff -ru pam_modules-36.1/pam_unix/pw_util.c pam_modules-36.1+iPhone/pam_unix/pw_util.c +--- pam_modules-36.1/pam_unix/pw_util.c 2007-01-16 05:28:31.000000000 +0000 ++++ pam_modules-36.1+iPhone/pam_unix/pw_util.c 2009-04-08 09:26:20.000000000 +0000 +@@ -82,7 +82,7 @@ + + #include "pw_util.h" + +-extern char *tempname; ++char *tempname; + static pid_t editpid = -1; + static int lockfd; + diff --git a/data/pam-modules/vproc_priv.h b/data/pam-modules/vproc_priv.h new file mode 100644 index 000000000..991ceb0bc --- /dev/null +++ b/data/pam-modules/vproc_priv.h @@ -0,0 +1,82 @@ +#ifndef _VPROC_PRIVATE_H_ +#define _VPROC_PRIVATE_H_ +/* + * Copyright (c) 2006 Apple Computer, Inc. All rights reserved. + * + * @APPLE_APACHE_LICENSE_HEADER_START@ + * + * 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. + * + * @APPLE_APACHE_LICENSE_HEADER_END@ + */ + +#include +#include +#include +#include +#include +#include + +__BEGIN_DECLS + +#pragma GCC visibility push(default) + +/* DO NOT use this. This is a hack for launchctl */ +#define VPROC_MAGIC_UNLOAD_SIGNAL 0x4141504C + +typedef enum { + VPROC_GSK_LAST_EXIT_STATUS = 1, + VPROC_GSK_GLOBAL_ON_DEMAND, + VPROC_GSK_MGR_UID, + VPROC_GSK_MGR_PID, + VPROC_GSK_IS_MANAGED, + VPROC_GSK_BASIC_KEEPALIVE, + VPROC_GSK_START_INTERVAL, + VPROC_GSK_IDLE_TIMEOUT, + VPROC_GSK_EXIT_TIMEOUT, + VPROC_GSK_ENVIRONMENT, + VPROC_GSK_ALLJOBS, + VPROC_GSK_GLOBAL_LOG_MASK, + VPROC_GSK_GLOBAL_UMASK, +} vproc_gsk_t; + +vproc_err_t vproc_swap_integer(vproc_t vp, vproc_gsk_t key, int64_t *inval, int64_t *outval); +vproc_err_t vproc_swap_complex(vproc_t vp, vproc_gsk_t key, launch_data_t inval, launch_data_t *outval); + +vproc_err_t _vproc_get_last_exit_status(int *wstatus); +vproc_err_t _vproc_set_global_on_demand(bool val); + +typedef void (*_vprocmgr_log_drain_callback_t)(struct timeval *when, pid_t from_pid, pid_t about_pid, uid_t sender_uid, gid_t sender_gid, int priority, const char *from_name, const char *about_name, const char *session_name, const char *msg); + +vproc_err_t _vprocmgr_log_drain(vproc_t vp, pthread_mutex_t *optional_mutex_around_callback, _vprocmgr_log_drain_callback_t func); + +vproc_err_t _vproc_send_signal_by_label(const char *label, int sig); +vproc_err_t _vproc_kickstart_by_label(const char *label, pid_t *out_pid, mach_port_t *out_port_name); +vproc_err_t _vproc_wait_by_label(const char *label, int *out_wstatus); + +void _vproc_log(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3))); +void _vproc_log_error(int pri, const char *msg, ...) __attribute__((format(printf, 2, 3))); + +#define VPROCMGR_SESSION_LOGINWINDOW "LoginWindow" +#define VPROCMGR_SESSION_BACKGROUND "Background" +#define VPROCMGR_SESSION_AQUA "Aqua" +#define VPROCMGR_SESSION_STANDARDIO "StandardIO" +#define VPROCMGR_SESSION_SYSTEM "System" + +vproc_err_t _vprocmgr_move_subset_to_user(uid_t target_user, const char *session_type); + +#pragma GCC visibility pop + +__END_DECLS + +#endif -- cgit v1.2.3