to post messages and comments.

Человеку не нравится запускать графические программы через sudo, и он подключается к локальной машине по ssh -X, чтобы запустить графическую программу от другого пользователя.
Это нормально?

если вдруг не успею — типа как сочиняю про sudo etc.
оказалось актуально прям сейчас
есть у sudo такой опций -s
почему-то о ней не все знают
это почти тоже самое, что sudo -i — но без смены каталога и шелла (шелл можно задать как аргумент)
очень полезно, если у рута баш, а у юзера другой логин шелл (разумеется, любой — при условии, что он Zsh)
там деталей много, но сапиентсы просапиентят, если потребуется, ага?
смайлики вместе с солью, перцем и сахаром

А компьютерная метафора — это имплементация команд su и sudo — вход и выход между режимами суперузера и обычного юзера . Всё что там в коде накалякано и будет накалякано в вечных временах, у тебя есть шанс встретить на практике работы =)
[04:14:20 PM] [email protected]: Reply posted.
via #2770942/10
via juick.com

Debian, sudo...
Всё, сдаюсь, я ничего не понял. ВНЕЗАПНО на этой неделе прекратили работать команды вида "sudo ip ad ...", которые запускали скрипты, которые запускал openvpn, запущенный в свою очередь через service.

Такие жэ команды от меня работают. После sudo su — — работают. Разумеется, с полным путём — sudo /sbin/ip ad ... — работают.
sudoers следующий (опуская комментарии и пустые строчки):

Defaults env_reset
root ALL=(ALL) ALL
%staff ALL=(ALL) ALL
ilan ALL=NOPASSWD: /usr/sbin/visudo, /usr/bin/apt-get, /usr/bin/qemu-system-i386


Версия sudo:
Установлен: 1.8.10p3-1

/etc/sudo.conf — отсутствет.

А теперь, внимание добавление secure_path — решает проблему!!
Сейчас

Defaults env_reset, secure_path="/bin:/usr/bin:/sbin:/usr/sbin"

и всё, sudo ip ad ... — работает.
При том, что вроде дефолтный secure_path — ещё и /usr/local/bin:/usr/local/sbin включает (ну, по исходникам вроде так). При том, что вообще не должно быть никакой разницы между мной и root (exempt_group не установлена).

Вроде неделю назад (в предыдущую перезагрузка) оно работало. Что случилось, и почему так — непонятно.

15 лет назад sudo был тяжэловат в понимании и сложэн. Сейчас к нему добавили прикольных фичек, дефолтиков, плагинчиков и прочего. Стало, конечно, хужэ.

случайно выставил доступ к /usr/lib обычному пользователю (программу ставил копипастом). потом virtualbox начал ругаться на permitions.
решил сделать так (зря):
chown -R root:root /usr

в результате sudo перестал работать =) а пароль рута я благополучно забыл =) с livecd грузиться не хотелось и возиться с файлом /etc/shadow (можно конечно и проще), и я вспомнил пароль рута.
погуглил и нашел что файлы поврежденного sudo лечатся так:
chmod 0440 /etc/sudoers
chmod 4111 /usr/bin/sudo

в общем все вернулось на круги своя. но могут еще какие-нибудь программы начать жаловаться после того что я сделал с /usr

вот по теме:
unix.stackexchange.com
psychocats.net

жуйк, а эцамое... Я тут настраиваю sudo немного... Есть вопросы:
1) лучше чтобы спрашивало пароль рута или пользователя?
2) целесообразно ли использовать сессии (ну, для работы без пароля если один раз ввел правильно)
3) как лучше настроить чтобы максимально безопасно было пользоваться sudo?
4) как сделать чтобы все команды кроме нескольких были под паролем?

Пока получилось так: отключены сессии, спрашивает пароль рута. А вот третье и четвертое пока не могу осилить... Может как-то не так пишу?

Настройка sudo в Debian.
Ставим пакет, хотя обычно он уже стоит в системе
apt-get install sudo
далее открываем на редактирование файл /etc/sudoers
nano /etc/sudoers
Постле строки root ALL=(ALL) ALL дописываем:
user ALL=(ALL) NOPASSWD:ALL
где user — это название ваше учетки, а благодаря NOPASSWD:ALL не придется каждый раз вбивать пароль пользователя

После обновления sudo нарушилась работа моих скриптиков, загружающих ssh-ключи из зашифрованных файлов. Выяснилось, что новая версия sudo сбрасывает переменную SSH_AUTH_SOCK, в результате чего ssh-add не видит сокет для соединения с ssh-agent. Решение: добавить в $PREFIX/sudoers строчку:
Defaults env_keep += "SSH_AUTH_SOCK"

Насколько было бы проще, если бы sudo указывалась в конце команды. Или, например, если бы у sudo было бы последний обязательный аргумент sudo.

Всё-таки запустил 2 учётке на одном компе и всё прекрасно заработало за исключением того, что не было 2-го значка в трее. Ну и хрен с ним.
На память:
1. Создать отдельного юзера.
2. RW-доступ к его папке из под основного юзера.
3. Настроить sudo, чтобы не спрашивал пароля на 2-го юзера.
4. Предварительно настроить дроп на том (2-м) акке. Т.е. чтобы создалась папка, где хранятся пасс, логин, кэш и прочие настройки.
5. Из под основного выполняем: $ sudo -u <имя_юзера> <полный_путь_к_бинарнику_дропа>
6. ?????
7. PROFIT!!!

Ололошеньки!
$ sudo -s

Password:
Pauses for audience applause, not a sausage
Password:
You gotta go owwwww!
Password:
Your mind just hasn't been the same since the electro-shock, has it?
sudo: 3 incorrect password attempts