grisha
написал 13 марта 2008 года в 16:28 (3501 просмотр)
Ведет себя
как мужчина; открыл 34 темы в форуме, оставил 202 комментария на сайте.
Создал пользователя, а он не умеет перегрузиться и выключиться. Читал про файл sudoers. Команда visudo не работает, поэтому добавил вручную в файле sudoers такую строку
%users localhost=/sbin/reboot NOPASSWD: REBOOT
Под пользовтелем делаю reboot, а в ответ «команда не найдена». Как обычному пользователю разрешить выключать, перегружать комп и вобще выполнять что-нибудь через su?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
root ALL=(ALL) ALL
grisha ALL=NOPASSWD: /sbin/reboot, /sbin/init, /bin/su
запускаетца так
sudo /sbin/reboot
а если ты в свое шеле пропишешь алиасы:
alias reboot=’sudo /sbin/reboot'
alias init=’sudo /sbin/init'
то просто можно ребут или ини запускать
Почему не работает?
vi/vim в системе присутствуют?
Интересный подход…
У меня сделано так:
Правильно.
Прописывай alias (как тебе уже порекомендовали).
Или
Ясно: редактора vi у меня нет, поэтому visudo не работает. Но su все таки сделал для пользователя, правда, после того, как добавил его в группу wheel. А с переменными не получается. Не знаю нормально это или нет, но свой sudoers у меня лежит по такому адресу /usr/portage/app-admin/files/, а я читал в мануале, что должен быть в /etc/. Вобщем редактирую его в mc так.
Сначала пишу переменную
POWER=/sbin/poweroff, /sbin/reboot
Ниже другая строчка
user ALL=(root) NOPASSWD: POWER
В результате, когда я user. Набираю reboot — команда не найдена. /sbin/reboot — вы должны быть суперпользователем.
а ты так пробовал????
root ALL=(ALL) ALL
grisha ALL=NOPASSWD: /sbin/reboot, /sbin/init, /bin/su
Пробовал. Команда не найдена, а если полный пусть прописываю, то должен быть суперпользователем. Топчусь на месте. Объясните. Например как я понимаю такую строку
%users ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/poweroff
По идее это означает что всем, кто в группе пользователи можно выполнять любые команды если они знают пароль рута, а без пароля можно выключаться и перегружаться. У меня это не работает. Сначал мне нужно набрать су потом пароль и потом можно работать. Если судо — команда не найдена. Я подумал 8-) а может у меня судо не установлен, все таки все с нуля — всего несколько утилит, судо не ставил. Ну как бы на всякий случай — emerge sudo, а оно говорит что проверка не удалась, потому что размер файла /usr/portage/app-admin/sudo/files/sudoers не соответствует записанному размеру, получили такой то размер, а ожидали другой. Ну оно наверно понятно, я там полазил (но аккуратно, добавлял только свои строчки потом их все удалил). Прав ли я что хочу поставить судо и если да то как теперь мне его поставить? А если судо тут не причем (видимо я не очень понимаю что такое су а что такое судо), то объясните мою строку с юзерами выше (она логичная? правильная?)
И почему в Gentoo без vi она работает? ;)
сделай из под рута
which init
which reboot
эти пути и пропиши
Ты гонишь.
У меня на Gentoo с вышецитированным вариантом конфига sudoers работает следующее:
1. В профиль (~/.bashrc) прописано следующее:
2. Вызывается соответственно как:
И, что удивительно, оно работает!
Ура, я так и думал. До меня понемногу дошло, что путь к исполняемому файлу и соответственно переменную надо указывать в домашнем каталоге пользователя. Правда не знал как именно должна выглядеть строка с переменной и в каком именно файле, думал между .bashrc и .bash_profile (а было вот так легко и просто reboot /sbin/reboot).Теперь ясно, теперь должно заработать. Еще сгоряча решил тупо юзера добавить в группу adm (вдруг получится? :-)). Нихрена. Заглянул в /etc/group, в строке adm есть root,adm,daemon а моего юзера там нет). К чему бы это? Как мне быть с sudo, как его теперь поставить?
Когда спрашивал which reboot то в результате нет ребута и дальше указывались директории с каталогами где его нет (/usr /opt /bin).
Ни фига ты не понял.
Незачёт!
Команды существуют в двух ипостатях: исполняемый файл (или скрипт) в каталогах перечисленных в значении переменной PATH. и/или в виде alias’ов перечисленных в профиле пользователя (для случая «и» используется alias).
Список путей PATH для простого пользователя, специального системного (их несколько типов) и root’а различен!!!
Ни фига не просто!
Это — alias. Причём работать он у тебя будет только если ты не забудешь про sudo!
Относительно разницы между ~/.bashrc и ~/.bash_profile я помнится уже отписывался.
Интересно.
А как ты добавлял пользователя в группу?
Да как обычно:
См. мой первый абзац: список путей по которым ищется команда для простого пользователя и для root’а различен!!!
Простой пользователь рылом не вышел выполнять команды типа 'reboot’.
Если очень хочется, то можно разрешить ему это. Наиболее правильным путём является использование sudo.
Ставишь sudo, правильным образом (man visudo) редактируешь конфиг (прописываешь туда приведённый мной пример), прописываешь alias’ы в профиль, перечитываешь профиль — и готово!
Чего это он различен, если я в .bashrc для юзера пишу alias reboot=«/sbin/reboot» делаю под юзером reboot и на этот раз команда (ура) находится (правда сообщение о суперпользователе выдается-у меня пока нет судо). Как я понимаю, root тоже пользуется этой дорогой /sbin/reboot, чтобы перегрузиться.
Интересно.
Как обычно- usermod user -G adm
То, что простым пользователям и root’у доступен для выполнения разный набор команд!
Во-первых: с таким alias’ом ты пудешь послан независимо от наличия и конфигурации sudo.
Во-вторых: от этого не станут доступны простому пользователю прочие команды из каталога /sbin.
Ты ещё не проникся сутью FHS.
И, в отличие от обычного пользователя, у него для этого достаточно прав.
[/code]
Зачем мне редактировать package.use? Чтобы удалить/добавить флаги? Единственный флаг для sudo там получается pam, остальные с минусом. Что означают эти флаги пока не знаю, сделал -pam, команда emerge sudo по-прежднему ожидает файл другого размера.
.zshrc — coool!!!!!!!!!!!!! =)
/etc/portage/package.use — это фактически описание твоей конфигурации.
RTFM http://www.gentoo.org/dyn/use-index.xml
Не редактируй список флагов пока не понимаешь что ты делаешь!
Скачай файл правильного размера, проверь контрольные суммы и положи в /etc/portage/distfiles!
И хватит плакаться!!! Это — не единичный случай, когда в автоматическом режиме скачивается битый файл (наблюдал и на FreeBSD и в Gentoo).
Заменил файл, взяв из установочного portage пакета. После этого судо установился. Однако visudo говорит что то типа, что редактор вим не определен в /usr/bin/vim. В rc.conf я сменил умолчальный нано на вим. Не помогло. В итоге как раньше редактировал в мк. Теперь все работает: и перезагрузка, и выкл. Может насчет висудо просвятишь?
Глупый вопрос: vim вообще установлен?
А что там просвещать?
При наличии установленного (и прописанного в /etc/rc.conf) vim и выполнении команды от имени пользователя root (а другим и не положено: рыдом не вышли) всё должно работать.
visudo говорит Nчто указанный редактор
D-(//usr/bin/vim) не Nсуществует. Хотя он естьN,
я его вижу иD- дD-даже запускаю :-).
Команды eix нет.
1.
в студию!
2.
Вот такая понимашь D-загагулина
N’\E[32m]\E[40m\E[8]/usr/bin/vim'
Выше это после grep, а тут после eix
app-editors/vim
Available versions: 6.4 7.0.235 7.1.042 7.1.123 ~7.1.164 ~7.1.213 {acl bash-completion cscope gpm minimal nls perl python ruby vim-pager vim-with-x}
Installed versions: 7.1.123(20:39:48 17.03.2008)(acl gpm nls perl python -bash-completion -cscope -minimal -ruby -vim-pager -vim-with-x)
Homepage: http://www.vim.org/
Description: Vim, an improved vi-style text editor
Какая-то лажа.
Такого быть не должно.
Ты уверен, что ничего не напутал в процессе установки?
За более точной диагностикой шёл бы ты на gentoo.ru