LINUX.ORG.RU

если у меня:
# User privilege specification
root ALL=(ALL) ALL
civitano ALL=(ALL) ALL

и sudo без ключей

gln0fate ★★
() автор топика

Если не мудрить - то su это переключение пользователей. А sudo - выполнение программы с правами другого пользователя.

ZZaiatSS ★★
()
Ответ на: комментарий от borisych

а почему тогда?

home:/home/civitano# cat /usr/share/foo2zjs/firmware/sihp1018.dl > /dev/usb/lp0
home:/home/civitano# exit
civitano@home:~$ sudo /usr/share/foo2zjs/firmware/sihp1018.dl > /dev/usb/lp0
bash: /dev/usb/lp0: Отказано в доступе

gln0fate ★★
() автор топика

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

И ещё, при твоей конфигурации можно выполнять команды от другого юзера, даже не зная пароля этого юзера.

AX ★★★★★
()
Ответ на: комментарий от gln0fate

хе-хе, а потому что команда

"sudo /usr/share/foo2zjs/firmware/sihp1018.dl > /dev/usb/lp0"

выполняется как

"sudo /usr/share/foo2zjs/firmware/sihp1018.dl" > /dev/usb/lp0

а не как

sudo "/usr/share/foo2zjs/firmware/sihp1018.dl > /dev/usb/lp0"

annoynimous ★★★★★
()

Сравни:

user1  ALL=(skype) NOPASSWD:/usr/local/bin/skype.sh
user2  ALL=(skype) NOPASSWD:/usr/local/bin/skype.sh

при этом юзер skype пароля не имеет

Как ты такое сделаешь с su?

sdio ★★★★★
()
Ответ на: комментарий от sdio

Туда ещё хорошо shutdown записывать.

AX ★★★★★
()
Ответ на: комментарий от isden

Если ты думаешь, что sudo это для запуска юзером программ с правами рут, то тогда ой.

sdio ★★★★★
()
Ответ на: комментарий от gln0fate

sudo намного гибче su. Например можно определенным группам или пользователям разрешить запускать те или иные команды, при этом одним можно ращрешить это делать без пароля, у других пароль спрашивать а третьим строго настрого запретить это делать. А su как уже было сказано просто пускает рутовую консоль.

fat_angel ★★★★★
()
Ответ на: комментарий от annoynimous

> хе-хе, а потому что команда

Да уж, даже не знаю, повезло мне, что таких преподавателей как ты не встречал, или наоборот... ;)

anonymous
()
Ответ на: комментарий от ZZaiatSS

sudo -i != su

а пускать программы без пароля с помощью su можно если настроить pam соответствующим образом. Можно, например, пускать в su только по ssh-ключам.

а вот какие программы можно запускать с sudo и какие нет разным юзверям - сие можно сделать и просто юзая ACL без всяких su(do).

anonymous
()
Ответ на: комментарий от AX

>В том, что su запускает от имени нужного юзера шелл, а sudo - любую заданную команду.

man su

утверждение неверно.

dikiy ★★☆☆☆
()
Ответ на: комментарий от bakagaijin

> su спрашивает пароль рута, а sudo --- запускающего пользователя

Необязательно. man sudoers на предмет targetpw

dexpl ★★★★★
()
Ответ на: комментарий от dikiy

>утверждение неверно.

Если ты про --command, то это не то же самое. sudo command запускает command, а su -c command запускает /bin/sh -c command. Чтобы уловить разницу, попробуй запустить systemsettings из кде4 из рутовой консоли или su -c, он у тебя в обеих случаях вылетит с "Cannot find the D-Bus session server". Если же запускать через sudo, всё будет нормально.

AX ★★★★★
()
Ответ на: комментарий от sdio

> man sudo

угу, уже вижу. сам почти не пользуюсь sudo, так что ой :)

isden ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.