Substitute python plugin file name in sudo_plugin_python documentation.
Also use prefix for group plugin fallback path section in sudoers manual.
This commit is contained in:
7
configure
vendored
7
configure
vendored
@@ -723,6 +723,7 @@ OBJEXT
|
|||||||
EXEEXT
|
EXEEXT
|
||||||
ac_ct_CC
|
ac_ct_CC
|
||||||
CC
|
CC
|
||||||
|
python_plugin
|
||||||
sudoers_plugin
|
sudoers_plugin
|
||||||
plugindir
|
plugindir
|
||||||
pam_login_service
|
pam_login_service
|
||||||
@@ -3594,6 +3595,7 @@ ac_config_headers="$ac_config_headers config.h pathnames.h"
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -3645,6 +3647,7 @@ pam_session=on
|
|||||||
pam_login_service=sudo
|
pam_login_service=sudo
|
||||||
plugindir="$libexecdir/sudo"
|
plugindir="$libexecdir/sudo"
|
||||||
sudoers_plugin="sudoers.so"
|
sudoers_plugin="sudoers.so"
|
||||||
|
python_plugin="python_plugin.so"
|
||||||
DIGEST=digest.lo
|
DIGEST=digest.lo
|
||||||
devsearch="/dev/pts:/dev/vt:/dev/term:/dev/zcons:/dev/pty:/dev"
|
devsearch="/dev/pts:/dev/vt:/dev/term:/dev/zcons:/dev/pty:/dev"
|
||||||
#
|
#
|
||||||
@@ -17151,6 +17154,7 @@ aix*)
|
|||||||
noexec_file="$libexecdir/sudo/sudo_noexec.a(sudo_noexec.so)"
|
noexec_file="$libexecdir/sudo/sudo_noexec.a(sudo_noexec.so)"
|
||||||
intercept_file="$libexecdir/sudo/sudo_intercept.a(sudo_intercept.so)"
|
intercept_file="$libexecdir/sudo/sudo_intercept.a(sudo_intercept.so)"
|
||||||
sudoers_plugin="sudoers.a(sudoers.so)"
|
sudoers_plugin="sudoers.a(sudoers.so)"
|
||||||
|
python_plugin="python_plugin.a(python_plugin.so)"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -36640,6 +36644,9 @@ echo " Pathnames:" >&6
|
|||||||
echo " log directory : ${log_dir}" >&6
|
echo " log directory : ${log_dir}" >&6
|
||||||
echo " plugin directory : ${plugindir}" >&6
|
echo " plugin directory : ${plugindir}" >&6
|
||||||
echo " sudoers plugin : ${sudoers_plugin}" >&6
|
echo " sudoers plugin : ${sudoers_plugin}" >&6
|
||||||
|
if test "${enable_python-no}" != "no"; then
|
||||||
|
echo " python plugin : ${python_plugin}" >&6
|
||||||
|
fi
|
||||||
echo " run directory : ${rundir}" >&6
|
echo " run directory : ${rundir}" >&6
|
||||||
echo " var directory : ${vardir}" >&6
|
echo " var directory : ${vardir}" >&6
|
||||||
echo " I/O log directory : ${iolog_dir}" >&6
|
echo " I/O log directory : ${iolog_dir}" >&6
|
||||||
|
@@ -179,6 +179,7 @@ AC_SUBST([pam_session])
|
|||||||
AC_SUBST([pam_login_service])
|
AC_SUBST([pam_login_service])
|
||||||
AC_SUBST([plugindir])
|
AC_SUBST([plugindir])
|
||||||
AC_SUBST([sudoers_plugin])
|
AC_SUBST([sudoers_plugin])
|
||||||
|
AC_SUBST([python_plugin])
|
||||||
#
|
#
|
||||||
# Begin initial values for man page substitution
|
# Begin initial values for man page substitution
|
||||||
#
|
#
|
||||||
@@ -228,6 +229,7 @@ pam_session=on
|
|||||||
pam_login_service=sudo
|
pam_login_service=sudo
|
||||||
plugindir="$libexecdir/sudo"
|
plugindir="$libexecdir/sudo"
|
||||||
sudoers_plugin="sudoers.so"
|
sudoers_plugin="sudoers.so"
|
||||||
|
python_plugin="python_plugin.so"
|
||||||
DIGEST=digest.lo
|
DIGEST=digest.lo
|
||||||
devsearch="/dev/pts:/dev/vt:/dev/term:/dev/zcons:/dev/pty:/dev"
|
devsearch="/dev/pts:/dev/vt:/dev/term:/dev/zcons:/dev/pty:/dev"
|
||||||
#
|
#
|
||||||
@@ -1685,6 +1687,7 @@ aix*)
|
|||||||
noexec_file="$libexecdir/sudo/sudo_noexec.a(sudo_noexec.so)"
|
noexec_file="$libexecdir/sudo/sudo_noexec.a(sudo_noexec.so)"
|
||||||
intercept_file="$libexecdir/sudo/sudo_intercept.a(sudo_intercept.so)"
|
intercept_file="$libexecdir/sudo/sudo_intercept.a(sudo_intercept.so)"
|
||||||
sudoers_plugin="sudoers.a(sudoers.so)"
|
sudoers_plugin="sudoers.a(sudoers.so)"
|
||||||
|
python_plugin="python_plugin.a(python_plugin.so)"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -4424,6 +4427,9 @@ echo " Pathnames:" >&AS_MESSAGE_FD
|
|||||||
echo " log directory : ${log_dir}" >&AS_MESSAGE_FD
|
echo " log directory : ${log_dir}" >&AS_MESSAGE_FD
|
||||||
echo " plugin directory : ${plugindir}" >&AS_MESSAGE_FD
|
echo " plugin directory : ${plugindir}" >&AS_MESSAGE_FD
|
||||||
echo " sudoers plugin : ${sudoers_plugin}" >&AS_MESSAGE_FD
|
echo " sudoers plugin : ${sudoers_plugin}" >&AS_MESSAGE_FD
|
||||||
|
if test "${enable_python-no}" != "no"; then
|
||||||
|
echo " python plugin : ${python_plugin}" >&AS_MESSAGE_FD
|
||||||
|
fi
|
||||||
echo " run directory : ${rundir}" >&AS_MESSAGE_FD
|
echo " run directory : ${rundir}" >&AS_MESSAGE_FD
|
||||||
echo " var directory : ${vardir}" >&AS_MESSAGE_FD
|
echo " var directory : ${vardir}" >&AS_MESSAGE_FD
|
||||||
echo " I/O log directory : ${iolog_dir}" >&AS_MESSAGE_FD
|
echo " I/O log directory : ${iolog_dir}" >&AS_MESSAGE_FD
|
||||||
|
@@ -151,7 +151,7 @@ Running the Python interpreter and bridging between C and Python is
|
|||||||
handled by the
|
handled by the
|
||||||
\fBsudo\fR
|
\fBsudo\fR
|
||||||
plugin
|
plugin
|
||||||
\fIpython_plugin.so\fR.
|
\fI@python_plugin@\fR.
|
||||||
This shared object can be loaded like any other dynamic
|
This shared object can be loaded like any other dynamic
|
||||||
\fBsudo\fR
|
\fBsudo\fR
|
||||||
plugin and should receive the path and the class name of the Python
|
plugin and should receive the path and the class name of the Python
|
||||||
@@ -162,10 +162,10 @@ sudo.conf(@mansectform@):
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Plugin python_policy python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_policy @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
Plugin python_io python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_io @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
Plugin python_audit python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_audit @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
Plugin python_approval python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_approval @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
.RE
|
.RE
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
@@ -175,7 +175,7 @@ file:
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Defaults group_plugin="python_plugin.so ModulePath=<path> ClassName=<class>"
|
Defaults group_plugin="@python_plugin@ ModulePath=<path> ClassName=<class>"
|
||||||
.RE
|
.RE
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
@@ -210,7 +210,7 @@ For example:
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Plugin python_policy python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_policy @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
.RE
|
.RE
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
@@ -568,7 +568,7 @@ To try it, register it by adding the following lines to
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 0n
|
.RS 0n
|
||||||
Plugin python_policy python_plugin.so \e
|
Plugin python_policy @python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_policy_plugin.py \e
|
ModulePath=@EXAMPLES@/example_policy_plugin.py \e
|
||||||
ClassName=SudoPolicyPlugin
|
ClassName=SudoPolicyPlugin
|
||||||
.RE
|
.RE
|
||||||
@@ -586,7 +586,7 @@ For example:
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Plugin python_io python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_io @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
.RE
|
.RE
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
@@ -868,7 +868,7 @@ To try it, register it by adding the following lines to
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Plugin python_io python_plugin.so \e
|
Plugin python_io @python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_io_plugin.py \e
|
ModulePath=@EXAMPLES@/example_io_plugin.py \e
|
||||||
ClassName=SudoIOPlugin
|
ClassName=SudoIOPlugin
|
||||||
.RE
|
.RE
|
||||||
@@ -880,7 +880,7 @@ For example:
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Plugin python_audit python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_audit @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
.RE
|
.RE
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
@@ -1188,7 +1188,7 @@ To try it, register it by adding the following lines to
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Plugin python_audit python_plugin.so \e
|
Plugin python_audit @python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_audit_plugin.py \e
|
ModulePath=@EXAMPLES@/example_audit_plugin.py \e
|
||||||
ClassName=SudoAuditPlugin
|
ClassName=SudoAuditPlugin
|
||||||
.RE
|
.RE
|
||||||
@@ -1202,7 +1202,7 @@ For example:
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Plugin python_approval python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_approval @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
.RE
|
.RE
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
@@ -1332,7 +1332,7 @@ To try it, register it by adding the following lines to
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Plugin python_approval python_plugin.so \e
|
Plugin python_approval @python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_approval_plugin.py \e
|
ModulePath=@EXAMPLES@/example_approval_plugin.py \e
|
||||||
ClassName=BusinessHoursApprovalPlugin
|
ClassName=BusinessHoursApprovalPlugin
|
||||||
.RE
|
.RE
|
||||||
@@ -1348,7 +1348,7 @@ For example:
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Defaults group_plugin="python_plugin.so ModulePath=<path> ClassName=<class>"
|
Defaults group_plugin="@python_plugin@ ModulePath=<path> ClassName=<class>"
|
||||||
.RE
|
.RE
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
@@ -1429,7 +1429,7 @@ file by adding the following lines:
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Defaults group_plugin="python_plugin.so \e
|
Defaults group_plugin="@python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_group_plugin.py \e
|
ModulePath=@EXAMPLES@/example_group_plugin.py \e
|
||||||
ClassName=SudoGroupPlugin"
|
ClassName=SudoGroupPlugin"
|
||||||
.RE
|
.RE
|
||||||
@@ -1590,7 +1590,7 @@ To try it, register it by adding the following lines to
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Plugin python_io python_plugin.so \e
|
Plugin python_io @python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_conversation.py \e
|
ModulePath=@EXAMPLES@/example_conversation.py \e
|
||||||
ClassName=ReasonLoggerIOPlugin
|
ClassName=ReasonLoggerIOPlugin
|
||||||
.RE
|
.RE
|
||||||
@@ -1644,14 +1644,14 @@ To enable debug messages, add a
|
|||||||
line to
|
line to
|
||||||
sudo.conf(@mansectform@)
|
sudo.conf(@mansectform@)
|
||||||
with the program set to
|
with the program set to
|
||||||
\fIpython_plugin.so\fR.
|
\fI@python_plugin@\fR.
|
||||||
For example, to store debug output in
|
For example, to store debug output in
|
||||||
\fI@log_dir@/sudo_python_debug\fR,
|
\fI@log_dir@/sudo_python_debug\fR,
|
||||||
use a line like the following:
|
use a line like the following:
|
||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Debug python_plugin.so @log_dir@/sudo_python_debug \e
|
Debug @python_plugin@ @log_dir@/sudo_python_debug \e
|
||||||
plugin@trace,c_calls@trace
|
plugin@trace,c_calls@trace
|
||||||
.RE
|
.RE
|
||||||
.fi
|
.fi
|
||||||
@@ -1666,7 +1666,7 @@ calls, use:
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Debug python_plugin.so @log_dir@/sudo_python_debug plugin@trace
|
Debug @python_plugin@ @log_dir@/sudo_python_debug plugin@trace
|
||||||
.RE
|
.RE
|
||||||
.fi
|
.fi
|
||||||
.PP
|
.PP
|
||||||
@@ -1769,11 +1769,11 @@ To try it, register it by adding the following lines to
|
|||||||
.nf
|
.nf
|
||||||
.sp
|
.sp
|
||||||
.RS 4n
|
.RS 4n
|
||||||
Plugin python_io python_plugin.so \e
|
Plugin python_io @python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_debugging.py \e
|
ModulePath=@EXAMPLES@/example_debugging.py \e
|
||||||
ClassName=DebugDemoPlugin
|
ClassName=DebugDemoPlugin
|
||||||
|
|
||||||
Debug python_plugin.so \e
|
Debug @python_plugin@ \e
|
||||||
@log_dir@/sudo_python_debug plugin@trace,c_calls@trace
|
@log_dir@/sudo_python_debug plugin@trace,c_calls@trace
|
||||||
.RE
|
.RE
|
||||||
.fi
|
.fi
|
||||||
@@ -1872,7 +1872,7 @@ If you believe you have found a bug in
|
|||||||
you can submit a bug report at https://bugzilla.sudo.ws/
|
you can submit a bug report at https://bugzilla.sudo.ws/
|
||||||
.SH "SECURITY CONSIDERATIONS"
|
.SH "SECURITY CONSIDERATIONS"
|
||||||
All Python plugin handling is implemented inside the
|
All Python plugin handling is implemented inside the
|
||||||
\fIpython_plugin.so\fR
|
\fI@python_plugin@\fR
|
||||||
dynamic plugin.
|
dynamic plugin.
|
||||||
Therefore, if no Python plugin is registered in
|
Therefore, if no Python plugin is registered in
|
||||||
sudo.conf(@mansectform@)
|
sudo.conf(@mansectform@)
|
||||||
|
@@ -128,7 +128,7 @@ Running the Python interpreter and bridging between C and Python is
|
|||||||
handled by the
|
handled by the
|
||||||
.Nm sudo
|
.Nm sudo
|
||||||
plugin
|
plugin
|
||||||
.Pa python_plugin.so .
|
.Pa @python_plugin@ .
|
||||||
This shared object can be loaded like any other dynamic
|
This shared object can be loaded like any other dynamic
|
||||||
.Nm sudo
|
.Nm sudo
|
||||||
plugin and should receive the path and the class name of the Python
|
plugin and should receive the path and the class name of the Python
|
||||||
@@ -137,17 +137,17 @@ plugin it is loading as arguments.
|
|||||||
Example usage in
|
Example usage in
|
||||||
.Xr sudo.conf @mansectform@ :
|
.Xr sudo.conf @mansectform@ :
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Plugin python_policy python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_policy @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
Plugin python_io python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_io @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
Plugin python_audit python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_audit @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
Plugin python_approval python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_approval @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
Example group provider plugin usage in the
|
Example group provider plugin usage in the
|
||||||
.Em sudoers
|
.Em sudoers
|
||||||
file:
|
file:
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Defaults group_plugin="python_plugin.so ModulePath=<path> ClassName=<class>"
|
Defaults group_plugin="@python_plugin@ ModulePath=<path> ClassName=<class>"
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
The plugin arguments are as follows:
|
The plugin arguments are as follows:
|
||||||
@@ -179,7 +179,7 @@ Policy plugins must be registered in
|
|||||||
.Xr sudo.conf @mansectform@ .
|
.Xr sudo.conf @mansectform@ .
|
||||||
For example:
|
For example:
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Plugin python_policy python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_policy @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
Currently, only a single policy plugin may be specified in
|
Currently, only a single policy plugin may be specified in
|
||||||
@@ -464,7 +464,7 @@ Sudo ships with an example Python policy plugin.
|
|||||||
To try it, register it by adding the following lines to
|
To try it, register it by adding the following lines to
|
||||||
.Pa @sysconfdir@/sudo.conf :
|
.Pa @sysconfdir@/sudo.conf :
|
||||||
.Bd -literal
|
.Bd -literal
|
||||||
Plugin python_policy python_plugin.so \e
|
Plugin python_policy @python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_policy_plugin.py \e
|
ModulePath=@EXAMPLES@/example_policy_plugin.py \e
|
||||||
ClassName=SudoPolicyPlugin
|
ClassName=SudoPolicyPlugin
|
||||||
.Ed
|
.Ed
|
||||||
@@ -479,7 +479,7 @@ I/O plugins must be registered in
|
|||||||
.Xr sudo.conf @mansectform@ .
|
.Xr sudo.conf @mansectform@ .
|
||||||
For example:
|
For example:
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Plugin python_io python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_io @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
Sudo supports loading multiple I/O plugins.
|
Sudo supports loading multiple I/O plugins.
|
||||||
@@ -706,7 +706,7 @@ Sudo ships with a Python I/O plugin example.
|
|||||||
To try it, register it by adding the following lines to
|
To try it, register it by adding the following lines to
|
||||||
.Pa @sysconfdir@/sudo.conf :
|
.Pa @sysconfdir@/sudo.conf :
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Plugin python_io python_plugin.so \e
|
Plugin python_io @python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_io_plugin.py \e
|
ModulePath=@EXAMPLES@/example_io_plugin.py \e
|
||||||
ClassName=SudoIOPlugin
|
ClassName=SudoIOPlugin
|
||||||
.Ed
|
.Ed
|
||||||
@@ -715,7 +715,7 @@ Audit plugins must be registered in
|
|||||||
.Xr sudo.conf @mansectform@ .
|
.Xr sudo.conf @mansectform@ .
|
||||||
For example:
|
For example:
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Plugin python_audit python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_audit @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
Sudo supports loading multiple audit plugins.
|
Sudo supports loading multiple audit plugins.
|
||||||
@@ -955,7 +955,7 @@ Sudo ships with a Python Audit plugin example.
|
|||||||
To try it, register it by adding the following lines to
|
To try it, register it by adding the following lines to
|
||||||
.Pa @sysconfdir@/sudo.conf :
|
.Pa @sysconfdir@/sudo.conf :
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Plugin python_audit python_plugin.so \e
|
Plugin python_audit @python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_audit_plugin.py \e
|
ModulePath=@EXAMPLES@/example_audit_plugin.py \e
|
||||||
ClassName=SudoAuditPlugin
|
ClassName=SudoAuditPlugin
|
||||||
.Ed
|
.Ed
|
||||||
@@ -966,7 +966,7 @@ Approval plugins must be registered in
|
|||||||
.Xr sudo.conf @mansectform@ .
|
.Xr sudo.conf @mansectform@ .
|
||||||
For example:
|
For example:
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Plugin python_approval python_plugin.so ModulePath=<path> ClassName=<class>
|
Plugin python_approval @python_plugin@ ModulePath=<path> ClassName=<class>
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
Sudo supports loading multiple approval plugins.
|
Sudo supports loading multiple approval plugins.
|
||||||
@@ -1064,7 +1064,7 @@ Sudo ships with a Python Approval plugin example.
|
|||||||
To try it, register it by adding the following lines to
|
To try it, register it by adding the following lines to
|
||||||
.Pa @sysconfdir@/sudo.conf :
|
.Pa @sysconfdir@/sudo.conf :
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Plugin python_approval python_plugin.so \e
|
Plugin python_approval @python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_approval_plugin.py \e
|
ModulePath=@EXAMPLES@/example_approval_plugin.py \e
|
||||||
ClassName=BusinessHoursApprovalPlugin
|
ClassName=BusinessHoursApprovalPlugin
|
||||||
.Ed
|
.Ed
|
||||||
@@ -1077,7 +1077,7 @@ A group provider plugin is registered in the
|
|||||||
file.
|
file.
|
||||||
For example:
|
For example:
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Defaults group_plugin="python_plugin.so ModulePath=<path> ClassName=<class>"
|
Defaults group_plugin="@python_plugin@ ModulePath=<path> ClassName=<class>"
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
Currently, only a single group plugin can be registered in
|
Currently, only a single group plugin can be registered in
|
||||||
@@ -1141,7 +1141,7 @@ To try it, register it in the
|
|||||||
.Em sudoers
|
.Em sudoers
|
||||||
file by adding the following lines:
|
file by adding the following lines:
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Defaults group_plugin="python_plugin.so \e
|
Defaults group_plugin="@python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_group_plugin.py \e
|
ModulePath=@EXAMPLES@/example_group_plugin.py \e
|
||||||
ClassName=SudoGroupPlugin"
|
ClassName=SudoGroupPlugin"
|
||||||
.Ed
|
.Ed
|
||||||
@@ -1279,7 +1279,7 @@ Sudo ships with an example plugin demonstrating the Python conversation API.
|
|||||||
To try it, register it by adding the following lines to
|
To try it, register it by adding the following lines to
|
||||||
.Pa @sysconfdir@/sudo.conf :
|
.Pa @sysconfdir@/sudo.conf :
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Plugin python_io python_plugin.so \e
|
Plugin python_io @python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_conversation.py \e
|
ModulePath=@EXAMPLES@/example_conversation.py \e
|
||||||
ClassName=ReasonLoggerIOPlugin
|
ClassName=ReasonLoggerIOPlugin
|
||||||
.Ed
|
.Ed
|
||||||
@@ -1329,12 +1329,12 @@ To enable debug messages, add a
|
|||||||
line to
|
line to
|
||||||
.Xr sudo.conf @mansectform@
|
.Xr sudo.conf @mansectform@
|
||||||
with the program set to
|
with the program set to
|
||||||
.Pa python_plugin.so .
|
.Pa @python_plugin@ .
|
||||||
For example, to store debug output in
|
For example, to store debug output in
|
||||||
.Pa @log_dir@/sudo_python_debug ,
|
.Pa @log_dir@/sudo_python_debug ,
|
||||||
use a line like the following:
|
use a line like the following:
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Debug python_plugin.so @log_dir@/sudo_python_debug \e
|
Debug @python_plugin@ @log_dir@/sudo_python_debug \e
|
||||||
plugin@trace,c_calls@trace
|
plugin@trace,c_calls@trace
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
@@ -1346,7 +1346,7 @@ For example to just see the debug output of
|
|||||||
.Fn sudo.debug
|
.Fn sudo.debug
|
||||||
calls, use:
|
calls, use:
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Debug python_plugin.so @log_dir@/sudo_python_debug plugin@trace
|
Debug @python_plugin@ @log_dir@/sudo_python_debug plugin@trace
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
See
|
See
|
||||||
@@ -1428,11 +1428,11 @@ Sudo ships with an example debug plugin.
|
|||||||
To try it, register it by adding the following lines to
|
To try it, register it by adding the following lines to
|
||||||
.Pa @sysconfdir@/sudo.conf :
|
.Pa @sysconfdir@/sudo.conf :
|
||||||
.Bd -literal -offset 4n
|
.Bd -literal -offset 4n
|
||||||
Plugin python_io python_plugin.so \e
|
Plugin python_io @python_plugin@ \e
|
||||||
ModulePath=@EXAMPLES@/example_debugging.py \e
|
ModulePath=@EXAMPLES@/example_debugging.py \e
|
||||||
ClassName=DebugDemoPlugin
|
ClassName=DebugDemoPlugin
|
||||||
|
|
||||||
Debug python_plugin.so \e
|
Debug @python_plugin@ \e
|
||||||
@log_dir@/sudo_python_debug plugin@trace,c_calls@trace
|
@log_dir@/sudo_python_debug plugin@trace,c_calls@trace
|
||||||
.Ed
|
.Ed
|
||||||
.Ss Option conversion API
|
.Ss Option conversion API
|
||||||
@@ -1523,7 +1523,7 @@ If you believe you have found a bug in
|
|||||||
you can submit a bug report at https://bugzilla.sudo.ws/
|
you can submit a bug report at https://bugzilla.sudo.ws/
|
||||||
.Sh SECURITY CONSIDERATIONS
|
.Sh SECURITY CONSIDERATIONS
|
||||||
All Python plugin handling is implemented inside the
|
All Python plugin handling is implemented inside the
|
||||||
.Pa python_plugin.so
|
.Pa @python_plugin@
|
||||||
dynamic plugin.
|
dynamic plugin.
|
||||||
Therefore, if no Python plugin is registered in
|
Therefore, if no Python plugin is registered in
|
||||||
.Xr sudo.conf @mansectform@
|
.Xr sudo.conf @mansectform@
|
||||||
|
@@ -5147,23 +5147,23 @@ On Solaris, if the plugin is stored in a directory ending in
|
|||||||
will create a fallback path by appending
|
will create a fallback path by appending
|
||||||
\(lq/64\(rq
|
\(lq/64\(rq
|
||||||
to the directory name;
|
to the directory name;
|
||||||
\fI/usr/lib/sudo_plugin.so\fR
|
\fI@prefix@/lib/group_plugin.so\fR
|
||||||
becomes
|
becomes
|
||||||
\fI/usr/lib/64/sudo_plugin.so\fR.
|
\fI@prefix@/lib/64/group_plugin.so\fR.
|
||||||
On Linux, a directory ending in
|
On Linux, a directory ending in
|
||||||
\(lqlib\(rq
|
\(lqlib\(rq
|
||||||
will be transformed to
|
will be transformed to
|
||||||
\(lqlib64\(rq
|
\(lqlib64\(rq
|
||||||
as the fallback path;
|
as the fallback path;
|
||||||
\fI/usr/lib/sudo_plugin.so\fR
|
\fI@prefix@/lib/group_plugin.so\fR
|
||||||
becomes
|
becomes
|
||||||
\fI/usr/lib64/sudo_plugin.so\fR.
|
\fI@prefix@/lib64/group_plugin.so\fR.
|
||||||
On all other systems, the fallback path is generated by adding a
|
On all other systems, the fallback path is generated by adding a
|
||||||
\(lq64\(rq
|
\(lq64\(rq
|
||||||
before the file extension;
|
before the file extension;
|
||||||
\fIsudo_plugin.so\fR
|
\fIgroup_plugin.so\fR
|
||||||
becomes
|
becomes
|
||||||
\fIsudo_plugin64.so\fR.
|
\fIgroup_plugin64.so\fR.
|
||||||
.sp
|
.sp
|
||||||
For more information see
|
For more information see
|
||||||
\fIGROUP PROVIDER PLUGINS\fR.
|
\fIGROUP PROVIDER PLUGINS\fR.
|
||||||
|
@@ -4845,23 +4845,23 @@ On Solaris, if the plugin is stored in a directory ending in
|
|||||||
will create a fallback path by appending
|
will create a fallback path by appending
|
||||||
.Dq /64
|
.Dq /64
|
||||||
to the directory name;
|
to the directory name;
|
||||||
.Pa /usr/lib/sudo_plugin.so
|
.Pa @prefix@/lib/group_plugin.so
|
||||||
becomes
|
becomes
|
||||||
.Pa /usr/lib/64/sudo_plugin.so .
|
.Pa @prefix@/lib/64/group_plugin.so .
|
||||||
On Linux, a directory ending in
|
On Linux, a directory ending in
|
||||||
.Dq lib
|
.Dq lib
|
||||||
will be transformed to
|
will be transformed to
|
||||||
.Dq lib64
|
.Dq lib64
|
||||||
as the fallback path;
|
as the fallback path;
|
||||||
.Pa /usr/lib/sudo_plugin.so
|
.Pa @prefix@/lib/group_plugin.so
|
||||||
becomes
|
becomes
|
||||||
.Pa /usr/lib64/sudo_plugin.so .
|
.Pa @prefix@/lib64/group_plugin.so .
|
||||||
On all other systems, the fallback path is generated by adding a
|
On all other systems, the fallback path is generated by adding a
|
||||||
.Dq 64
|
.Dq 64
|
||||||
before the file extension;
|
before the file extension;
|
||||||
.Pa sudo_plugin.so
|
.Pa group_plugin.so
|
||||||
becomes
|
becomes
|
||||||
.Pa sudo_plugin64.so .
|
.Pa group_plugin64.so .
|
||||||
.Pp
|
.Pp
|
||||||
For more information see
|
For more information see
|
||||||
.Sx "GROUP PROVIDER PLUGINS" .
|
.Sx "GROUP PROVIDER PLUGINS" .
|
||||||
|
Reference in New Issue
Block a user