-Поиск по дневнику

Поиск сообщений в Linux_Loader

 -Сообщества

Участник сообществ (Всего в списке: 4) Elfen_Lied Linux_Comunity Planet_Of_WASP The_Ring

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 20.04.2008
Записей: 743
Комментариев: 2542
Написано: 7716

sudo и su - ху из ху.

Дневник

Понедельник, 23 Марта 2009 г. 12:35 + в цитатник
Когда-то меня очень беспокоило несколько вопросов о получении привилегий других пользователей. Например:
• Почему для полученя прав root мне нужно вводить свой пароль, а не его? Не удар ли это по безопасности системы? И в чём вообще логика?
• Почему su не принимает мой пароль?
• Чем они отличаются? И если они выполняют одну функцию, то есть взаимозаменяемы, то зачем их комбинировать в sudo su?

Однажды в умной книжке я всё узнал :). Вот только теперь руки написать дошли :). И так. Чем же отличается sudo от su?

su

Комманда su перелогинивает юзера под другим именем в конкретном экземпляре оболочки. По умолчанию это имя - root (если комманда задана без аргументов). По запросу она требует ввести пароль этого пользователя. То есть, чтобы стать пользователем vasya, выполняем комманду su vasya и вводим его пароль.

Так же можно выполнить единичную комманду от имени любого пользователя, не становясь им. Для этого после его имени используется ключ -c, а за ним следут комманда.

# su vasya -c gedit file.txt


Отличие от sudo в том, что программа не запоминает нас на 10 минут. И если через секунду понадобится выполнить ту же комманду, то она спросит пароль вновь. Это очень хорошо с точки зрения безопасности, так как обычно su намного более опасна, чем sudo.

Пользователь root может становиться кем угодно, не вводя никакого пароля и даже не зная его :). На то он и root :). Для завершения работы программы su можно выполнить exit. Пользователю возвращается идентификатор, с которым он изначально вошёл в систему.

sudo

А тут всё немного интереснее. Программа sudo даёт доступ к правам и ресурсам других пользователей, но не ко всем, а к чётко разрешённым администратором системы. То есть например, админ хочет, чтобы я мог портить его картинки в GIMP, а так же запускать gedit от имени vasya, не выдавая при этом мне своего пароля и пароля Васи :). То есть не позволяя получать полные привилегии от их имени. А для того, чтобы хитрая тётя Валя, моя пол в кабинете в моё отстуствие, не воспользовалась этими привилегиями, то для их использования я должен подтвердить свою личность, введя свой пароль.

Правила, что кому позволено с помощью этой программы, находятся в файле /etc/sudoers.

Главная опасность в том, что пароль запоминается на непродолжительное время, и этим может воспользоваться кто-то другой... А так же, есть много других нюансов, которые следует помнить. Например, если пользователю позволено запускать программу su или некоторый коммандный интерпретатор от имени root, то все остальные запреты для него бессмысленны, так как все привилегии у него уже в руках :).

Ну, чтобы выполнить комманду от имени произвольного пользователя, если она разрешена в /etc/sudoers, необходимо использовать ключ -u, задающий имя этого пользователя.

# sudo -u vasya gedit file.txt

Либо же

# sudo -u vasya su

Превращает меня в Васю, если это позволено в sudoers. Аналогично sudo su превращает меня в root при тех же условиях :).
Рубрики:  софт
Безопасность

Метки:  

sudo: unable to resolve host

Дневник

Пятница, 07 Ноября 2008 г. 23:39 + в цитатник
В колонках играет - Nightwish
Настроение сейчас - Всё ещё трезвый :)

Вторая проблема, которая мне встретилась в интернете, бывает в 8.10 и 8.04, кажись, после обновления. Консоль, при работе под рутом, выдаёт

sudo: unable to resolve host чего-то_там

Где "чего-то_там" вроде как имя компьютера.
Это вроде как проблема с /etc/hosts . Вот, на всякий случай мой cat /etc/hosts

127.0.0.1 localhost
127.0.1.1 grey-desktop

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Я так понимаю, что в этом файле имя компа (у меня - grey-desktop) заменяется на localhost, что и вызывает проблему.

Метки:  

 Страницы: [1]