2008-01-14 20:26:24 +03:00
/*
Samba Unix / Linux SMB client library
Distributed SMB / CIFS Server Management Utility
2008-02-27 21:38:48 +03:00
Copyright ( C ) 2006 , 2008 Guenther Deschner
2006-04-11 19:47:24 +04:00
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
2007-07-09 23:25:36 +04:00
the Free Software Foundation ; either version 3 of the License , or
2006-04-11 19:47:24 +04:00
( at your option ) any later version .
2008-01-14 20:26:24 +03:00
2006-04-11 19:47:24 +04:00
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
2008-01-14 20:26:24 +03:00
2006-04-11 19:47:24 +04:00
You should have received a copy of the GNU General Public License
2007-07-10 04:52:41 +04:00
along with this program . If not , see < http : //www.gnu.org/licenses/>. */
2008-01-14 20:26:24 +03:00
2006-04-11 19:47:24 +04:00
# include "includes.h"
# include "utils/net.h"
2011-04-13 16:32:16 +04:00
# include "rpc_client/rpc_client.h"
2011-01-18 18:21:24 +03:00
# include "../librpc/gen_ndr/ndr_lsa_c.h"
2010-05-18 20:26:16 +04:00
# include "rpc_client/cli_lsarpc.h"
2006-04-11 19:47:24 +04:00
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-05-10 01:22:12 +04:00
static int net_help_audit ( struct net_context * c , int argc , const char * * argv )
2006-04-11 19:47:24 +04:00
{
2009-08-07 11:34:06 +04:00
d_printf ( _ ( " net rpc audit list View configured Auditing policies \n " ) ) ;
d_printf ( _ ( " net rpc audit enable Enable Auditing \n " ) ) ;
d_printf ( _ ( " net rpc audit disable Disable Auditing \n " ) ) ;
d_printf ( _ ( " net rpc audit get <category> View configured Auditing policy setting \n " ) ) ;
d_printf ( _ ( " net rpc audit set <category> <policy> Set Auditing policies \n \n " ) ) ;
d_printf ( _ ( " \t category can be one of: SYSTEM, LOGON, OBJECT, PRIVILEGE, PROCESS, POLICY, SAM, DIRECTORY or ACCOUNT \n " ) ) ;
d_printf ( _ ( " \t policy can be one of: SUCCESS, FAILURE, ALL or NONE \n \n " ) ) ;
2006-04-11 19:47:24 +04:00
return - 1 ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
static void print_auditing_category ( const char * policy , const char * value )
{
2006-06-19 23:07:39 +04:00
if ( policy = = NULL ) {
2009-08-07 11:34:06 +04:00
policy = N_ ( " Unknown " ) ;
2006-06-19 23:07:39 +04:00
}
if ( value = = NULL ) {
2009-08-07 11:34:06 +04:00
value = N_ ( " Invalid " ) ;
2006-06-19 23:07:39 +04:00
}
2009-10-14 02:22:08 +04:00
d_printf ( _ ( " \t %-30s%s \n " ) , policy , value ) ;
2006-04-11 19:47:24 +04:00
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-05-10 01:22:12 +04:00
static NTSTATUS rpc_audit_get_internal ( struct net_context * c ,
2010-05-21 05:25:01 +04:00
const struct dom_sid * domain_sid ,
2008-01-14 20:26:24 +03:00
const char * domain_name ,
2006-04-11 19:47:24 +04:00
struct cli_state * cli ,
struct rpc_pipe_client * pipe_hnd ,
2008-01-14 20:26:24 +03:00
TALLOC_CTX * mem_ctx ,
2006-04-11 19:47:24 +04:00
int argc ,
const char * * argv )
{
2009-03-19 00:49:41 +03:00
struct policy_handle pol ;
2011-01-18 18:21:24 +03:00
NTSTATUS status , result ;
2008-02-08 04:37:19 +03:00
union lsa_PolicyInformation * info = NULL ;
2006-04-11 19:47:24 +04:00
int i ;
2008-01-14 20:26:24 +03:00
uint32_t audit_category ;
2011-01-18 18:21:24 +03:00
struct dcerpc_binding_handle * b = pipe_hnd - > binding_handle ;
2006-04-11 19:47:24 +04:00
if ( argc < 1 | | argc > 2 ) {
2009-08-07 11:34:06 +04:00
d_printf ( _ ( " insufficient arguments \n " ) ) ;
2008-05-10 01:22:12 +04:00
net_help_audit ( c , argc , argv ) ;
2006-04-11 19:47:24 +04:00
return NT_STATUS_INVALID_PARAMETER ;
}
if ( ! get_audit_category_from_param ( argv [ 0 ] , & audit_category ) ) {
2009-08-07 11:34:06 +04:00
d_printf ( _ ( " invalid auditing category: %s \n " ) , argv [ 0 ] ) ;
2006-04-11 19:47:24 +04:00
return NT_STATUS_INVALID_PARAMETER ;
}
2011-01-18 18:14:35 +03:00
status = rpccli_lsa_open_policy ( pipe_hnd , mem_ctx , true ,
2009-04-15 03:12:13 +04:00
SEC_FLAG_MAXIMUM_ALLOWED ,
2006-04-11 19:47:24 +04:00
& pol ) ;
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-04-11 19:47:24 +04:00
goto done ;
}
2011-01-18 18:21:24 +03:00
status = dcerpc_lsa_QueryInfoPolicy ( b , mem_ctx ,
2008-01-14 19:17:20 +03:00
& pol ,
2008-01-14 20:26:24 +03:00
LSA_POLICY_INFO_AUDIT_EVENTS ,
2011-01-18 18:21:24 +03:00
& info ,
& result ) ;
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-04-11 19:47:24 +04:00
goto done ;
}
2011-01-18 18:21:24 +03:00
if ( ! NT_STATUS_IS_OK ( result ) ) {
status = result ;
goto done ;
}
2006-04-11 19:47:24 +04:00
2008-02-08 04:37:19 +03:00
for ( i = 0 ; i < info - > audit_events . count ; i + + ) {
2006-04-11 19:47:24 +04:00
const char * val = NULL , * policy = NULL ;
if ( i ! = audit_category ) {
continue ;
}
2008-02-08 04:37:19 +03:00
val = audit_policy_str ( mem_ctx , info - > audit_events . settings [ i ] ) ;
2006-04-11 19:47:24 +04:00
policy = audit_description_str ( i ) ;
print_auditing_category ( policy , val ) ;
}
done :
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2009-08-07 11:34:06 +04:00
d_printf ( _ ( " failed to get auditing policy: %s \n " ) ,
2011-01-18 18:14:35 +03:00
nt_errstr ( status ) ) ;
2006-04-11 19:47:24 +04:00
}
2011-01-18 18:14:35 +03:00
return status ;
2006-04-11 19:47:24 +04:00
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-05-10 01:22:12 +04:00
static NTSTATUS rpc_audit_set_internal ( struct net_context * c ,
2010-05-21 05:25:01 +04:00
const struct dom_sid * domain_sid ,
2008-01-14 20:26:24 +03:00
const char * domain_name ,
2006-04-11 19:47:24 +04:00
struct cli_state * cli ,
struct rpc_pipe_client * pipe_hnd ,
2008-01-14 20:26:24 +03:00
TALLOC_CTX * mem_ctx ,
2006-04-11 19:47:24 +04:00
int argc ,
const char * * argv )
{
2009-03-19 00:49:41 +03:00
struct policy_handle pol ;
2011-01-18 18:21:24 +03:00
NTSTATUS status , result ;
2008-02-08 04:37:19 +03:00
union lsa_PolicyInformation * info = NULL ;
2008-01-14 20:26:24 +03:00
uint32_t audit_policy , audit_category ;
2011-01-18 18:21:24 +03:00
struct dcerpc_binding_handle * b = pipe_hnd - > binding_handle ;
2006-04-11 19:47:24 +04:00
if ( argc < 2 | | argc > 3 ) {
2009-08-07 11:34:06 +04:00
d_printf ( _ ( " insufficient arguments \n " ) ) ;
2008-05-10 01:22:12 +04:00
net_help_audit ( c , argc , argv ) ;
2006-04-11 19:47:24 +04:00
return NT_STATUS_INVALID_PARAMETER ;
}
if ( ! get_audit_category_from_param ( argv [ 0 ] , & audit_category ) ) {
2009-08-07 11:34:06 +04:00
d_printf ( _ ( " invalid auditing category: %s \n " ) , argv [ 0 ] ) ;
2006-04-11 19:47:24 +04:00
return NT_STATUS_INVALID_PARAMETER ;
}
audit_policy = LSA_AUDIT_POLICY_CLEAR ;
if ( strequal ( argv [ 1 ] , " Success " ) ) {
audit_policy | = LSA_AUDIT_POLICY_SUCCESS ;
} else if ( strequal ( argv [ 1 ] , " Failure " ) ) {
audit_policy | = LSA_AUDIT_POLICY_FAILURE ;
} else if ( strequal ( argv [ 1 ] , " All " ) ) {
audit_policy | = LSA_AUDIT_POLICY_ALL ;
} else if ( strequal ( argv [ 1 ] , " None " ) ) {
audit_policy = LSA_AUDIT_POLICY_CLEAR ;
} else {
2009-08-07 11:34:06 +04:00
d_printf ( _ ( " invalid auditing policy: %s \n " ) , argv [ 1 ] ) ;
2006-04-11 19:47:24 +04:00
return NT_STATUS_INVALID_PARAMETER ;
}
2011-01-18 18:14:35 +03:00
status = rpccli_lsa_open_policy ( pipe_hnd , mem_ctx , true ,
2009-04-15 03:12:13 +04:00
SEC_FLAG_MAXIMUM_ALLOWED ,
2006-04-11 19:47:24 +04:00
& pol ) ;
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-04-11 19:47:24 +04:00
goto done ;
}
2011-01-18 18:21:24 +03:00
status = dcerpc_lsa_QueryInfoPolicy ( b , mem_ctx ,
2008-01-14 19:17:20 +03:00
& pol ,
2008-01-14 20:26:24 +03:00
LSA_POLICY_INFO_AUDIT_EVENTS ,
2011-01-18 18:21:24 +03:00
& info ,
& result ) ;
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-04-11 19:47:24 +04:00
goto done ;
}
2011-01-18 18:21:24 +03:00
if ( ! NT_STATUS_IS_OK ( result ) ) {
status = result ;
goto done ;
}
2006-04-11 19:47:24 +04:00
2008-02-08 04:37:19 +03:00
info - > audit_events . settings [ audit_category ] = audit_policy ;
2008-01-14 19:17:20 +03:00
2011-01-18 18:21:24 +03:00
status = dcerpc_lsa_SetInfoPolicy ( b , mem_ctx ,
2008-01-14 19:17:20 +03:00
& pol ,
2008-01-14 20:26:24 +03:00
LSA_POLICY_INFO_AUDIT_EVENTS ,
2011-01-18 18:21:24 +03:00
info ,
& result ) ;
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-04-11 19:47:24 +04:00
goto done ;
}
2011-01-18 18:21:24 +03:00
if ( ! NT_STATUS_IS_OK ( result ) ) {
status = result ;
goto done ;
}
2006-04-11 19:47:24 +04:00
2011-01-18 18:21:24 +03:00
status = dcerpc_lsa_QueryInfoPolicy ( b , mem_ctx ,
2008-01-14 19:17:20 +03:00
& pol ,
2008-01-14 20:26:24 +03:00
LSA_POLICY_INFO_AUDIT_EVENTS ,
2011-01-18 18:21:24 +03:00
& info ,
& result ) ;
if ( ! NT_STATUS_IS_OK ( status ) ) {
goto done ;
}
status = result ;
2006-04-11 19:47:24 +04:00
{
2008-02-08 04:37:19 +03:00
const char * val = audit_policy_str ( mem_ctx , info - > audit_events . settings [ audit_category ] ) ;
2006-04-11 19:47:24 +04:00
const char * policy = audit_description_str ( audit_category ) ;
print_auditing_category ( policy , val ) ;
}
done :
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2009-08-07 11:34:06 +04:00
d_printf ( _ ( " failed to set audit policy: %s \n " ) ,
2011-01-18 18:14:35 +03:00
nt_errstr ( status ) ) ;
2006-04-11 19:47:24 +04:00
}
2008-01-14 20:26:24 +03:00
2011-01-18 18:14:35 +03:00
return status ;
2006-04-11 19:47:24 +04:00
}
2008-01-14 20:26:24 +03:00
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
static NTSTATUS rpc_audit_enable_internal_ext ( struct rpc_pipe_client * pipe_hnd ,
2006-04-11 19:47:24 +04:00
TALLOC_CTX * mem_ctx ,
int argc ,
const char * * argv ,
2007-10-19 04:40:25 +04:00
bool enable )
2006-04-11 19:47:24 +04:00
{
2009-03-19 00:49:41 +03:00
struct policy_handle pol ;
2011-01-18 18:21:24 +03:00
NTSTATUS status , result ;
2008-02-08 04:37:19 +03:00
union lsa_PolicyInformation * info = NULL ;
2011-01-18 18:21:24 +03:00
struct dcerpc_binding_handle * b = pipe_hnd - > binding_handle ;
2006-04-11 19:47:24 +04:00
2011-01-18 18:14:35 +03:00
status = rpccli_lsa_open_policy ( pipe_hnd , mem_ctx , true ,
2009-04-15 03:12:13 +04:00
SEC_FLAG_MAXIMUM_ALLOWED ,
2006-04-11 19:47:24 +04:00
& pol ) ;
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-04-11 19:47:24 +04:00
goto done ;
}
2011-01-18 18:21:24 +03:00
status = dcerpc_lsa_QueryInfoPolicy ( b , mem_ctx ,
2008-01-14 19:17:20 +03:00
& pol ,
2008-01-14 20:26:24 +03:00
LSA_POLICY_INFO_AUDIT_EVENTS ,
2011-01-18 18:21:24 +03:00
& info ,
& result ) ;
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-04-11 19:47:24 +04:00
goto done ;
}
2011-01-18 18:21:24 +03:00
if ( ! NT_STATUS_IS_OK ( result ) ) {
status = result ;
goto done ;
}
2006-04-11 19:47:24 +04:00
2008-02-08 04:37:19 +03:00
info - > audit_events . auditing_mode = enable ;
2006-04-11 19:47:24 +04:00
2011-01-18 18:21:24 +03:00
status = dcerpc_lsa_SetInfoPolicy ( b , mem_ctx ,
2008-01-14 19:17:20 +03:00
& pol ,
2008-01-14 20:26:24 +03:00
LSA_POLICY_INFO_AUDIT_EVENTS ,
2011-01-18 18:21:24 +03:00
info ,
& result ) ;
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-04-11 19:47:24 +04:00
goto done ;
}
2011-01-18 18:21:24 +03:00
if ( ! NT_STATUS_IS_OK ( result ) ) {
status = result ;
goto done ;
}
2006-04-11 19:47:24 +04:00
done :
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2009-08-07 11:34:06 +04:00
d_printf ( _ ( " %s: %s \n " ) ,
enable ? _ ( " failed to enable audit policy " ) :
_ ( " failed to disable audit policy " ) ,
2011-01-18 18:14:35 +03:00
nt_errstr ( status ) ) ;
2006-04-11 19:47:24 +04:00
}
2011-01-18 18:14:35 +03:00
return status ;
2006-04-11 19:47:24 +04:00
}
2008-01-14 20:26:24 +03:00
2006-04-11 19:47:24 +04:00
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-05-10 01:22:12 +04:00
static NTSTATUS rpc_audit_disable_internal ( struct net_context * c ,
2010-05-21 05:25:01 +04:00
const struct dom_sid * domain_sid ,
2008-01-14 20:26:24 +03:00
const char * domain_name ,
2006-04-11 19:47:24 +04:00
struct cli_state * cli ,
struct rpc_pipe_client * pipe_hnd ,
2008-01-14 20:26:24 +03:00
TALLOC_CTX * mem_ctx ,
2006-04-11 19:47:24 +04:00
int argc ,
const char * * argv )
{
2008-01-14 20:26:24 +03:00
return rpc_audit_enable_internal_ext ( pipe_hnd , mem_ctx , argc , argv ,
false ) ;
2006-04-11 19:47:24 +04:00
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-05-10 01:22:12 +04:00
static NTSTATUS rpc_audit_enable_internal ( struct net_context * c ,
2010-05-21 05:25:01 +04:00
const struct dom_sid * domain_sid ,
2008-01-14 20:26:24 +03:00
const char * domain_name ,
2006-04-11 19:47:24 +04:00
struct cli_state * cli ,
struct rpc_pipe_client * pipe_hnd ,
2008-01-14 20:26:24 +03:00
TALLOC_CTX * mem_ctx ,
2006-04-11 19:47:24 +04:00
int argc ,
const char * * argv )
{
2008-01-14 20:26:24 +03:00
return rpc_audit_enable_internal_ext ( pipe_hnd , mem_ctx , argc , argv ,
true ) ;
2006-04-11 19:47:24 +04:00
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-05-10 01:22:12 +04:00
static NTSTATUS rpc_audit_list_internal ( struct net_context * c ,
2010-05-21 05:25:01 +04:00
const struct dom_sid * domain_sid ,
2008-01-14 20:26:24 +03:00
const char * domain_name ,
2006-04-11 19:47:24 +04:00
struct cli_state * cli ,
struct rpc_pipe_client * pipe_hnd ,
2008-01-14 20:26:24 +03:00
TALLOC_CTX * mem_ctx ,
2006-04-11 19:47:24 +04:00
int argc ,
const char * * argv )
{
2009-03-19 00:49:41 +03:00
struct policy_handle pol ;
2011-01-18 18:21:24 +03:00
NTSTATUS status , result ;
2008-02-08 04:37:19 +03:00
union lsa_PolicyInformation * info = NULL ;
2006-04-11 19:47:24 +04:00
int i ;
2011-01-18 18:21:24 +03:00
struct dcerpc_binding_handle * b = pipe_hnd - > binding_handle ;
2006-04-11 19:47:24 +04:00
2011-01-18 18:14:35 +03:00
status = rpccli_lsa_open_policy ( pipe_hnd , mem_ctx , true ,
2009-04-15 03:12:13 +04:00
SEC_FLAG_MAXIMUM_ALLOWED ,
2006-04-11 19:47:24 +04:00
& pol ) ;
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-04-11 19:47:24 +04:00
goto done ;
}
2011-01-18 18:21:24 +03:00
status = dcerpc_lsa_QueryInfoPolicy ( b , mem_ctx ,
2008-01-14 19:17:20 +03:00
& pol ,
2008-01-14 20:26:24 +03:00
LSA_POLICY_INFO_AUDIT_EVENTS ,
2011-01-18 18:21:24 +03:00
& info ,
& result ) ;
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2006-04-11 19:47:24 +04:00
goto done ;
}
2011-01-18 18:21:24 +03:00
if ( ! NT_STATUS_IS_OK ( result ) ) {
status = result ;
goto done ;
}
2006-04-11 19:47:24 +04:00
2009-08-07 11:34:06 +04:00
printf ( _ ( " Auditing: \t \t " ) ) ;
2008-02-08 04:37:19 +03:00
switch ( info - > audit_events . auditing_mode ) {
2008-01-14 20:26:24 +03:00
case true :
2009-08-07 11:34:06 +04:00
printf ( _ ( " Enabled " ) ) ;
2006-04-11 19:47:24 +04:00
break ;
2008-01-14 20:26:24 +03:00
case false :
2009-08-07 11:34:06 +04:00
printf ( _ ( " Disabled " ) ) ;
2006-04-11 19:47:24 +04:00
break ;
default :
2009-08-07 11:34:06 +04:00
printf ( _ ( " unknown (%d) " ) ,
info - > audit_events . auditing_mode ) ;
2006-04-11 19:47:24 +04:00
break ;
}
printf ( " \n " ) ;
2009-08-07 11:34:06 +04:00
printf ( _ ( " Auditing categories: \t %d \n " ) , info - > audit_events . count ) ;
printf ( _ ( " Auditing settings: \n " ) ) ;
2006-04-11 19:47:24 +04:00
2008-02-08 04:37:19 +03:00
for ( i = 0 ; i < info - > audit_events . count ; i + + ) {
const char * val = audit_policy_str ( mem_ctx , info - > audit_events . settings [ i ] ) ;
2006-04-11 19:47:24 +04:00
const char * policy = audit_description_str ( i ) ;
print_auditing_category ( policy , val ) ;
}
done :
2011-01-18 18:14:35 +03:00
if ( ! NT_STATUS_IS_OK ( status ) ) {
2009-08-07 11:34:06 +04:00
d_printf ( _ ( " failed to list auditing policies: %s \n " ) ,
2011-01-18 18:14:35 +03:00
nt_errstr ( status ) ) ;
2006-04-11 19:47:24 +04:00
}
2011-01-18 18:14:35 +03:00
return status ;
2006-04-11 19:47:24 +04:00
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-05-10 01:22:12 +04:00
static int rpc_audit_get ( struct net_context * c , int argc , const char * * argv )
2006-04-11 19:47:24 +04:00
{
2008-05-21 12:31:14 +04:00
if ( c - > display_usage ) {
2010-01-19 13:43:54 +03:00
d_printf ( " %s \n "
2009-08-07 11:34:06 +04:00
" net rpc audit get \n "
2010-01-19 13:43:54 +03:00
" %s \n " ,
_ ( " Usage: " ) ,
_ ( " View configured audit setting " ) ) ;
2008-05-21 12:31:14 +04:00
return 0 ;
}
2009-11-08 21:37:26 +03:00
return run_rpc_command ( c , NULL , & ndr_table_lsarpc . syntax_id , 0 ,
rpc_audit_get_internal , argc , argv ) ;
2006-04-11 19:47:24 +04:00
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-05-10 01:22:12 +04:00
static int rpc_audit_set ( struct net_context * c , int argc , const char * * argv )
2006-04-11 19:47:24 +04:00
{
2008-05-21 12:31:14 +04:00
if ( c - > display_usage ) {
2010-01-19 13:43:54 +03:00
d_printf ( " %s \n "
2009-08-07 11:34:06 +04:00
" net rpc audit set \n "
2010-01-19 13:43:54 +03:00
" %s \n " ,
_ ( " Usage: " ) ,
_ ( " Set audit policies " ) ) ;
2008-05-21 12:31:14 +04:00
return 0 ;
}
2009-11-08 21:37:26 +03:00
return run_rpc_command ( c , NULL , & ndr_table_lsarpc . syntax_id , 0 ,
rpc_audit_set_internal , argc , argv ) ;
2006-04-11 19:47:24 +04:00
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-05-10 01:22:12 +04:00
static int rpc_audit_enable ( struct net_context * c , int argc , const char * * argv )
2006-04-11 19:47:24 +04:00
{
2008-05-21 12:31:14 +04:00
if ( c - > display_usage ) {
2010-01-19 13:43:54 +03:00
d_printf ( " %s \n "
2009-08-07 11:34:06 +04:00
" net rpc audit enable \n "
2010-01-19 13:43:54 +03:00
" %s \n " ,
_ ( " Usage: " ) ,
_ ( " Enable auditing " ) ) ;
2008-05-21 12:31:14 +04:00
return 0 ;
}
2009-11-08 21:37:26 +03:00
return run_rpc_command ( c , NULL , & ndr_table_lsarpc . syntax_id , 0 ,
rpc_audit_enable_internal , argc , argv ) ;
2006-04-11 19:47:24 +04:00
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-05-10 01:22:12 +04:00
static int rpc_audit_disable ( struct net_context * c , int argc , const char * * argv )
2006-04-11 19:47:24 +04:00
{
2008-05-21 12:31:14 +04:00
if ( c - > display_usage ) {
2010-01-19 13:43:54 +03:00
d_printf ( " %s \n "
2009-08-07 11:34:06 +04:00
" net rpc audit disable \n "
2010-01-19 13:43:54 +03:00
" %s \n " ,
_ ( " Usage: " ) ,
_ ( " Disable auditing " ) ) ;
2008-05-21 12:31:14 +04:00
return 0 ;
}
2009-11-08 21:37:26 +03:00
return run_rpc_command ( c , NULL , & ndr_table_lsarpc . syntax_id , 0 ,
rpc_audit_disable_internal , argc , argv ) ;
2006-04-11 19:47:24 +04:00
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-05-10 01:22:12 +04:00
static int rpc_audit_list ( struct net_context * c , int argc , const char * * argv )
2006-04-11 19:47:24 +04:00
{
2008-05-21 12:31:14 +04:00
if ( c - > display_usage ) {
2010-01-19 13:43:54 +03:00
d_printf ( " %s \n "
2009-08-07 11:34:06 +04:00
" net rpc audit list \n "
2010-01-19 13:43:54 +03:00
" %s \n " ,
_ ( " Usage: " ) ,
_ ( " List auditing settings " ) ) ;
2008-05-21 12:31:14 +04:00
return 0 ;
}
2009-11-08 21:37:26 +03:00
return run_rpc_command ( c , NULL , & ndr_table_lsarpc . syntax_id , 0 ,
rpc_audit_list_internal , argc , argv ) ;
2006-04-11 19:47:24 +04:00
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2008-05-10 01:22:12 +04:00
int net_rpc_audit ( struct net_context * c , int argc , const char * * argv )
2006-04-11 19:47:24 +04:00
{
2008-06-07 04:25:08 +04:00
struct functable func [ ] = {
2008-05-21 12:31:14 +04:00
{
" get " ,
rpc_audit_get ,
NET_TRANSPORT_RPC ,
2009-08-07 11:34:06 +04:00
N_ ( " View configured auditing settings " ) ,
N_ ( " net rpc audit get \n "
" View configured auditing settings " )
2008-05-21 12:31:14 +04:00
} ,
{
" set " ,
rpc_audit_set ,
NET_TRANSPORT_RPC ,
2009-08-07 11:34:06 +04:00
N_ ( " Set auditing policies " ) ,
N_ ( " net rpc audit set \n "
" Set auditing policies " )
2008-05-21 12:31:14 +04:00
} ,
{
" enable " ,
rpc_audit_enable ,
NET_TRANSPORT_RPC ,
2009-08-07 11:34:06 +04:00
N_ ( " Enable auditing " ) ,
N_ ( " net rpc audit enable \n "
" Enable auditing " )
2008-05-21 12:31:14 +04:00
} ,
{
" disable " ,
rpc_audit_disable ,
NET_TRANSPORT_RPC ,
2009-08-07 11:34:06 +04:00
N_ ( " Disable auditing " ) ,
N_ ( " net rpc audit disable \n "
" Disable auditing " )
2008-05-21 12:31:14 +04:00
} ,
{
" list " ,
rpc_audit_list ,
NET_TRANSPORT_RPC ,
2009-08-07 11:34:06 +04:00
N_ ( " List configured auditing settings " ) ,
N_ ( " net rpc audit list \n "
" List configured auditing settings " )
2008-05-21 12:31:14 +04:00
} ,
{ NULL , NULL , 0 , NULL , NULL }
2006-04-11 19:47:24 +04:00
} ;
2008-01-14 20:26:24 +03:00
2008-06-07 04:25:08 +04:00
return net_run_function ( c , argc , argv , " net rpc audit " , func ) ;
2006-04-11 19:47:24 +04:00
}