Comments 58
ну я так скажу :) каждый живет так как ему нравится. Меня полне устраивает su. И в очень редких случаях, даже незнаю почему пользуюсь sudo. Думаю и то и то имеет право на жизнь :)
ну что Вы, надо себя заставлять использовать правильные средства :-)
согласен. НО
Ваши утверждения по поводу логов, кучи прав это все годится для какого нить сервера где это все очень важ, а для домашнего компа это совсем не принципиально :) мой пароль рута дома даже моя любимая жена знает, и умеет открывать рутовский шелл :)
Ваши утверждения по поводу логов, кучи прав это все годится для какого нить сервера где это все очень важ, а для домашнего компа это совсем не принципиально :) мой пароль рута дома даже моя любимая жена знает, и умеет открывать рутовский шелл :)
зато потом на Большом Сервере не надо будет заново привыкать использовать sudo
а если племянник в гости придёт, поизучает ~/.bash_history и понаделает делов в системе?
а если племянник в гости придёт, поизучает ~/.bash_history и понаделает делов в системе?
и что интересного он там в хистори найдет? туда ж пароли не пишутся…
иногда пишутся, если команду su пишешь неправильно или enter забываешь нажать
да, убедительный аргумент :) хотя мало вероятно что хистори ктото будет смотреть, всеже вы правы :) перехожу на sudo.
Но если использовать sudo точно такая же ситуация может возникнуть, правда пароль не рутовский будет.
Но если использовать sudo точно такая же ситуация может возникнуть, правда пароль не рутовский будет.
Пароль может быть кстати быть и рутовским. Например, в последних SuSE, если вы задаете руту пароль, то по-умолчанию sudo будет в качестве пароля хотеть именно пароль рута.
С другой стороны, если комп домашний, и все равно все знают рутовский пароль, то почему бы не облегчить жизнь с NOPASSWD? В некоторых случаях здорово экономит время. Собственно ради этого самого NOPASSWD я чаще всего sudo и юзаю.
С другой стороны, если комп домашний, и все равно все знают рутовский пароль, то почему бы не облегчить жизнь с NOPASSWD? В некоторых случаях здорово экономит время. Собственно ради этого самого NOPASSWD я чаще всего sudo и юзаю.
иногда и очистить можно — главное заметить вовремя (:
Да ладно, при физическом доступе к компьютеру можно сделать что угодно. Загрузился с флешки и в путь.
su лучше не пользоваться, можно засветить пароль рута, а для sudo можно настроить ограниченные права.
Спасибо. Хорошо пишете. Новичкам будет полезно.
Пару дней назад успел прочитать в вашем блоге — bappoy.pp.ru/2008/11/10/su-vs-sudo.html
Пару дней назад успел прочитать в вашем блоге — bappoy.pp.ru/2008/11/10/su-vs-sudo.html
Если уж про линуксы в общем: на моих центосах аналогичный эффект достигается через «sudo -s»; вместо sudoedit используется visudo.
У «sudo su -», кстати, есть одно отличие — чистит терминал после завершения.
У «sudo su -», кстати, есть одно отличие — чистит терминал после завершения.
sudo -i иногда правильнее, поскольку наследуется рутовое окружение, а не пользовательское, которое может содержать кривые переменные окружения (например, лишние каталоги в PATH)
visudo работает только с /etc/sudoers
насчет чистки терминала думаю, что это настраивается добавлением clear в конец /root/.bashrc
visudo работает только с /etc/sudoers
насчет чистки терминала думаю, что это настраивается добавлением clear в конец /root/.bashrc
Скорее, .bash_logout
Действительно, -i тоже есть в более поздних версиях (а я даже в ман заглянул, чтоб ещё раз убедиться, что этого параметра там нет… на некоторых серверах).
Касательно очистки терминала — смысла делать это при запуске шелла никакого, а при выходе бывает полезно; правильное решение уже написали.
Касательно очистки терминала — смысла делать это при запуске шелла никакого, а при выходе бывает полезно; правильное решение уже написали.
visudo — это «правильное» редактирование /etc/sudoers, и для других файлов, в отличие от sudoedit оно не подходит
> если пользователь должен быть лишен права администрирования, в случае с su он должен забыть пароль root'а; если используется sudo, достаточно вынести его из соответствующей группы (например, wheel или admin) и/или файла sudoers, если он был дополнительно настроен.
Вот это — ерунда. Для использования su пользователь тоже должен быть в группе wheel. Доказательство:
Модуль pam_wheel.so проверяет, является ли пользователь членом группы wheel.
Вот это — ерунда. Для использования su пользователь тоже должен быть в группе wheel. Доказательство:
gw.office.rterm.ru merlin # cat /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
auth required pam_wheel.so use_uid
auth include system-auth
account include system-auth
password include system-auth
session include system-auth
session required pam_env.so
session optional pam_xauth.so
Модуль pam_wheel.so проверяет, является ли пользователь членом группы wheel.
Да, Вы правы.
Просто это казалось мне настолько очевидным, что я как-то забыл об этом написать :)
Просто это казалось мне настолько очевидным, что я как-то забыл об этом написать :)
поправил, спасибо за замечание
pam_wheel.so в качетсве параметра может принимать иям группы к которой должен принадлежать пользователь. МОжно даже трбовать членства в двух и более группах сразу. У меня su может выпольнять только пользователь принадлежащий специальной группе.
Проблема с su на мой взгляд именно в том, что если пользователя исключили из wheel, то он все равно знает пароль суперпользователя и, как правило, его логин.
Если речь идёт про машину, к которой есть физический доступ — он вообще сможет сбросить пароль рута, если захочет. Загрузится с флешки и вперёд. Т.е. знание или незнание пароля рута не остановит.
(рано нажал)
А если нет физического доступа — знание пароля рута ему наоборот не поможет, т.к. все нормальные системы запрещают непосредственный логин рута через сеть (скажем, есть опция permit root login в openssh, также есть ограничения в nfs и других).
Т.е. знает он — и что это вообще меняет?
А если нет физического доступа — знание пароля рута ему наоборот не поможет, т.к. все нормальные системы запрещают непосредственный логин рута через сеть (скажем, есть опция permit root login в openssh, также есть ограничения в nfs и других).
Т.е. знает он — и что это вообще меняет?
Много что меняет. Появляется возможность, имея физический доступ, скрытно предоставить сетевой доступ, например. Даже если сингл режим отключен. И т.д. Вобщем появляются возможности разные. Да и не везде ограничен сетевой доступ. Рут мог для своего удобства открыть скажем. В общем на мой взгляд — проблема имеется.
Да не проблема — я могу не сбивать пароль рута, а, например, chrootиться и делать под рутом что угодно, не зная его. Могу сделать ещё одного пользователя с uid=gid=0, с известным мне паролем. Короче, повторю, при физическом доступе нет разницы, знаешь или не знаешь пароль рута, так что «незнание рутового пароля» абсолютно ничего не решает.
Тем более, что я могу точно так же сбросить пароль «нерута», а пользователя с правом делать sudo, и работать от его имени через sudo.
> Да и не везде ограничен сетевой доступ. Рут мог для своего удобства открыть скажем.
Во-первых, кроме ограничений по uid/gid, бывает ещё куча других — ограничения внутри демонов, ограничения типа selinux или apparmor, ограничения файерволлом и т. д.
Во-вторых, в реальных системах «рутов» всегда несколько (опустим случай «своего админа» в мелкой конторке — они уже вымирают, и вымрут в течение лет трёх, в пользу аутсорсеров). Не может один человек обслуживать сложную сеть, да и иногда ему нужно уходить в отпуск, или он может заболеть…
В третьих, если человекидиот не запрещает такой доступ от имени рута через сеть (для удобства или ещё почему-нибудь), никакое sudo вместо su его точно не спасёт. Рут — это как бы «мастер-пароль» для изменения настроек, а никак не «отдельный пользователь-администратор».
В целом, sudo не добавляет безопастности по сравнению с su, когда мы говорим о выполнении административных задач (сомневающиеся могут попробовать привести ситуацию, в которой оно добавило бы безопастности). sudo было придумано совершенно с другой целью, а именно — «предоставление доступа рядовому пользователю к отдельным командам, требующим прав суперпользователя». Скажем, разрешить ему тушить систему командой sudo shutdown -r now.
Тем более, что я могу точно так же сбросить пароль «нерута», а пользователя с правом делать sudo, и работать от его имени через sudo.
> Да и не везде ограничен сетевой доступ. Рут мог для своего удобства открыть скажем.
Во-первых, кроме ограничений по uid/gid, бывает ещё куча других — ограничения внутри демонов, ограничения типа selinux или apparmor, ограничения файерволлом и т. д.
Во-вторых, в реальных системах «рутов» всегда несколько (опустим случай «своего админа» в мелкой конторке — они уже вымирают, и вымрут в течение лет трёх, в пользу аутсорсеров). Не может один человек обслуживать сложную сеть, да и иногда ему нужно уходить в отпуск, или он может заболеть…
В третьих, если человек
В целом, sudo не добавляет безопастности по сравнению с su, когда мы говорим о выполнении административных задач (сомневающиеся могут попробовать привести ситуацию, в которой оно добавило бы безопастности). sudo было придумано совершенно с другой целью, а именно — «предоставление доступа рядовому пользователю к отдельным командам, требующим прав суперпользователя». Скажем, разрешить ему тушить систему командой sudo shutdown -r now.
Господи, да что-ж вы такой? Никто и не спорит что против квалифицированного злоумышленника разницы в использовании su или sudo нет. Но вы же автомобиль свой открытым на улице не оставляете, из-за того что «если захотят угнать — все равно угонят»? Знание пароля суперпользователя во-первых может облегчить процесс компроментирования системы, во-вторых спровоцировать этот процесс.
Изначально учился пользоваться sudo, и в целом согласен с автором,
непонятно одно — почему неправильно писать sudo vim file?
sudoedit file — это редактор по умолчанию, а если нужен(хочется) vim — то почему же это не правильно?
непонятно одно — почему неправильно писать sudo vim file?
sudoedit file — это редактор по умолчанию, а если нужен(хочется) vim — то почему же это не правильно?
сори за офтоп, спасибо за статью. всегда пользовался su. открыл для себя что sudo -i подтягивает права не только локального рута а и права из домена, то есть, в хоть домене я доменный администратор, а на локальной машине просто пользователь с унином больше 10000 (добавить в группу wheel нельзя ). права доменного администратора подтянулись сразу без вопроса о пароле (авторизация через домен)
Никогда sudoedit не пользовался, а вот сервисы из sudo vim перезапускал, и удивлялся тому, что такая потенциальная дыра есть, теперь всё встало на свои места. Спасибо.
p.s. Сейчас запустил sudoedit, ужаснулся и пошёл менять редактор не более привычный. =)
p.s. Сейчас запустил sudoedit, ужаснулся и пошёл менять редактор не более привычный. =)
ммм странно, а у меня в дебиане root был. )
Спасибо за статью. У меня на десктопе Kubuntu, где я использую sudo всегда, как Вы и предлагаете, а вот в openSuse всегда использую su, так как если вводить sudo <программа с граф. оболочкой>, то пишет «Cannot to connect X-server». Не знаете из-за чего это?
Единственный, на мой взгляд, недостаток sudo — это то, что получив каким-либо способом
пароль пользователя, злоумышленник автоматически получает и все его привелегии, гарантированные в sudoers, и как вариант полный рут доступ. Что в случае с su было бы значительно сложнее.
пароль пользователя, злоумышленник автоматически получает и все его привелегии, гарантированные в sudoers, и как вариант полный рут доступ. Что в случае с su было бы значительно сложнее.
А как sudo устроена? Считывает настройки один раз при входе в систему, или есть определённый демон?
Вопрос — вот пользователь вошёл в систему, имея определённые настройки, и во время его пребывания в системе суперпользователь изменил набор комманд для него (к примеру рассширил). Пользователь сможет воспользоваться ими сразу? Или необходимо заново представиться системе? Или перезапустить сервис sudo?
Просто по аналогии с .bashrc — набор команд-то я изменю, но пока я не «перезайду» они не применятся.
<hr />
Сеанс разговора с самим собой и консолью.
Ага… Демон есть… Дату у файлов в /var/run/sudo/ меняет на 1/1/1985 — для того, чтобы после перезапуска нельзя было без ввода пароля пользователя запустить sudo.
man sudo прямо-таки глаза раскрыл мне на эту замечательную команду.
Для себя открыл опцию -v — продлить «время ожидания» ещё на 15 минут и при этом не выполнять никакой команды. И по прошествии этого времени спрашивать пароль опять (как и при первом запуске).
-k же, наоборот, «убивает» () штамп времени и при следующем запуске sudo будет требовать пароль. Можно не волноваться за оставленную без присмотра консоль (а то есть тут у меня любители походить по клавиатуре :) ).
Вопрос — вот пользователь вошёл в систему, имея определённые настройки, и во время его пребывания в системе суперпользователь изменил набор комманд для него (к примеру рассширил). Пользователь сможет воспользоваться ими сразу? Или необходимо заново представиться системе? Или перезапустить сервис sudo?
Просто по аналогии с .bashrc — набор команд-то я изменю, но пока я не «перезайду» они не применятся.
<hr />
Сеанс разговора с самим собой и консолью.
Ага… Демон есть… Дату у файлов в /var/run/sudo/ меняет на 1/1/1985 — для того, чтобы после перезапуска нельзя было без ввода пароля пользователя запустить sudo.
man sudo прямо-таки глаза раскрыл мне на эту замечательную команду.
Для себя открыл опцию -v — продлить «время ожидания» ещё на 15 минут и при этом не выполнять никакой команды. И по прошествии этого времени спрашивать пароль опять (как и при первом запуске).
-k же, наоборот, «убивает» () штамп времени и при следующем запуске sudo будет требовать пароль. Можно не волноваться за оставленную без присмотра консоль (а то есть тут у меня любители походить по клавиатуре :) ).
В Debian-based дистрибутивах пользователь root не имеет пароля
oh, rly? Или под deb-based автора подразумевает ubuntu-like?
oh, rly? Или под deb-based автора подразумевает ubuntu-like?
Есть такая полезная штучка как пакет sux в дебианах. Позволяет наследовать X environment под su(можно например запустить броузер из-под другого юзера настроенный под особую безопасность). Так вот она построена на su, а на gksu/gksudo у меня не получилось сделать то же самое. Я слегка помучался, не обнаружил аналогичных параметров и все на том закончилось… Так, что в некоторых аспектах su пока рано списывать со счетов :)
Вот, правильно в Дебиане, мне тоже нравится когда для рута не задан пароль. Но мне не нравится заморочный файл sudoers. Почему для тех, кто не хочет возиться с конфигами. нельзя было сделать версию sudo без конфига?
UFO just landed and posted this here
как бывший виндузятник и любитель гуев делаю
ssh root@localhost -X
ssh root@localhost -X
Насчет «устаревшего» su vs «правильного» sudo — чепуха.
Вообще-то у su и sudo разное предназначение: su — для предоставления пользователю дополнительных прав вообще, sudo — для выполнения ограниченного набора действий.
Как su, так и sudo умеют спрашивать и пароль текущего пользователя, и пароль цели (man suauth, pam_pseudo).
Отдайте sudo пользователям, а su — администраторам.
Вообще-то у su и sudo разное предназначение: su — для предоставления пользователю дополнительных прав вообще, sudo — для выполнения ограниченного набора действий.
Как su, так и sudo умеют спрашивать и пароль текущего пользователя, и пароль цели (man suauth, pam_pseudo).
Отдайте sudo пользователям, а su — администраторам.
«В Debian-based дистрибутивах пользователь root не имеет пароля»
Как это не имеет? Сначала он просто не установлен. Загрузился в консоли под root, ввел passwd, поставил пароль. А то так любой зашедший к тебе домой «шутник» поставит его за тебя.
Как это не имеет? Сначала он просто не установлен. Загрузился в консоли под root, ввел passwd, поставил пароль. А то так любой зашедший к тебе домой «шутник» поставит его за тебя.
использую sudo. хотя вот только что нашел по теме: boxtor.ru/%d1%80%d0%b0%d0%b7-%d0%b8-%d0%bd%d0%b0%d0%b2%d1%81%d0%b5%d0%b3%d0%b4%d0%b0-%d1%80%d0%b0%d0%b7%d0%b1%d0%b5%d1%80%d0%b5%d0%bc%d1%81%d1%8f-%d1%81-root%d0%be%d0%bc-%d0%b8-sudo/
UFO just landed and posted this here
А в скриптах что использовать? Когда надо не простому пользователю стать рутом, а, наоборот, из рутового скрипта — стартового, или в кроне, запустить других скриптов от других пользователей?
А вас не смущает, что с sudo достаточно взломать простого юзера, чтобы получить полный доступ к системе, потому как в sudo он вводит свой обычный пароль? Даже, если сделать ограничения на запуск команд, любую из них можно использовать для получения полного доступа, так как она запущена из-под админа.
Благодаря sudo получается, что пользователь работает под админом, что недопустимо и, по-сути, превращает систему в дырявую наподобие самой тупой настройки винды, где юзер обычно имеет права админа (хотя лично я, когда пользовался виндой, лишал своего пользователя админских привелегий, что правильно). Не использовал и не собираюсь никогда пользоваться sudo.
Sign up to leave a comment.
su или sudo?