|
|
7a13e7 |
diff -up ecryptfs-utils-87/src/include/ecryptfs.h.syslog ecryptfs-utils-87/src/include/ecryptfs.h
|
|
|
7a13e7 |
--- ecryptfs-utils-87/src/include/ecryptfs.h.syslog 2011-08-09 13:53:46.159665547 +0200
|
|
|
7a13e7 |
+++ ecryptfs-utils-87/src/include/ecryptfs.h 2011-08-09 13:53:46.194664841 +0200
|
|
|
7a13e7 |
@@ -143,7 +143,7 @@
|
|
|
7a13e7 |
#define ECRYPTFS_TAG_67_PACKET 0x43
|
|
|
7a13e7 |
|
|
|
7a13e7 |
#define ecryptfs_syslog(type, fmt, arg...) \
|
|
|
7a13e7 |
- syslog(type, "%s: " fmt, __FUNCTION__, ## arg);
|
|
|
7a13e7 |
+ syslog(type, "ecryptfs: %s: " fmt, __FUNCTION__, ## arg);
|
|
|
7a13e7 |
|
|
|
7a13e7 |
#define ECRYPTFS_MAX_NUM_CIPHERS 64
|
|
|
7a13e7 |
#define ECRYPTFS_ECHO_ON 1
|
|
|
7a13e7 |
diff -up ecryptfs-utils-87/src/pam_ecryptfs/pam_ecryptfs.c.syslog ecryptfs-utils-87/src/pam_ecryptfs/pam_ecryptfs.c
|
|
|
7a13e7 |
--- ecryptfs-utils-87/src/pam_ecryptfs/pam_ecryptfs.c.syslog 2011-08-09 13:53:46.155665627 +0200
|
|
|
7a13e7 |
+++ ecryptfs-utils-87/src/pam_ecryptfs/pam_ecryptfs.c 2011-08-09 14:01:13.663636527 +0200
|
|
|
7a13e7 |
@@ -88,7 +88,7 @@ static int wrap_passphrase_if_necessary(
|
|
|
7a13e7 |
|
|
|
7a13e7 |
rc = asprintf(&unwrapped_pw_filename, "/dev/shm/.ecryptfs-%s", username);
|
|
|
7a13e7 |
if (rc == -1) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Unable to allocate memory\n");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Unable to allocate memory\n");
|
|
|
7a13e7 |
return -ENOMEM;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
/* If /dev/shm/.ecryptfs-$USER exists and owned by the user
|
|
|
7a13e7 |
@@ -102,7 +102,7 @@ static int wrap_passphrase_if_necessary(
|
|
|
7a13e7 |
setuid(uid);
|
|
|
7a13e7 |
rc = ecryptfs_wrap_passphrase_file(wrapped_pw_filename, passphrase, salt, unwrapped_pw_filename);
|
|
|
7a13e7 |
if (rc != 0) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Error wrapping cleartext password; " "rc = [%d]\n", rc);
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Error wrapping cleartext password; " "rc = [%d]\n", rc);
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
return rc;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
@@ -119,10 +119,10 @@ PAM_EXTERN int pam_sm_authenticate(pam_h
|
|
|
7a13e7 |
uint32_t version;
|
|
|
7a13e7 |
struct ecryptfs_pam_data *epd = {0,};
|
|
|
7a13e7 |
|
|
|
7a13e7 |
- syslog(LOG_INFO, "%s: Called\n", __FUNCTION__);
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_INFO, "pam auth stack calls pam_ecryptfs module");
|
|
|
7a13e7 |
|
|
|
7a13e7 |
if ((epd = malloc(sizeof(struct ecryptfs_pam_data))) == NULL) {
|
|
|
7a13e7 |
- syslog(LOG_ERR,"Memory allocation failed");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR,"Memory allocation failed");
|
|
|
7a13e7 |
rc = -ENOMEM;
|
|
|
7a13e7 |
goto out;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
@@ -131,7 +131,7 @@ PAM_EXTERN int pam_sm_authenticate(pam_h
|
|
|
7a13e7 |
if (rc == PAM_SUCCESS) {
|
|
|
7a13e7 |
struct passwd *pwd;
|
|
|
7a13e7 |
|
|
|
7a13e7 |
- syslog(LOG_INFO, "%s: username = [%s]\n", __FUNCTION__,
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_INFO, "pam_ecryptfs: username = [%s]\n",
|
|
|
7a13e7 |
epd->username);
|
|
|
7a13e7 |
pwd = getpwnam(epd->username);
|
|
|
7a13e7 |
if (pwd) {
|
|
|
7a13e7 |
@@ -139,7 +139,7 @@ PAM_EXTERN int pam_sm_authenticate(pam_h
|
|
|
7a13e7 |
epd->homedir = pwd->pw_dir;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
} else {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Error getting passwd info for user [%s]; "
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Error getting passwd info for user [%s]; "
|
|
|
7a13e7 |
"rc = [%ld]\n", epd->username, rc);
|
|
|
7a13e7 |
goto out;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
@@ -147,7 +147,7 @@ PAM_EXTERN int pam_sm_authenticate(pam_h
|
|
|
7a13e7 |
goto out;
|
|
|
7a13e7 |
private_mnt = ecryptfs_fetch_private_mnt(epd->homedir);
|
|
|
7a13e7 |
if (ecryptfs_private_is_mounted(NULL, private_mnt, NULL, 1)) {
|
|
|
7a13e7 |
- syslog(LOG_INFO, "%s: %s is already mounted\n", __FUNCTION__,
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_INFO, "%s is already mounted",
|
|
|
7a13e7 |
epd->homedir);
|
|
|
7a13e7 |
/* If private/home is already mounted, then we can skip
|
|
|
7a13e7 |
costly loading of keys */
|
|
|
7a13e7 |
@@ -156,7 +156,7 @@ PAM_EXTERN int pam_sm_authenticate(pam_h
|
|
|
7a13e7 |
/* we need side effect of this check:
|
|
|
7a13e7 |
load ecryptfs module if not loaded already */
|
|
|
7a13e7 |
if (ecryptfs_get_version(&version) != 0)
|
|
|
7a13e7 |
- syslog(LOG_WARNING, "Can't check if kernel supports ecryptfs\n");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_WARNING, "Can't check if kernel supports ecryptfs\n");
|
|
|
7a13e7 |
saved_uid = geteuid();
|
|
|
7a13e7 |
seteuid(epd->uid);
|
|
|
7a13e7 |
if(file_exists_dotecryptfs(epd->homedir, "wrapping-independent") == 1)
|
|
|
7a13e7 |
@@ -165,7 +165,7 @@ PAM_EXTERN int pam_sm_authenticate(pam_h
|
|
|
7a13e7 |
rc = pam_get_item(pamh, PAM_AUTHTOK, (const void **)&epd->passphrase);
|
|
|
7a13e7 |
seteuid(saved_uid);
|
|
|
7a13e7 |
if (rc != PAM_SUCCESS) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Error retrieving passphrase; rc = [%ld]\n",
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Error retrieving passphrase; rc = [%ld]\n",
|
|
|
7a13e7 |
rc);
|
|
|
7a13e7 |
goto out;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
@@ -179,9 +179,9 @@ PAM_EXTERN int pam_sm_authenticate(pam_h
|
|
|
7a13e7 |
epd->unwrap = ((argc == 1) && (memcmp(argv[0], "unwrap\0", 7) == 0));
|
|
|
7a13e7 |
if ((rc=pam_set_data(pamh, ECRYPTFS_PAM_DATA, epd, pam_free_ecryptfsdata)) != PAM_SUCCESS) {
|
|
|
7a13e7 |
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Unable to store ecryptfs pam data : %s", pam_strerror(pamh, rc));
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Unable to store ecryptfs pam data : %s", pam_strerror(pamh, rc));
|
|
|
7a13e7 |
goto out;
|
|
|
7a13e7 |
- }
|
|
|
7a13e7 |
+ }
|
|
|
7a13e7 |
|
|
|
7a13e7 |
out:
|
|
|
7a13e7 |
if (private_mnt != NULL)
|
|
|
7a13e7 |
@@ -203,13 +203,13 @@ static struct passwd *fetch_pwd(pam_hand
|
|
|
7a13e7 |
|
|
|
7a13e7 |
rc = pam_get_user(pamh, &username, NULL);
|
|
|
7a13e7 |
if (rc != PAM_SUCCESS || username == NULL) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Error getting passwd info for user [%s]; "
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Error getting passwd info for user [%s]; "
|
|
|
7a13e7 |
"rc = [%ld]\n", username, rc);
|
|
|
7a13e7 |
return NULL;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
pwd = getpwnam(username);
|
|
|
7a13e7 |
if (pwd == NULL) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Error getting passwd info for user [%s]; "
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Error getting passwd info for user [%s]; "
|
|
|
7a13e7 |
"rc = [%ld]\n", username, rc);
|
|
|
7a13e7 |
return NULL;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
@@ -241,13 +241,13 @@ static int private_dir(pam_handle_t *pam
|
|
|
7a13e7 |
if (
|
|
|
7a13e7 |
(asprintf(&autofile, "%s/.ecryptfs/%s", pwd->pw_dir, a) < 0)
|
|
|
7a13e7 |
|| autofile == NULL) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Error allocating memory for autofile name");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Error allocating memory for autofile name");
|
|
|
7a13e7 |
return 1;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
if (
|
|
|
7a13e7 |
(asprintf(&sigfile, "%s/.ecryptfs/%s.sig", pwd->pw_dir,
|
|
|
7a13e7 |
PRIVATE_DIR) < 0) || sigfile == NULL) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Error allocating memory for sigfile name");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Error allocating memory for sigfile name");
|
|
|
7a13e7 |
return 1;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
if (stat(sigfile, &s) != 0) {
|
|
|
7a13e7 |
@@ -259,13 +259,13 @@ static int private_dir(pam_handle_t *pam
|
|
|
7a13e7 |
goto out;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
if ((pid = fork()) < 0) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Error setting up private mount");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Error setting up private mount");
|
|
|
7a13e7 |
return 1;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
if (pid == 0) {
|
|
|
7a13e7 |
/* set user's groups, we may need ecryptfs group for (u)mount */
|
|
|
7a13e7 |
if (initgroups(pwd->pw_name, pwd->pw_gid) != 0) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Unable to set user's groups : %m");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Unable to set user's groups : %m");
|
|
|
7a13e7 |
_exit(255);
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
|
|
|
7a13e7 |
@@ -273,7 +273,7 @@ static int private_dir(pam_handle_t *pam
|
|
|
7a13e7 |
if ((asprintf(&recorded,
|
|
|
7a13e7 |
"%s/.ecryptfs/.wrapped-passphrase.recorded",
|
|
|
7a13e7 |
pwd->pw_dir) < 0) || recorded == NULL) {
|
|
|
7a13e7 |
- syslog(LOG_ERR,
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR,
|
|
|
7a13e7 |
"Error allocating memory for recorded name");
|
|
|
7a13e7 |
_exit(255);
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
@@ -286,7 +286,7 @@ static int private_dir(pam_handle_t *pam
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
if (stat(autofile, &s) != 0) {
|
|
|
7a13e7 |
/* User does not want to auto-mount */
|
|
|
7a13e7 |
- syslog(LOG_INFO,
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_INFO,
|
|
|
7a13e7 |
"Skipping automatic eCryptfs mount");
|
|
|
7a13e7 |
_exit(0);
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
@@ -294,11 +294,11 @@ static int private_dir(pam_handle_t *pam
|
|
|
7a13e7 |
setresuid(pwd->pw_uid, pwd->pw_uid, pwd->pw_uid);
|
|
|
7a13e7 |
execl("/sbin/mount.ecryptfs_private",
|
|
|
7a13e7 |
"mount.ecryptfs_private", NULL);
|
|
|
7a13e7 |
- syslog(LOG_ERR,"unable to execute mount.ecryptfs_private : %m");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR,"unable to execute mount.ecryptfs_private : %m");
|
|
|
7a13e7 |
} else {
|
|
|
7a13e7 |
if (stat(autofile, &s) != 0) {
|
|
|
7a13e7 |
/* User does not want to auto-unmount */
|
|
|
7a13e7 |
- syslog(LOG_INFO,
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_INFO,
|
|
|
7a13e7 |
"Skipping automatic eCryptfs unmount");
|
|
|
7a13e7 |
_exit(0);
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
@@ -306,7 +306,7 @@ static int private_dir(pam_handle_t *pam
|
|
|
7a13e7 |
setresuid(pwd->pw_uid, pwd->pw_uid, pwd->pw_uid);
|
|
|
7a13e7 |
execl("/sbin/umount.ecryptfs_private",
|
|
|
7a13e7 |
"umount.ecryptfs_private", NULL);
|
|
|
7a13e7 |
- syslog(LOG_ERR,"unable to execute umount.ecryptfs_private : %m");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR,"unable to execute umount.ecryptfs_private : %m");
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
_exit(255);
|
|
|
7a13e7 |
} else {
|
|
|
7a13e7 |
@@ -335,25 +335,25 @@ static int fill_keyring(pam_handle_t *pa
|
|
|
7a13e7 |
char *auth_tok_sig;
|
|
|
7a13e7 |
auth_tok_sig = malloc(ECRYPTFS_SIG_SIZE_HEX + 1);
|
|
|
7a13e7 |
if (!auth_tok_sig) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Out of memory\n");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Out of memory\n");
|
|
|
7a13e7 |
return -ENOMEM;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
|
|
|
7a13e7 |
if ((rc=pam_get_data(pamh, ECRYPTFS_PAM_DATA, (const void **)&epd)) != PAM_SUCCESS)
|
|
|
7a13e7 |
{
|
|
|
7a13e7 |
- syslog(LOG_ERR,"Unable to get ecryptfs pam data : %s", pam_strerror(pamh, rc));
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR,"Unable to get ecryptfs pam data : %s", pam_strerror(pamh, rc));
|
|
|
7a13e7 |
return -EINVAL;
|
|
|
7a13e7 |
- }
|
|
|
7a13e7 |
+ }
|
|
|
7a13e7 |
|
|
|
7a13e7 |
if ((child_pid = fork()) == 0) {
|
|
|
7a13e7 |
setuid(epd->uid);
|
|
|
7a13e7 |
if (epd->passphrase == NULL) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "NULL passphrase; aborting\n");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "NULL passphrase; aborting\n");
|
|
|
7a13e7 |
rc = -EINVAL;
|
|
|
7a13e7 |
goto out_child;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
if ((rc = ecryptfs_validate_keyring())) {
|
|
|
7a13e7 |
- syslog(LOG_WARNING,
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_WARNING,
|
|
|
7a13e7 |
"Cannot validate keyring integrity\n");
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
rc = 0;
|
|
|
7a13e7 |
@@ -365,12 +365,12 @@ static int fill_keyring(pam_handle_t *pa
|
|
|
7a13e7 |
epd->homedir,
|
|
|
7a13e7 |
ECRYPTFS_DEFAULT_WRAPPED_PASSPHRASE_FILENAME);
|
|
|
7a13e7 |
if (rc == -1) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Unable to allocate memory\n");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Unable to allocate memory\n");
|
|
|
7a13e7 |
rc = -ENOMEM;
|
|
|
7a13e7 |
goto out_child;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
if (wrap_passphrase_if_necessary(epd->username, epd->uid, wrapped_pw_filename, epd->passphrase, epd->salt) == 0) {
|
|
|
7a13e7 |
- syslog(LOG_INFO, "Passphrase file wrapped");
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_INFO, "Passphrase file wrapped");
|
|
|
7a13e7 |
} else {
|
|
|
7a13e7 |
goto out_child;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
@@ -386,7 +386,7 @@ static int fill_keyring(pam_handle_t *pa
|
|
|
7a13e7 |
goto out_child;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
if (rc) {
|
|
|
7a13e7 |
- syslog(LOG_ERR, "Error adding passphrase key token to "
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_ERR, "Error adding passphrase key token to "
|
|
|
7a13e7 |
"user session keyring; rc = [%d]\n", rc);
|
|
|
7a13e7 |
goto out_child;
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
@@ -396,7 +396,7 @@ out_child:
|
|
|
7a13e7 |
}
|
|
|
7a13e7 |
tmp_pid = waitpid(child_pid, NULL, 0);
|
|
|
7a13e7 |
if (tmp_pid == -1)
|
|
|
7a13e7 |
- syslog(LOG_WARNING,
|
|
|
7a13e7 |
+ ecryptfs_syslog(LOG_WARNING,
|
|
|
7a13e7 |
"waitpid() returned with error condition\n");
|
|
|
7a13e7 |
|
|
|
7a13e7 |
|