Changeset 1772
- Timestamp:
- 01/13/07 00:03:33 (2 years ago)
- Files:
-
- alternc/trunk/debian/changelog (modified) (1 diff)
- alternc/trunk/src/basedir_prot.sh (modified) (1 diff)
- alternc/trunk/src/update_domains.sh (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
alternc/trunk/debian/changelog
r1768 r1772 6 6 * Make it possible to erase files and directories in file browser. Closes: #1002. 7 7 * Fix mail accounts creation. Closes: #1003. 8 * Fix a race condition in update_domains.sh which could allow users to 9 bypass openbasedir protection when creating domains. Reported by 10 Jerome Moinet. 8 11 9 12 -- Antoine Beaupré <anarcat@koumbit.org> Fri, 12 Jan 2007 15:59:42 -0500 alternc/trunk/src/basedir_prot.sh
r912 r1772 94 94 dom="/var/alternc/dns/$initial_domain/$i" 95 95 fi 96 if [ -e "$dom" ]; then 97 doms="$doms $dom" 98 else 99 echo skipping non-existent domain "$dom" >&2 100 fi 96 doms="$doms $dom" 101 97 done 102 98 else alternc/trunk/src/update_domains.sh
r1672 r1772 124 124 add_to_php_override() { 125 125 local fqdn="$1" 126 local escaped_fqdn=`echo "$fqdn" | sed 's/\([\*|\.]\)/\\\\\1/g'` 127 128 if ! grep -q "^${escaped_fqdn}$" "$CHANGED_PHP_OVERRIDES_TMP_FILE"; then 129 echo "$fqdn" >> "$CHANGED_PHP_OVERRIDES_TMP_FILE" 130 fi 126 127 /usr/lib/alternc/basedir_prot.sh "$fqdn" >> "$DOMAIN_LOG_FILE" 128 } 129 130 remove_php_override() { 131 local fqdn="$1" 132 local letter=`print_domain_letter $fqdn` 133 134 sed -i "/$fqdn/d" $APACHECONF_DIR/override_php.conf 135 rm -f $APACHECONF_DIR/$letter/$fqdn 131 136 } 132 137 … … 236 241 delete_host "$domain" "$host" 237 242 243 if [ "$host" = "@" -o -z "$host" ]; then 244 FQDN="$domain" 245 else 246 FQDN="$host.$domain" 247 fi 248 if [ "$host_type" != "$TYPE_IP" ]; then 249 add_to_php_override "$FQDN" 250 fi 251 238 252 if [ "$host_type" = "$TYPE_IP" ]; then 239 253 ip="$value" … … 395 409 HOSTS_TMP_FILE=`mktemp -t alternc.update_domains.XXXXXX` 396 410 RELOAD_ZONES_TMP_FILE=`mktemp -t alternc.update_domains.XXXXXX` 397 CHANGED_PHP_OVERRIDES_TMP_FILE=`mktemp -t alternc.update_domains.XXXXXX`398 411 399 412 cleanup() { 400 413 rm -f "$LOCK_FILE" "$DOMAINS_TMP_FILE" "$HOSTS_TMP_FILE" 401 rm -f "$RELOAD_ZONES_TMP_FILE" "$CHANGED_PHP_OVERRIDES_TMP_FILE"414 rm -f "$RELOAD_ZONES_TMP_FILE" 402 415 exit 0 403 416 } … … 450 463 USER_LETTER=`print_user_letter "$user"` 451 464 452 add_to_php_override "$domain"453 add_to_php_override "www.$domain"454 455 465 case "$action" in 456 466 $ACTION_INSERT) … … 500 510 IFS="$OLD_IFS" 501 511 502 if [ "$host" = "@" -o -z "$host" ]; then503 FQDN="$domain"504 else505 FQDN="$host.$domain"506 fi507 if [ "$type" != "$TYPE_IP" ]; then508 add_to_php_override "$FQDN"509 fi510 511 512 case "$action" in 512 513 $ACTION_UPDATE | $ACTION_INSERT) … … 526 527 done < "$HOSTS_TMP_FILE" 527 528 IFS="$OLD_IFS" 528 529 # Update PHP overrides (basedir protection)530 for domain in `cat "$CHANGED_PHP_OVERRIDES_TMP_FILE"`; do531 /usr/lib/alternc/basedir_prot.sh "$domain" >> "$DOMAIN_LOG_FILE"532 done533 529 534 530 # Reload configuration for named and apache
