Difference between revisions of "Accounts"

From A-Eskwiki
Jump to: navigation, search
(Groups)
Line 6: Line 6:
 
Accounts zijn verdeeld in een aantal groepen (groups):
 
Accounts zijn verdeeld in een aantal groepen (groups):
  
* '''''iba''''': [[IBA]]-commissies die extra computerrechten hebben: [[sysop]], [[www]] en [[hektex]].
+
* '''''iba''''': [[IBA]]-commissies die extra computerrechten hebben: [[sysop]], [[WWW|www]] en [[hektex]].
 
* '''''gods''''': mensjes met extra rechten (omdat ze in iba zitten/gezeten hebben).
 
* '''''gods''''': mensjes met extra rechten (omdat ze in iba zitten/gezeten hebben).
 
* '''''square''''': mensjes/iba-commissies die op square in kunnen loggen (omdat ze dat nodig hebben voor hun commissiewerk).
 
* '''''square''''': mensjes/iba-commissies die op square in kunnen loggen (omdat ze dat nodig hebben voor hun commissiewerk).

Revision as of 16:25, 17 September 2012

Hier worden het accountbeleid en -management van Sysop bij A–Eskwadraat beschreven.

Algemeen

Groups

Accounts zijn verdeeld in een aantal groepen (groups):

  • iba: IBA-commissies die extra computerrechten hebben: sysop, www en hektex.
  • gods: mensjes met extra rechten (omdat ze in iba zitten/gezeten hebben).
  • square: mensjes/iba-commissies die op square in kunnen loggen (omdat ze dat nodig hebben voor hun commissiewerk).
  • bestuur: bestuurs(functie)accounts.
  • cies: commissies.
  • mortals: gewone gebruikers.
  • extern: externe organisaties, verenigingen, groepen, enz.

Alle andere groepen zijn systeemgroepen.

De homedirectories zijn ingedeeld per categorie. Elke categorie bestrijkt een of meer groepen:

  • /home/bestuur: bestuur.
  • /home/cies: cies.
  • /home/extern: extern.
  • /home/mensjes: gods en mortals.
  • /home/system: alle systeemgroepen.

Groeplidmaatschappen worden beheerd in LDAP. De primary group van een account staat in het veld `gidNumber`. Users in andere groepen zetten kan door die user toe te voegen aan het veld `memberUid` van entry `cn=$groepnaam,ou=system,ou=groups,dc=a-eskwadraat,dc=nl`.

User management

Vrijwel alle usermanagement (password resetten, aanmaken, account enablen/disabled, enz) kan met het scriptje `ac'. Dit maakt weer gebruik van `cieadd` en `ciedel` voor het aanmaken/verwijderen van accounts (zie onder).

User info wordt opgeslagen in LDAP. Hierin staat informatie zoals het laatste inlogmoment van het account. De volgende dingen worden nog wel in `/etc/{passwd,shadow}` opgeslagen:

  • `/etc/passwd`:

login,UID,GID,fullname,homedir,shell

  • `/etc/shadow`:

login,encrypted passwd,passwd last change

De overige velden van `/etc/shadow` worden zo gezet dat ze niet gebruikt worden (bijv. account expire op 99999, enz.).

Let op: voor niet-systeemaccounts is LDAP tegenwoordig leidend. De informatie over A–Eskwadraataccounts in `/etc/passwd` wordt regelmatig bijgewerkt vanuit LDAP, en staat daar voor het geval LDAP de geest geeft.

Quota

Quota worden automatisch aangemaakt met behulp van `quotaset`. Zie dat script, en de configuratiefile `/etc/local/quotas` voor meer info; daar dienen quota aangepast te worden (en niet op de gebruikelijke Linux-manier).

Tweemaal per dag wordt `quotamail` gedraaid, die mensen waarschuwt als ze over hun quotum zitten. Met `ac` kan de graceperiode gereset worden.

Accounts aanmaken/verwijderen

Moet altijd door Sysop gebeuren. Actieve leden kunnen altijd om een account vragen en er een krijgen. Commissies krijgen vanzelfsprekend een account. Niet-actieve leden kunnen in het algemeen ook een account krijgen, dit ter beoordeling van Sysop. Niet-leden krijgen in principe geen account, omdat de dingen die overal open staan alleen openbaar zijn voor leden.

Accounts (ook persoonlijke accounts) worden aangemaakt via `cieadd`, wat weer vanuit `ac` aan te roepen is. In dat script worden o.a. automatisch ssh-keys gegenereerd en voor commissies wordt de ssh-key van het bestuur in de authorized_keys gezet. Verder wordt een printje gemaakt voor de accounthouder met daarop relevante informatie zoals password, quota, e.d.

Persoonlijke accounts worden na een jaar inactiviteit automatisch verwijderd. Commissieaccounts kunnen verwijderd worden met `ciedel`, ook vanuit `ac` aan te roepen. Dit archiveert de account naar `/archief` (apart voor commissies en overig), stuurt een mail naar Sysop, account (en bestuur bij commissie-account) en ruimt alle files behorend bij het account op.

Naamgeving

  • **Mensjes:**

In principe voornaam, evt. met een paar letters van achternaam om uniek te maken. De login zoals bij de faculteit is een alternatief, gebruik echter geen (student) nummer, omdat dat problemen geeft omdat het als UID geinterpreteerd wordt. Nicknames zijn **ZEER** af te raden, omdat dan de eigenaar niet (meteen) duidelijk is. Als iemand dat toch per se wil, maak bij voorkeur een mail-alias aan voor voornaam -> nickname en overleg eerst even met andere Sysoppers.

  • **Cies:**

Korte, duidelijke naam. Voor jaarlijkse commissies, het collegejaar erachter zetten, bijv `ec0203` of `ouderdag0304`. Commissies die over bestuursjaren heenlopen, maar wel een duidelijke datum voor hun activiteit hebben (voorlopig alleen intro) kunnen met het volledige kalenderjaar worden aangeduid (bijv `intro2003`). k's zijn uit den boze (bijv `intro2k2`)!

    1. Account disablen/enablen

Moet mogelijk zijn voor Sysop om dat snel even te doen, via het `ac` scriptje. Effectief houdt het in dat de shell van IETS veranderd wordt in IETS-disabled, en vice versa. SSH laat geen mensen inloggen met een niet-bestaande shell. Tegenwoordig (aug '12) verwijderen we bij disablen ook het wachtwoord, zodat ook zaken als su, VPN en imap ontoegankelijk worden.

Als het om bestuur en/of cies accounts gaat, van deze actie **ALTIJD** het bestuur cc'en. Ook als een account n.a.v. misbruik uitgeschakeld wordt, het bestuur op de hoogte stellen.

Gevaar! Wat je ook doet, ga niet shadowlocken. Dat is de normale Debian-manier om een account te disablen door een `!` voor het wachtwoord te zetten. LDAP snapt dit niet: die interpreteert de password-hash met een `!` ervoor als cleartext password.

    1. Expiry

Er expiren twee dingen, vrij onafhankelijk van elkaar: accounts en wachtwoorden. Beide worden dagelijks geregeld door ac-expire.

      1. Accounts

We gebruiken **niet** de shadow manier van expiren, want die werkt niet erg flexibel, en fouten zijn veel te makkelijk gemaakt. Bovendien is het nogal onzin om als je dagelijks een account gebruikt elk jaar te moeten aangeven dat je 'm gebruikt...

Alle accounts van mortals en gods worden doorlopen. Commissies verlopen niet (maar wachtwoorden wel, zie verderop).

Als iemand te lang niet heeft ingelogd wordt het account gedisabled. Dit wordt bepaald aan de hand van lastLogin-informatie in LDAP. Er zijn attributen voor `lastPasswordLogin`, `lastMailLogin` en `lastKeyLogin`. Op dit moment (aug '12) wordt alleen de eerste geupdate. PAM doet dit (`/etc/pam.d` op de workstations en op square).

Let op dat accounts nog wel handmatig opgeruimd moeten worden (met behulp van `ciedel` vanuit `ac`).

      1. Passwords

Passwords worden crypt-hashed opgeslagen. Hierdoor is het maximum aantal tekens 8.

Password dienen na een poosje te verlopen. In LDAP (`shadowLastChange`) staat altijd wanneer een wachtwoord voor het laatst gewijzigd is. Dit wachtwoord is geldig tot `shadowLastChange+shadowMax`. Daarna wordt het wachtwoord verwijderd. Gebruikers krijgen mail wanneer dit moment in de buurt komt.

Na zelf het wachtwoord te wijzigen mag het wachtwoord `shadowMin` dagen niet opnieuw veranderd worden, om terugveranderen te voorkomen. Wanneer wij het wachtwoord resetten wordt `shadowMin` 0, want dan willen we juist dat het veranderd wordt.

`shadowMax`, `shadowMin` en `shadowExpire` zijn attributen per gebruiker. Ze worden door `ac-expire` uniform gehouden. De gewenste waarden staan in `/etc/local/ac-vars`.

UID's die laag zijn mogen nooit last krijgen van verlopen wachtwoorden.

    1. Printjes

Printjes worden bijgehouden vanuit de cups logfiles. De aantallen worden maandelijks via een cronjob naar het bestuur gemaild voor facturering. De aantallen (voor simplex/duplex) zijn echter niet geheel betrouwbaar!