Здравствуйте!
Я заметил, что sudo не замечает имя сайта, установленное в /etc/hostname.
Т.е. если его там изменить и указать его в /etc/sudoers, то после перезагрузки
при попытке вызвать команду через sudo она собщает, что не может найти host,
хотя hostname, конечно, это имя выводит.
В /etc/hosts я это имя не вносил, просто, столкнувшись с этим явлением,
заменил в /etc/sudoers имя хоста на localhost.
Так откуда sudo берёт имя локального сайта, из /etc/hosts?
И не перезаписывается ли /etc/hosts какой-нибудь программой,
т.е. я внесу в него имя из /etc/hostname, а оно потом затрётся?
Пётр.
sudo and hostname
Что-то ты запутал вопрос.
Покажи какие команды с host или hostname у тебя работают по разному от пользователя и через sudo.
В /etc/hostname было имя
server
а в /etc/hosts его не было.
в /etc/sudoers была запись
%users server = NOPASSWD: /sbin/shutdown, /bin/date
Все пользователи входят в группу users.
Когда пользователь ввёл команду
sudo /bin/date mmddhhmmyyyy
то было сообщение от sudo, что она не может найти хост.
Когда я заменил в /etc/sudoers server на localhost, то эта команда выполнилась.
Пётр.
hostname не отвечает за разрешение имен, в отличие от hosts
Да, кроме того, в /etc/resolv.conf сетевой адрес этого компьютера не был указан,
как nameserver.
Пётр.
Peter,
A Host_List is made up of one or more host names, IP addresses, network numbers, netgroups (pre-
fixed with '+') and other aliases. Again, the value of an item may be negated with the '!'
operator. If you do not specify a netmask along with the network number, sudo will query each
of the local host's network interfaces and, if the network number corresponds to one of the
hosts's network interfaces, the corresponding netmask will be used. The netmask may be speci-
fied either in standard IP address notation (e.g. 255.255.255.0 or ffff:ffff:ffff:ffff::), or
CIDR notation (number of bits, e.g. 24 or 64). A host name may include shell-style wildcards
(see the Wildcards section below), but unless the host name command on your machine returns the
fully qualified host name, you'll need to use the fqdn option for wildcards to be useful. Note
that sudo only inspects actual network interfaces; this means that IP address 127.0.0.1 (local-
host) will never match. Also, the host name ``localhost'' will only match if that is the actual
host name, which is usually only the case for non-networked systems.
в Debian ЕМНИП оно из /etc/interfaces берёт вроде-бы. Но точно не из /etc/hostname и уж тем более не из /etc/hosts (/etc/hosts нужен для преобразования доменного имени в IP, что-то вроде такого примитивного DNS сервера. Для sudo не имеет значения IP, если вы его явно не указали)
В /etc/network/interfaces там никаких имён не было.
Насчёт localhost не понял, это имя ведь всегда есть, хоть в сети, хоть без неё.
Пётр.
Peter, я не помню где конкретно задаётся в вашей ОС hostname, а читать документацию за вас мне лень. Но не в файле /etc/hostname
что значит "имя есть всегда"? Ну если вы всё лучше меня знаете, то сами разбирайтесь.Насчёт localhost не понял, это имя ведь всегда есть, хоть в сети, хоть без неё.
что значит "имя есть всегда"? Ну если вы всё лучше меня знаете, то сами разбирайтесь.[/quote]Peter, я не помню где конкретно задаётся в вашей ОС hostname, а читать документацию за вас мне лень. Но не в файле /etc/hostname[quote="Peter"]Насчёт localhost не понял, это имя ведь всегда есть, хоть в сети, хоть без неё.
Имя хоста у меня задаётся именно в /etc/hostname, а в /etc/host всегда есть строка
127.0.0.1 localhostя это имел в виду.
Пётр.