Linux: работа из-под другого пользователя (su & sudo)

В Linux есть простая возможность для запуска команды из-под другого пользователя. Например:

$alexander> su alexander0 -c 'yandex-disk status'

Команда su запустит команду yandex-disk status из-под (правильнее, «с правами») пользователя alexander0.

У меня (в Linux Mint) su также, как и sudo спрашивает пароль текущего пользователя.
Кстати, можно сделать так, чтобы su не спрашивало пароль для определенных групп пользователей. Подробно об этом: http://arsmx.ru/archives/706
Кратко: надо отредактировать /etc/pam.d/su - он вообще очень хорошо самодокументирован, надо только раскомментировать нужное, и чуть поправить. (Я не проверял: задачи не стояло).

Теоретически su без пароля может оказаться большой дырой в системе безопасности. Поэтому, если это действительно зачем-то надо,то лучше сделать отдельную группу, в нее пользователя, ему права только на то, что надо запускать без пароля, и уже из-под него запускать через su.


Чтобы в debian-based системах запустить команду из-под суперпользователя, есть специальная команда sudo:

$alexander> sudo cat /etc/hosts

При этом команда запросит пароль текущего пользователя (в данном примере - пользователя alexander).
См.также: Монтирование без пароля - там в том числе про настройку sudo для выполнение отдельных команд без пароля.