Administrace uživatelů přes puppet

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

Administrace uživatelů přes puppet

Každý proces v linuxovém systému někomu patří. Vlastník je identifikován unikátním číslem (UID), ke kterému je přiřazeno jeho unikátní jméno. Toto jméno je však unikátní vždy pouze v rámci systému. Na jiném stroji tak může mít stejné jméno úplně jinou číselnou hodnotu UID, protože ta přiřazuje v okamžiku, kdy je uživatel přidán do systému.

Jen jeden uživatel má vždy stejnou hodnotu UID odpovídající nule - root.

Kromě UID má uživatel přiřazen ještě jeden identifikátor - číselný identifikátor skupiny (GID). Pro skupiny však platí prakticky totéž co bylo zmíněno v předchozím odstavci.

Pokud jde o standalone stroj, není důvod se nad tím pozastavovat, protože systém místo UID a GID vždy zobrazuje odpovídající jména uživatelů a skupin. Ovšem má-li mezi sebou spolupracovat více strojů, mohou rozdílná UID a GID pěkně zamíchat kartami.

Jsou-li tyto stroje spravovány přes Puppet, lze tento problém elegantně vyřešit pomocí typů user a group a nastavení závislostí:

Poznámka
group { 'git':
	ensure => present,
	gid => 1000,
}
case $hostname {
	'git': {
		user { 'git':
		ensure => present,
		uid => 1000,
		gid => 'git',
		groups => 'www-data',
		home => '/home/git',
		managehome => true,
		shell => '/bin/bash',
		before => Group['git'],
		password => '$6$MxShiP22$tWawoL7u39iwUi9fEQWe5JDgGW9eBHp2T94QR4dmHCckQpeAxD4SilExyZ2v1jfYa9catLo/ztW8KvnAzTxC./',
		}
	}
	default: {
		user { 'git':
		ensure => present,
		uid => 1000,
		gid => 'git',
		before => Group['git'],
		shell => false,
		}
	}
}

Zjištění UID a GID uživatele

Poznámka
user@stroj~$ id want
uid=1001(want) gid=1001(want) skupiny=1001(want),4(adm),50(staff)


Zjištění názvu skupiny podle GID

Poznámka
user@stroj~$ getent passwd 33
www-data:x:33:33:www-data:/var/www:/bin/sh