| Server IP : 93.86.61.54 / Your IP : 216.73.216.156 Web Server : Apache/2.4.62 (Ubuntu) System : Linux rasin.ddns.net 6.8.0-124-generic #124~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 21:05:19 UTC x86_64 User : www-data ( 33) PHP Version : 8.4.22 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/projects/nextcloud/core/doc/admin/configuration_user/ |
Upload File : |
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LDAP user cleanup — Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="The LDAP configuration API" href="user_auth_ldap_api.html" />
<link rel="prev" title="User authentication with LDAP" href="user_auth_ldap.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_server/index.html">Nextcloud configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">User management</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="user_configuration.html">User management</a></li>
<li class="toctree-l2"><a class="reference internal" href="reset_admin_password.html">Resetting a lost admin password</a></li>
<li class="toctree-l2"><a class="reference internal" href="reset_user_password.html">Resetting a user password</a></li>
<li class="toctree-l2"><a class="reference internal" href="user_password_policy.html">User password policy</a></li>
<li class="toctree-l2"><a class="reference internal" href="two_factor-auth.html">Two-factor authentication</a></li>
<li class="toctree-l2"><a class="reference internal" href="user_auth_ftp_smb_imap.html">User authentication with IMAP, SMB, FTP and others</a></li>
<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap.html">User authentication with LDAP</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">LDAP user cleanup</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#deleting-local-nextcloud-users">Deleting local Nextcloud users</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap_api.html">The LDAP configuration API</a></li>
<li class="toctree-l2"><a class="reference internal" href="user_provisioning_api.html">User provisioning API</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">File workflows</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home"></a> »</li>
<li><a href="index.html">User management</a> »</li>
<li>LDAP user cleanup</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_user/user_auth_ldap_cleanup.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="ldap-user-cleanup">
<h1>LDAP user cleanup<a class="headerlink" href="#ldap-user-cleanup" title="Permalink to this headline">¶</a></h1>
<p>LDAP User Cleanup is a new feature in the <code class="docutils literal notranslate"><span class="pre">LDAP</span> <span class="pre">user</span> <span class="pre">and</span> <span class="pre">group</span> <span class="pre">backend</span></code>
application. LDAP User Cleanup is a background process that automatically
searches the Nextcloud LDAP mappings table, and verifies if the LDAP users are
still available. Any users that are not available are marked as <code class="docutils literal notranslate"><span class="pre">deleted</span></code> in
the <code class="docutils literal notranslate"><span class="pre">oc_preferences</span></code> database table. Then you can run a command to display
this table, displaying only the users marked as <code class="docutils literal notranslate"><span class="pre">deleted</span></code>, and then you have
the option of removing their data from your Nextcloud data directory.</p>
<p>These items are removed upon cleanup:</p>
<ul class="simple">
<li><p>Local Nextcloud group assignments</p></li>
<li><p>User preferences (DB table <code class="docutils literal notranslate"><span class="pre">oc_preferences</span></code>)</p></li>
<li><p>User’s Nextcloud home folder</p></li>
<li><p>User’s corresponding entry in <code class="docutils literal notranslate"><span class="pre">oc_storages</span></code></p></li>
</ul>
<p>There are two prerequisites for LDAP User Cleanup to operate:</p>
<ol class="arabic simple">
<li><p>Set <code class="docutils literal notranslate"><span class="pre">ldapUserCleanupInterval</span></code> in <code class="docutils literal notranslate"><span class="pre">config.php</span></code> to your desired check
interval in minutes. The default is 51 minutes.</p></li>
<li><p>All configured LDAP connections are enabled and operating correctly. As users
can exist on multiple LDAP servers, you want to be sure that all of your
LDAP servers are available so that a user on a temporarily disconnected LDAP
server is not marked as <code class="docutils literal notranslate"><span class="pre">deleted</span></code>.</p></li>
</ol>
<p>The background process examines 50 users at a time, and runs at the interval you
configured with <code class="docutils literal notranslate"><span class="pre">ldapUserCleanupInterval</span></code>. For example, if you have 200 LDAP
users and your <code class="docutils literal notranslate"><span class="pre">ldapUserCleanupInterval</span></code> is 20 minutes, the process will
examine the first 50 users, then 20 minutes later the next 50 users, and 20
minutes later the next 50, and so on.</p>
<p>The amount of users to check can be set to a custom value via occ command. The
following example sets it to 300:</p>
<p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">-u</span> <span class="pre">www-data</span> <span class="pre">php</span> <span class="pre">occ</span> <span class="pre">config:app:set</span> <span class="pre">--value=300</span> <span class="pre">user_ldap</span> <span class="pre">cleanUpJobChunkSize</span></code></p>
<p>There are two <code class="docutils literal notranslate"><span class="pre">occ</span></code> commands to use for examining a table of users marked as
deleted, and then manually deleting them. The <code class="docutils literal notranslate"><span class="pre">occ</span></code> command is in your
Nextcloud directory, for example <code class="docutils literal notranslate"><span class="pre">/var/www/nextcloud/occ</span></code>, and it must be run as
your HTTP user. To learn more about <code class="docutils literal notranslate"><span class="pre">occ</span></code>, see
<a class="reference internal" href="../configuration_server/occ_command.html"><span class="doc">Using the occ command</span></a>.</p>
<p>These examples are for Ubuntu Linux:</p>
<ol class="arabic simple">
<li><p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">-u</span> <span class="pre">www-data</span> <span class="pre">php</span> <span class="pre">occ</span> <span class="pre">ldap:show-remnants</span></code> displays a table with all
users that have been marked as deleted, and their LDAP data.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">-u</span> <span class="pre">www-data</span> <span class="pre">php</span> <span class="pre">occ</span> <span class="pre">user:delete</span> <span class="pre">[user]</span></code> removes the user’s data from the
Nextcloud data directory.</p></li>
</ol>
<p>This example shows what the table of users marked as <code class="docutils literal notranslate"><span class="pre">deleted</span></code> looks like:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ sudo -u www-data php occ ldap:show-remnants
+-----------------+-----------------+------------------+--------------------------------------+
| Nextcloud name | Display Name | LDAP UID | LDAP DN |
+-----------------+-----------------+------------------+--------------------------------------+
| aaliyah_brown | aaliyah brown | aaliyah_brown | uid=aaliyah_brown,ou=people,dc=com |
| aaliyah_hammes | aaliyah hammes | aaliyah_hammes | uid=aaliyah_hammes,ou=people,dc=com |
| aaliyah_johnston| aaliyah johnston| aaliyah_johnston | uid=aaliyah_johnston,ou=people,dc=com|
| aaliyah_kunze | aaliyah kunze | aaliyah_kunze | uid=aaliyah_kunze,ou=people,dc=com |
+-----------------+-----------------+------------------+--------------------------------------+
</pre></div>
</div>
<p>Following flags can be specified additionally:</p>
<p><em>–short-date</em>: formats the dates for <code class="docutils literal notranslate"><span class="pre">Last</span> <span class="pre">login</span></code> and <code class="docutils literal notranslate"><span class="pre">Detected</span> <span class="pre">on</span></code> in a short Y-m-d format (e.g. 2019-01-14)</p>
<p><em>–json–</em>: instead of a table, the output is json-encoded. This makes it easy to process the data programmatically.</p>
<p>Then you can run <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">-u</span> <span class="pre">www-data</span> <span class="pre">php</span> <span class="pre">occ</span> <span class="pre">user:delete</span> <span class="pre">aaliyah_brown</span></code> to delete
user aaliyah_brown. You must use the user’s Nextcloud name.</p>
<div class="section" id="deleting-local-nextcloud-users">
<h2>Deleting local Nextcloud users<a class="headerlink" href="#deleting-local-nextcloud-users" title="Permalink to this headline">¶</a></h2>
<p>You may also use <code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">user:delete</span> <span class="pre">[user]</span></code> to remove a local Nextcloud user;
this removes their user account and their data.</p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="user_auth_ldap_api.html" class="btn btn-neutral float-right" title="The LDAP configuration API" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="user_auth_ldap.html" class="btn btn-neutral float-left" title="User authentication with LDAP" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
© Copyright 2020 Nextcloud GmbH
</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/17/admin_manual">17</a></dd>
<dd><a href="https://docs.nextcloud.com/server/18/admin_manual">18</a></dd>
<dd><a href="https://docs.nextcloud.com/server/19/admin_manual">19</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>