Я знаю, что dpkg хранит полномочия в базах данных, и я нашел следующий сценарий Google, который может помочь.
Править: У меня на самом деле был беглый взгляд на сценарий, и выглядит, как будто он пропускает немного волшебства, которое идет от ПЕРМСКИХ до РЕЖИМА, например, dpkg-c дает, например, "-rw-r - r -", но Вы хотите 0644, я работаю прямо сейчас, таким образом, я не уверен, что у меня есть время, чтобы сделать преобразование в сейчас же, но я могу возвратиться позже, если никто больше не вскочил для добавления того бита.
Существует сценарий здесь, который является интересными взглядами
#!/bin/bash
# Restores file permissions for all files on a debian system for which .deb
# packages exist.
#
# Author: Larry Kagan
# Since 2007-02-20
ARCHIVE_DIR=/var/cache/apt/archives/
PACKAGES=`ls $ARCHIVE_DIR`
cd /
function changePerms()
{
CHOWN="/bin/chown"
CHMOD="/bin/chmod"
PERMS=$1
OWN=`echo $2 | /usr/bin/tr '/' ':'`
PATHNAME=$3
echo -e "$CHOWN $OWN $PATHNAME"
#`$CHOWN $OWN $PATHNAME`
#`$CHMOD $MODE $PATHNAME`
}
for PACKAGE in $PACKAGES;
do
echo -e "Getting information for $PACKAGE\n"
FILES=`/usr/bin/dpkg -c "${ARCHIVE_DIR}${PACKAGE}"`
for FILE in "$FILES";
do
FILE_DETAILS=`echo "$FILE" | awk '{print $1"\t"$2"\t"$6}'`
changePerms $FILE_DETAILS
done
done
Я отредактировал конфигурацию виртуального хоста и удалил:
SSLVerifyClient require
SSLVerifyDepth 10
И теперь он работает для аутентификации на стороне сервера. Директива "SSLVerifyClient require" переопределяет строки:
SSLCertificateFile /usr/lib/ssl/demoCA/servercert.pem
SSLCertificateKeyFile /usr/lib/ssl/demoCA/serverkey.pem
SSLCACertificateFile /usr/lib/ssl/demoCA/stcert.pem
И в этом была проблема. Директива «SSLVerifyClient require» предназначена для аутентификации на стороне клиента и заставляет openSSL всегда запрашивать сертификат от клиента.