all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Tim X <timx@nospam.dev.null>
To: help-gnu-emacs@gnu.org
Subject: Re: emacs idiom for sudo
Date: Tue, 22 May 2007 18:29:47 +1000	[thread overview]
Message-ID: <87abvxdzwk.fsf@lion.rapttech.com.au> (raw)
In-Reply-To: mailman.947.1179807172.32220.help-gnu-emacs@gnu.org

Amy Templeton <amy.g.templeton@gmail.com> writes:

> Tim X <timx@nospam.dev.null> wrote:
>> "Rustom Mody" <rustompmody@gmail.com> writes:
>> > Is there a more convenient way for doing 'root-things' than
>> > -- get out of emacs (maybe suspend)
>> > -- start a shell
>> > -- sudo editor (usually vi) OR su ... password... editor
>
>> I use tramp to do this. Essentially, using either a 'su' or 'sudo' tramp method
>> to edit a local file. This is described in the tramp manual.
>
> What about executing some elisp code as root (obviously including a
> password prompt, not just executing it without any question)? Or is
> it necessary to just start a whole new Emacs? I didn't see anything
> about this in the tramp manual, but I might not be looking hard
> enough.
>

Thats going to be considerably harder to do. The tramp method for editing files
works well because all your really doing is wrapping  find-file and save-file
inside scp/ssh and hiding all the gory/boring details under elisp. However,
executing a command as another user from within emacs is a bit more difficult,
depending on the command you want to run. 

If the command is just a basic non-interactive or has trivial shell type
interaction, then its doable. But if it has more complex IO requirements, its
going to require a little more thought. 

I often execute a program as root by opening a term buffer and doing a su/sudo.
In the past, I've written a bit of elisp to automate such processes (using ssh
and an ssh--agent keys to make issues of password prompts go away etc)..
However, if the program I want to run requires extensive access to lower level
screen IO functions, things can become a bit 'hairy'. 

If you want to execute elisp as another user, well, thats going to be a fair
bit more complicated - I'm not sure how you would approach that sort of
problem. You can't use your existing emacs as the interpreter as it is running
in the wrong environment -= you would need to spawn of some sort of sub-shell
and then somehow get an elisp interpreter (write one in another lisp perhaps?).
You may be able to do something with emacsclient, but you woul dstill need an
emacs running somewhere as the user you want th e code to run as. 

Probably more of a hassle than its worth - but that depends on your
environment/needs I guess.

Tim


-- 
tcross (at) rapttech dot com dot au

  parent reply	other threads:[~2007-05-22  8:29 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.880.1179633671.32220.help-gnu-emacs@gnu.org>
2007-05-20  5:58 ` emacs idiom for sudo Tim X
2007-05-22  4:18   ` Amy Templeton
     [not found]   ` <mailman.947.1179807172.32220.help-gnu-emacs@gnu.org>
2007-05-22  8:29     ` Tim X [this message]
2007-05-22 14:25       ` foo@bar.baz
2007-05-22 17:11         ` Peter Dyballa
2007-05-22 21:45         ` Xavier Maillard
2007-05-23  4:13         ` Tim X
2007-05-22 20:45       ` Michael Albinus
     [not found]       ` <mailman.1025.1179866756.32220.help-gnu-emacs@gnu.org>
2007-05-23  4:18         ` Tim X
2007-05-22 22:53     ` David Kastrup
2007-05-23 10:33       ` reader
2007-05-23 12:02         ` Peter Dyballa
2007-05-20  4:01 Rustom Mody
2007-05-20  5:19 ` Eric Hanchrow
2007-05-21 12:07   ` Rustom Mody
2007-05-22  2:38   ` Matthew Flaschen
2007-05-22  4:38 ` Xavier Maillard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87abvxdzwk.fsf@lion.rapttech.com.au \
    --to=timx@nospam.dev.null \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.