summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/man/sss_cache.8.xml10
-rw-r--r--src/tools/sss_cache.c14
2 files changed, 24 insertions, 0 deletions
diff --git a/src/man/sss_cache.8.xml b/src/man/sss_cache.8.xml
index 2a6bd0f81..bf5e36d78 100644
--- a/src/man/sss_cache.8.xml
+++ b/src/man/sss_cache.8.xml
@@ -39,6 +39,16 @@
<variablelist remap='IP'>
<varlistentry>
<term>
+ <option>-E</option>,<option>--everything</option>
+ </term>
+ <listitem>
+ <para>
+ Invalidate all cached entries except for sudo rules.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
<option>-u</option>,<option>--user</option>
<replaceable>login</replaceable>
</term>
diff --git a/src/tools/sss_cache.c b/src/tools/sss_cache.c
index c9096fa91..b1139b396 100644
--- a/src/tools/sss_cache.c
+++ b/src/tools/sss_cache.c
@@ -38,6 +38,15 @@
#define INVALIDATE_SERVICES 8
#define INVALIDATE_AUTOFSMAPS 16
+#ifdef BUILD_AUTOFS
+#define INVALIDATE_EVERYTHING (INVALIDATE_USERS | INVALIDATE_GROUPS | \
+ INVALIDATE_NETGROUPS | INVALIDATE_SERVICES | \
+ INVALIDATE_AUTOFSMAPS)
+#else
+#define INVALIDATE_EVERYTHING (INVALIDATE_USERS | INVALIDATE_GROUPS | \
+ INVALIDATE_NETGROUPS | INVALIDATE_SERVICES)
+#endif
+
enum sss_cache_entry {
TYPE_USER=0,
TYPE_GROUP,
@@ -517,6 +526,8 @@ errno_t init_context(int argc, const char *argv[], struct cache_tool_ctx **tctx)
POPT_AUTOHELP
{ "debug", '\0', POPT_ARG_INT | POPT_ARGFLAG_DOC_HIDDEN, &debug,
0, _("The debug level to run with"), NULL },
+ { "everything", 'E', POPT_ARG_NONE, NULL, 'e',
+ _("Invalidate all cached entries except for sudo rulese"), NULL },
{ "user", 'u', POPT_ARG_STRING, &user, 0,
_("Invalidate particular user"), NULL },
{ "users", 'U', POPT_ARG_NONE, NULL, 'u',
@@ -569,6 +580,9 @@ errno_t init_context(int argc, const char *argv[], struct cache_tool_ctx **tctx)
case 'a':
idb |= INVALIDATE_AUTOFSMAPS;
break;
+ case 'e':
+ idb = INVALIDATE_EVERYTHING;
+ break;
}
}