Hmm, no sé si esto ayudará o no. Básicamente, sí, puedes solicitar "el nombre de usuario y contraseña, y comparar con lo que está en el sistema. ¿Puede entonces el cambio de propiedad de los archivos de la raíz? Probablemente. Más difícil de lo que yo quisiera pensar.
A menos que esté haciendo esto por su propio interés (o su empresa no permite que el software 3 ª Parte) podría sugerir un cierto software:
CFengine
Si eso no es lo que está buscando, entonces quizá
Webmin
Estoy seguro de que otros tendrán otro software que utilizan y prefieren. He visto ambas, pero no los utilizan.
Los siguientes pueden tomar la entrada de una contraseña y comprobar que en contra de la información de la sombra de enviar el archivo por usuario en el primer parámetro y la contraseña en el segundo.
Código:
#!/usr/bin/perl
#
# Grab the user's old password from /etc/shadow and compare to sent
# old password from web page - send back error if not the same
#
# HOG 04/25/02 Another wonderful product from the warped mind of me
# ====================================================================
# Set up variables ------------
$user = "$ARGV[0]";
$oldpass = "$ARGV[1]";
$datenow = "`date '+%h %d %T'`";
#
$userinfo = `/usr/bin/grep $user /etc/shadow`;
($user1, $passwd1, $passextra) = split(/:/, $userinfo, 3);
$salt = substr($passwd1,0,2);
#
# Put testing junk here (print variables)
#
if (crypt($oldpass, $salt) ne $passwd1) {
# =========== FAILED - write to messages file - return error =========
system("/usr/bin/echo \"$datenow progserver chgpwd: ERROR changing $user
password on check\" >> /var/adm/messages");
die "";
}