Страница 1 из 1
как работает sudo?
Добавлено: 2011-01-14 0:12:13
denis-k
набираю команду:
Код: Выделить всё
%sudo pkg_version -v | grep "<" > /root/obnovlenie
думаю, что сейчас запросит пароль и я пойду пить чай, но она выдает следующее:
Код: Выделить всё
/root/obnovlenie: Недостаточно привилегий.
Password:
Что я делаю не так? Разве она не должна сначала спросить пароль, а потом уже проверять привилегии?
Re: как работает sudo?
Добавлено: 2011-01-14 0:21:54
unix-admin
Из man sudo:
Код: Выделить всё
sudo, sudoedit - execute a command as another user
Вы запускаете команду pkg_version в окружении sudo, но это не дает вам прав на создание файла в директории /root.
Вот так будет работать:
Код: Выделить всё
sudo pkg_version -v | grep -v = > ~/obnovlenie
p.s.: Так вы еще и увидите "BROKEN, FORBIDDEN, or IGNORE" порты.
Re: как работает sudo?
Добавлено: 2011-01-14 0:26:15
denis-k
unix-admin, но файл существует, та же команда:
проходит на ура
Re: как работает sudo?
Добавлено: 2011-01-14 0:32:20
hizel
Код: Выделить всё
sudo sh -c 'pkg_version -v | grep "<" > /root/obnovlenie'
Re: как работает sudo?
Добавлено: 2011-01-14 0:38:41
denis-k
hizel, вроде пошло

а в чем трабла то? в sudo нельзя писать длинные команды (конвейеры, перенаправления)?
Re: как работает sudo?
Добавлено: 2011-01-14 0:40:58
hizel
Re: как работает sudo?
Добавлено: 2011-01-14 0:47:20
unix-admin
denis-k писал(а):hizel, вроде пошло

а в чем трабла то? в sudo нельзя писать длинные команды (конвейеры, перенаправления)?
Найдите разницу

Ключевая фраза:
Re: как работает sudo?
Добавлено: 2011-01-14 1:52:40
FreeBSP
под судо выполняется тока первая команда. а потом ее результат идет в конвейер ко второй команде, которая уже от тебя
тоже должно работать по идее
Re: как работает sudo?
Добавлено: 2011-01-14 3:18:31
denis-k
Гы:
Критика
Программу критикуют, в частности, за невозможность выполнять некоторые команды. К примеру:
sudo cat sources.list > /etc/apt/sources.list
выдаст ошибку прав доступа (так как с правами root выполняется только процесс cat, а перенаправление выполняет shell с правами обычного пользователя), хотя такое можно сделать, использовав конвейер:
cat sources.list | sudo tee /etc/apt/sources.list
также ничто не мешает выполнить шелл с административными правами, а строку к выполнению взять в кавычки, используя параметр шелла «-с»:
sudo sh -c 'cat sources.list > /etc/apt/sources.list'
или же попасть в шелл интерактивно аналогично работе su, используя параметр -s
sudo -s
или выполнив
sudo sh
Всем спасибо
