Which I won’t list here as they exist as distributed packages. There’s also find-file-root.el, which I found in EmacsWiki. It edits a file as root, using sudo and tramp (so those need to be present). There are many obvious improvements, but I’ve been happy with it. If you don’t like the idea of editing as root with your user password (as I don’t), append rootpw to Defaults in your sudoers file.

(defvar find-file-root-prefix
(if(featurep 'xemacs)"/[sudo/root@localhost]""/sudo:root@localhost:")"*The filename prefix used to open a file with `find-file-root'.")(defvar find-file-root-history nil"History list for files found using `find-file-root'.")(defvar find-file-root-hook nil"Normal hook for functions to run after finding a \"root\" file.")(defun find-file-root ()"*Open a file as the root user.
Prepends `find-file-root-prefix' to the selected file name so that it
maybe accessed via the corresponding tramp method."(interactive)(require 'tramp)(let* (;; We bind the variable `file-name-history' locally so we can;; use a separate history list for "root" files.(file-name-history find-file-root-history)(name(or buffer-file-name default-directory))(tramp (and(tramp-tramp-file-p name)(tramp-dissect-file-namename)))
path dir file);; If called from a "root" file, we need to fix up the path.(when tramp
(setq path (tramp-file-name-localname tramp)
dir (file-name-directory path)))(when(setq file (read-file-name"Find file (UID = 0): " dir path))(find-file (concat find-file-root-prefix file));; If this all succeeded save our new history list.(setq find-file-root-history file-name-history);; allow some user customization(run-hooks 'find-file-root-hook))))(global-set-key [(control x)(control r)] 'find-file-root)(provide 'find-file-root)