bash – Duda con comando sed (Linux)

Para un proyecto necesito crear un alta de usuarios con diferentes tipos de usuarios y funciones este registro de los usuarios se guarda en un archivo txt con el formato Nombre:ContraseƱa:TipodeUsuario:cedula
este registro se hace correctamente y mi duda en cuestion es en la modificacion de este registro la cual la hago con un comando sed que no entiendo exactamente que es lo que hace la linea
echo $(sed “${nLinea} s/:(^:)*/:${contrasena}/” usuarios.txt) > usuarios.txt