[paquet filesystem] question sur le fonctionnement (résolu)

Mise à jour / Création /debug de paquetages
falke
Chu Ko Nu
Messages : 416
Inscription : ven. 02 mars 2012, 19:24
Localisation : Grenoble

[paquet filesystem] question sur le fonctionnement (résolu)

Message par falke »

salut,

il m'arrive parfois de me retrouver avec des pacnew à gérer concernant group et gshadow.

habituellement je compare l'ancien et le nouveau avec meld et j'applique les modif avec le prog vipw (oui je sais je devrais utiliser groupmod etc..)

n'empêche qu'hier en regardant le contenu du dernier paquet filesystem j'ai été surpris de voir qu'il existe un script dans une fonction postupgrade dans le fichier .install qui intervient sur ces fichiers (group, gshadow etc ...) dont voici le contenu :

Code : Tout sélectionner

# args: <group> [options]
_addgroup() {
	if ! getent group "$1" >/dev/null; then
		groupadd "$@" >/dev/null
	fi
}

# args: <group> [options]
_adduser() {
	if ! getent passwd "$1" >/dev/null; then
		useradd "$@" >/dev/null
	fi
}

post_upgrade() {
	_addgroup optical -g 93
	_addgroup audio   -g 92
	_addgroup video   -g 91
	_addgroup floppy  -g 94
	_addgroup storage -g 95
	_addgroup log     -g 19
	_addgroup utmp    -g 20
	_addgroup power   -g 98
	_addgroup network -g 90
	_addgroup games   -g 50
	_addgroup uucp    -g 14
	_addgroup http    -g 33
	_adduser  http    -u 33 -d /srv/http -g http -s /bin/false
	_addgroup scanner -g 96
	_addgroup rfkill  -g 24
	_addgroup lock    -g 54
	_addgroup uuidd   -g 68
	_adduser uuidd    -u 68 -d / -g uuidd -s /sbin/nologin
	_addgroup dbus    -g 81
	_adduser dbus     -u 81 -d / -g dbus -s /sbin/nologin
	_addgroup systemd-journal -g 190

	# sync gshadow to group (fixes FS#19869)
	if ! grep -q '^lock:' etc/gshadow; then
		grpconv >/dev/null
	fi

	if ! grep -q '^include /etc/ld.so.conf.d/\*.conf$' etc/ld.so.conf; then
		echo 'include /etc/ld.so.conf.d/*.conf' >> etc/ld.so.conf
	fi

	# set "Last password change" > 0; otherwise su $user wont work
	for user in bin daemon mail ftp http nobody; do
		if LANG=C chage -l ${user} | grep -q 'password must be changed'; then
			chage -d 14871 ${user}
		fi
	done
}
par ailleurs , lorsqu'on regarde les fichiers livrés avec le paquet on constate qu'il existe un fichier group et gshadow déjà pleins (ou bien ont ils été remplis puis empaquettés pour être installés en dur ensuite ?)

Bien que je trouve le procédé du script plutôt classos :D je ne vois pas son intérêt que pour les primo-installation car pour les anciennes installations pour peu que des groupes aient été créés par l'utilisateur ou les applis après l'installe (ce qui est souvent le cas) un pacnew sera à tous les coups généré.
Dans ce cas pourquoi ne pas livrer simplement un fichier group et shadow en dur pour les primo-installes ?
Dernière modification par falke le ven. 22 mars 2013, 21:10, modifié 2 fois.
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [paquet filesystem] interrogation sur le fonctionnement

Message par tuxce »

falke a écrit :un pacnew sera à tous les coups généré.
Ce n'est pas grave et ça permet de voir la différence entre ce qui est crée et ce qui est installé.
falke a écrit :Dans ce cas pourquoi ne pas livrer simplement un fichier group et shadow en dur pour les primo-installes ?
Il y a des utilisateurs ou groupes qui ne sont créés que par le paquet filesystem. systemd-journal en est un exemple. La dernière mise à jour crée ce groupe à l'aide du .install.
falke
Chu Ko Nu
Messages : 416
Inscription : ven. 02 mars 2012, 19:24
Localisation : Grenoble

[pkg filesystem] interrogation sur le fonctionnement (résolu

Message par falke »

merci tuxce ,

oui j'ai vu pour journald.journal et je l'ai ajouté à mon group.

si je comprends bien le script il interroge une Base de donnée des groupes installés, s'il ne trouve rien il crée le groupe.

Je pense ce script est destiné à d'anciennes installe sans systemd d'installé ni autres groupes créés ultérieurment à l'installe par l'os ou les appli. donc un fichier group laissé "as it" depuis la première installe.

Edit (résolu) :

Bon, voilà j'ai fait quelques expériences :wink:

après avoir fait un pwck et un grpck j'ai fait du ménage dans group et/ou shadow, j'avais des entrées en doublon.

Suite à ça :
- j'ai sauvegardé group et shadow puis modifié group et gshadow de sorte qu'ils ne comportent aucune référence à systemd-journal (livré dans le dernier filesystem) ni dans group ni dans gshadow (group etc gshadow contenant toutefois des groupes non livrés par filesystem donc un fichier group et shadow non d'origine)
- puis réinstallé le dernier paquet filesystem.

Résultat aucun pacnew n'a été créé et mes fichiers group et gshadow ont été complétés par les références à systemd-journal sans virer les entrées spécifiques.

Conclusion : le script d'install fonctionne à merveille. J'ai tendance alors à penser que dans ce cas présent la création d'un pacnew révèle la présence d'un group ou gshadow un peu bidouillés :oops:
Répondre