Hi Klaus.
Add support --pkcs11user=pkcs11 and --pkcs11group=pkcs11
to configure. To support changing user/group account running
pkcsslotd.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff -uprN opencryptoki-2.3.2.orig/configure.in opencryptoki-2.3.2/configure.in
--- opencryptoki-2.3.2.orig/configure.in 2010-07-29 21:28:41.000000000
+0900
+++ opencryptoki-2.3.2/configure.in 2011-01-02 21:11:58.551676300 +0900
@@ -193,6 +193,21 @@ AC_ARG_WITH([xcryptolinz],
[],
[with_xcryptolinz=check])
+dnl --- check for pkcs11 user
+AC_ARG_WITH([pkcs11user],
+ AC_HELP_STRING([--with-pkcs11user[[=USER]]], [set pkcs11 user
[[pkcs11]]]),
+ [pkcs11_user=$withval],
+ [pkcs11_user=pkcs11])
+
+dnl --- check for pkcs11 group
+AC_ARG_WITH(pkcs11group,
+ AC_HELP_STRING([--with-pkcs11group[[=GROUP]]], [set pkcs11 group
[[pkcs11]]]),
+ [pkcs11_group=$withval],
+ [pkcs11_group=pkcs11])
+
+AC_SUBST(PKCS11USER, $pkcs11_user)
+AC_SUBST(PKCS11GROUP, $pkcs11_group)
+
dnl ---
dnl ---
dnl --- Now that we have all the options, let's check for a valid build
diff -uprN opencryptoki-2.3.2.orig/usr/lib/pkcs11/api/shrd_mem.c.in
opencryptoki-2.3.2/usr/lib/pkcs11/api/shrd_mem.c.in
--- opencryptoki-2.3.2.orig/usr/lib/pkcs11/api/shrd_mem.c.in 2010-07-29
21:28:41.000000000 +0900
+++ opencryptoki-2.3.2/usr/lib/pkcs11/api/shrd_mem.c.in 2011-01-02
21:13:12.586673320 +0900
@@ -353,7 +353,7 @@ attach_shared_memory() {
// SAB check for the group id here and membership here as well
- grp = getgrnam("pkcs11");
+ grp = getgrnam(PKCS11GROUP);
if ( grp ) {
int i=0;
char member=0;
diff -uprN opencryptoki-2.3.2.orig/usr/lib/pkcs11/cca_stdll/loadsave.c
opencryptoki-2.3.2/usr/lib/pkcs11/cca_stdll/loadsave.c
--- opencryptoki-2.3.2.orig/usr/lib/pkcs11/cca_stdll/loadsave.c 2010-07-29
21:28:41.000000000 +0900
+++ opencryptoki-2.3.2/usr/lib/pkcs11/cca_stdll/loadsave.c 2011-01-02
21:14:55.028672426 +0900
@@ -51,7 +51,7 @@ set_perm(int file)
// Set absolute permissions or rw-rw-r--
fchmod(file,S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH);
- grp = getgrnam("pkcs11"); // Obtain the group id
+ grp = getgrnam(PKCS11GROUP); // Obtain the group id
if (grp){
fchown(file,getuid(),grp->gr_gid); // set ownership to root, and
pkcs11 group
}
diff -uprN opencryptoki-2.3.2.orig/usr/lib/pkcs11/cca_stdll/new_host.c
opencryptoki-2.3.2/usr/lib/pkcs11/cca_stdll/new_host.c
--- opencryptoki-2.3.2.orig/usr/lib/pkcs11/cca_stdll/new_host.c 2010-07-29
21:28:41.000000000 +0900
+++ opencryptoki-2.3.2/usr/lib/pkcs11/cca_stdll/new_host.c 2011-01-02
21:15:19.847672187 +0900
@@ -298,7 +298,7 @@ ST_Initialize(void **FunctionList,
struct group *grp;
int rc = 0;
gid_t gid,egid;
- grp = getgrnam("pkcs11");
+ grp = getgrnam(PKCS11GROUP);
if (grp) {
// Check for member of group..
// SAB get login seems to not work with some
diff -uprN opencryptoki-2.3.2.orig/usr/lib/pkcs11/common/loadsave.c
opencryptoki-2.3.2/usr/lib/pkcs11/common/loadsave.c
--- opencryptoki-2.3.2.orig/usr/lib/pkcs11/common/loadsave.c 2010-07-29
21:28:41.000000000 +0900
+++ opencryptoki-2.3.2/usr/lib/pkcs11/common/loadsave.c 2011-01-02
21:15:41.725673684 +0900
@@ -328,7 +328,7 @@ set_perm(int file)
// Set absolute permissions or rw-rw-r--
fchmod(file,S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH);
- grp = getgrnam("pkcs11"); // Obtain the group id
+ grp = getgrnam(PKCS11GROUP); // Obtain the group id
if (grp){
fchown(file,getuid(),grp->gr_gid); // set ownership to root, and
pkcs11 group
}
diff -uprN opencryptoki-2.3.2.orig/usr/lib/pkcs11/common/new_host.c
opencryptoki-2.3.2/usr/lib/pkcs11/common/new_host.c
--- opencryptoki-2.3.2.orig/usr/lib/pkcs11/common/new_host.c 2010-07-29
21:28:41.000000000 +0900
+++ opencryptoki-2.3.2/usr/lib/pkcs11/common/new_host.c 2011-01-02
21:16:06.748675957 +0900
@@ -576,7 +576,7 @@ ST_Initialize(void **FunctionList,
struct group *grp;
int rc = 0;
gid_t gid,egid;
- grp = getgrnam("pkcs11");
+ grp = getgrnam(PKCS11GROUP);
if (grp) {
// Check for member of group..
// SAB get login seems to not work with some
diff -uprN opencryptoki-2.3.2.orig/usr/lib/pkcs11/tpm_stdll/loadsave.c
opencryptoki-2.3.2/usr/lib/pkcs11/tpm_stdll/loadsave.c
--- opencryptoki-2.3.2.orig/usr/lib/pkcs11/tpm_stdll/loadsave.c 2010-07-29
21:28:41.000000000 +0900
+++ opencryptoki-2.3.2/usr/lib/pkcs11/tpm_stdll/loadsave.c 2011-01-02
21:17:41.491671045 +0900
@@ -339,7 +339,7 @@ set_perm(int file)
fchmod(file,S_IRUSR|S_IWUSR);
#if 0
- grp = getgrnam("pkcs11"); // Obtain the group id
+ grp = getgrnam(PKCS11GROUP); // Obtain the group id
if (grp){
fchown(file,getuid(),grp->gr_gid); // set ownership to root, and pkcs11
group
}
diff -uprN opencryptoki-2.3.2.orig/usr/lib/pkcs11/tpm_stdll/new_host.c
opencryptoki-2.3.2/usr/lib/pkcs11/tpm_stdll/new_host.c
--- opencryptoki-2.3.2.orig/usr/lib/pkcs11/tpm_stdll/new_host.c 2010-07-29
21:28:41.000000000 +0900
+++ opencryptoki-2.3.2/usr/lib/pkcs11/tpm_stdll/new_host.c 2011-01-02
21:18:02.746672482 +0900
@@ -356,7 +356,7 @@ CK_RV ST_Initialize( void **FunctionList
int rc = 0;
int index = 0;
gid_t gid,egid;
- grp = getgrnam("pkcs11");
+ grp = getgrnam(PKCS11GROUP);
if ( grp ) {
// Check for member of group..
diff -uprN opencryptoki-2.3.2.orig/usr/sbin/pkcs11_startup/Makefile.am
opencryptoki-2.3.2/usr/sbin/pkcs11_startup/Makefile.am
--- opencryptoki-2.3.2.orig/usr/sbin/pkcs11_startup/Makefile.am 2010-07-29
21:28:41.000000000 +0900
+++ opencryptoki-2.3.2/usr/sbin/pkcs11_startup/Makefile.am 2011-01-02
21:18:48.216674756 +0900
@@ -12,6 +12,8 @@ pkcs11_startup: pkcs11_startup.in
-e s...@id\@!"@ID@"!g \
-e s...@cat\@!"@CAT@"!g \
-e s...@sed\@!"@SED@"!g \
+ -e s...@pkcs11user\@!"@PKCS11USER@"!g \
+ -e s...@pkcs11group\@!"@PKCS11GROUP@"!g \
-e s...@groupadd\@!"@GROUPADD@"!g \
-e s...@usermod\@!"@USERMOD@"!g < $< > $...@-t
@CHMOD@ +x $...@-t
diff -uprN opencryptoki-2.3.2.orig/usr/sbin/pkcs11_startup/pkcs11_startup.in
opencryptoki-2.3.2/usr/sbin/pkcs11_startup/pkcs11_startup.in
--- opencryptoki-2.3.2.orig/usr/sbin/pkcs11_startup/pkcs11_startup.in
2010-07-29 21:28:41.000000000 +0900
+++ opencryptoki-2.3.2/usr/sbin/pkcs11_startup/pkcs11_startup.in
2011-01-02 21:20:32.779674866 +0900
@@ -310,16 +310,16 @@ rm -f @localstatedir@/lib/opencryptoki/p
# Create the pkcs11 group if it does not exist...
-cat /etc/group|grep pkcs11 >/dev/null 2>&1
+cat /etc/group|grep @PKCS11GROUP@ >/dev/null 2>&1
rc=$?
if [ $rc = 1 ]
then
if [ -x @GROUPADD@ ]
then
- @GROUPADD@ pkcs11 >/dev/null 2>&1
+ @GROUPADD@ @PKCS11GROUP@ >/dev/null 2>&1
else
- echo "Couldn't execute @group...@. Please add the group 'pkcs11'
manually."
+ echo "Couldn't execute @group...@. Please add the group
'@PKCS11GROUP@' manually."
fi
fi
@@ -328,9 +328,9 @@ if [ -x @USERMOD@ -a -x @ID@ ]
then
# add the pkcs group
# replace spaces by commas
- @USERMOD@ -G $( @ID@ --groups --name root | @SED@ -e 'y/ /,/'),pkcs11
root
+ @USERMOD@ -G $( @ID@ --groups --name root | @SED@ -e 'y/
/,/'),@PKCS11GROUP@ root
else
- echo "Couldn't execute @user...@. Please add root to the group 'pkcs11'
manually."
+ echo "Couldn't execute @user...@. Please add root to the group
'@PKCS11GROUP@' manually."
fi
diff -uprN opencryptoki-2.3.2.orig/usr/sbin/pkcs_slot/pkcs_slot.in
opencryptoki-2.3.2/usr/sbin/pkcs_slot/pkcs_slot.in
--- opencryptoki-2.3.2.orig/usr/sbin/pkcs_slot/pkcs_slot.in 2010-07-29
21:28:41.000000000 +0900
+++ opencryptoki-2.3.2/usr/sbin/pkcs_slot/pkcs_slot.in 2011-01-02
21:25:12.917674721 +0900
@@ -360,7 +360,7 @@ DEPTH=$2
if [ ! -d @localstatedir@/lib/opencryptoki ]
then
@MKDIR_P@ @localstatedir@/lib/opencryptoki
- @CHGRP@ pkcs11 @localstatedir@/lib/opencryptoki
+ @CHGRP@ @PKCS11GROUP@ @localstatedir@/lib/opencryptoki
@CHMOD@ -R g+rwX @localstatedir@/lib/opencryptoki
fi
@@ -372,9 +372,9 @@ then
if [ $? -ne 0 ]
then
mkdir $SOFT_DIR
- @CHGRP@ pkcs11 $SOFT_DIR
+ @CHGRP@ @PKCS11GROUP@ $SOFT_DIR
mkdir "$SOFT_DIR"/TOK_OBJ
- @CHGRP@ pkcs11 "$SOFT_DIR"/TOK_OBJ
+ @CHGRP@ @PKCS11GROUP@ "$SOFT_DIR"/TOK_OBJ
fi
SYS_SLOT="Soft"
fi
@@ -386,7 +386,7 @@ then
if [ $? -ne 0 ]
then
mkdir $TPM_DIR
- @CHGRP@ pkcs11 $TPM_DIR
+ @CHGRP@ @PKCS11GROUP@ $TPM_DIR
fi
SYS_SLOT="TPM"
fi
@@ -397,16 +397,16 @@ then
if [ $? -ne 0 ]
then
mkdir $CCA_DIR
- @CHGRP@ pkcs11 $CCA_DIR
+ @CHGRP@ @PKCS11GROUP@ $CCA_DIR
mkdir "$CCA_DIR"/TOK_OBJ
- @CHGRP@ pkcs11 "$CCA_DIR"/TOK_OBJ
+ @CHGRP@ @PKCS11GROUP@ "$CCA_DIR"/TOK_OBJ
fi
SYS_SLOT="CCA"
fi
# If we are using a shallow device, make sure that the directory
# to store token objects is available, if not create it and change
-# the ownership to the pkcs11 group
+# the ownership to the @PKCS11GROUP@ group
if [ $DEPTH = "ica" ]
@@ -415,9 +415,9 @@ then
if [ $? -ne 0 ]
then
mkdir $ICA_DIR
- @CHGRP@ pkcs11 $ICA_DIR
+ @CHGRP@ @PKCS11GROUP@ $ICA_DIR
mkdir "$ICA_DIR"/TOK_OBJ
- @CHGRP@ pkcs11 "$ICA_DIR"/TOK_OBJ
+ @CHGRP@ @PKCS11GROUP@ "$ICA_DIR"/TOK_OBJ
fi
SYS_SLOT="ICA"
fi
@@ -428,9 +428,9 @@ then
if [ $? -ne 0 ]
then
mkdir $BCOM_DIR
- @CHGRP@ pkcs11 $BCOM_DIR
+ @CHGRP@ @PKCS11GROUP@ $BCOM_DIR
mkdir "$BCOM_DIR"/TOK_OBJ
- @CHGRP@ pkcs11 "$BCOM_DIR"/TOK_OBJ
+ @CHGRP@ @PKCS11GROUP@ "$BCOM_DIR"/TOK_OBJ
fi
SYS_SLOT="BCOM"
fi
@@ -441,9 +441,9 @@ then
if [ $? -ne 0 ]
then
mkdir $AEP_DIR
- @CHGRP@ pkcs11 $AEP_DIR
+ @CHGRP@ @PKCS11GROUP@ $AEP_DIR
mkdir "$AEP_DIR"/TOK_OBJ
- @CHGRP@ pkcs11 "$AEP_DIR"/TOK_OBJ
+ @CHGRP@ @PKCS11GROUP@ "$AEP_DIR"/TOK_OBJ
fi
SYS_SLOT="AEP"
fi
@@ -454,9 +454,9 @@ then
if [ $? -ne 0 ]
then
mkdir $CR_DIR
- @CHGRP@ pkcs11 $CR_DIR
+ @CHGRP@ @PKCS11GROUP@ $CR_DIR
mkdir "$CR_DIR"/TOK_OBJ
- @CHGRP@ pkcs11 "$CR_DIR"/TOK_OBJ
+ @CHGRP@ @PKCS11GROUP@ "$CR_DIR"/TOK_OBJ
fi
SYS_SLOT="CRNT"
fi
diff -uprN opencryptoki-2.3.2.orig/usr/sbin/pkcsslotd/shmem.c
opencryptoki-2.3.2/usr/sbin/pkcsslotd/shmem.c
--- opencryptoki-2.3.2.orig/usr/sbin/pkcsslotd/shmem.c 2010-07-29
21:28:41.000000000 +0900
+++ opencryptoki-2.3.2/usr/sbin/pkcsslotd/shmem.c 2011-01-02
21:28:00.449673400 +0900
@@ -338,9 +338,9 @@ int CreateSharedMemory ( void ) {
}
// SAB Get the group information for the PKCS#11 group... fail if
// it does not exist
- grp = getgrnam("pkcs11");
+ grp = getgrnam(PKCS11GROUP);
if ( !grp ) {
- ErrLog("Group PKCS#11 does not exist ");
+ ErrLog("Group " PKCS11GROUP " does not exist ");
return FALSE; // Group does not exist... setup is wrong..
}
@@ -409,9 +409,9 @@ int CreateSharedMemory ( void ) {
int i;
char *buffer;
- grp = getgrnam("pkcs11");
+ grp = getgrnam(PKCS11GROUP);
if ( !grp ) {
- ErrLog("Group \"pkcs11\" does not exist! Please run %s/pkcs11_startup.",
+ ErrLog("Group " PKCS11GROUP " does not exist! Please run
%s/pkcs11_startup.",
SBIN_PATH);
return FALSE; // Group does not exist... setup is wrong..
}
@@ -431,7 +431,7 @@ int CreateSharedMemory ( void ) {
return FALSE;
}
if (fchown(fd, 0, grp->gr_gid) == -1) {
- ErrLog("%s: fchown(%s, root, pkcs11): %s", __FUNCTION__, MAPFILENAME,
+ ErrLog("%s: fchown(%s, root, %s): %s", __FUNCTION__, MAPFILENAME,
PKCS11GROUP,
strerror(errno));
close(fd);
return FALSE;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Thank you.
--
Norikatsu Shigemura <[email protected]>
------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and,
should the need arise, upgrade to a full multi-node Oracle RAC database
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Opencryptoki-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opencryptoki-tech