LINUX.ORG.RU
решено ФорумAdmin

Solaris, вывод ifconfig и права на устройства

 


0

1

Простите, что спрашиваю здесь про Solaris:

Есть некая проблема, предположительно заключающаяся в отсутствии доступа к сетевым интерфейсам для процессов, запущенных от определённого пользователя. Косвенно выражается это таким образом:

1. Вывод 'ifconfig -a' от определённого пользователя не содержит сведений о MAC-адресах сетевых интерфейсов:

% ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
	inet 127.0.0.1 netmask ff000000 
bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
	inet 192.168.160.6 netmask ffffff00 broadcast 192.168.160.255
bge2: flags=1000842<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
	inet 0.0.0.0 netmask 0 
ce0: flags=1000842<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
	inet 0.0.0.0 netmask 0

2. В тоже время, от root'а MAC-адреса отображаются правильно:

# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
	inet 127.0.0.1 netmask ff000000 
bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
	inet 192.168.160.6 netmask ffffff00 broadcast 192.168.160.255
	ether 0:14:4f:c3:e0:b0 
bge2: flags=1000842<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
	inet 0.0.0.0 netmask 0 
	ether 0:14:4f:c3:e0:b2 
ce0: flags=1000842<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
	inet 0.0.0.0 netmask 0 
	ether 0:14:4f:44:93:ad

3. Также, сведения о MAC-адресах отображаются от непривилегированного пользователя на другой, с виду такой же, машине. Права на устройства у этих машин одинаковые:

% ls -l /dev | grep bge
lrwxrwxrwx   1 root     root          29 Oct 28  2008 bge -> ../devices/pseudo/clone@0:bge
lrwxrwxrwx   1 root     root          57 Oct 28  2008 bge0 -> ../devices/pci@1e,600000/pci@0/pci@9/pci@0/network@4:bge0
lrwxrwxrwx   1 root     root          59 Oct 28  2008 bge1 -> ../devices/pci@1e,600000/pci@0/pci@9/pci@0/network@4,1:bge1
lrwxrwxrwx   1 root     root          57 Oct 28  2008 bge2 -> ../devices/pci@1e,600000/pci@0/pci@a/pci@0/network@4:bge2
lrwxrwxrwx   1 root     root          59 Oct 28  2008 bge3 -> ../devices/pci@1e,600000/pci@0/pci@a/pci@0/network@4,1:bge3
% ls -l /dev/ce
lrwxrwxrwx   1 root     root          28 Oct 28  2008 /dev/ce -> ../devices/pseudo/clone@0:ce
% ls -l /devices/pseudo | grep bge
crw-rw-rw-   1 root     sys       11, 202 Nov 13 08:43 clone@0:bge
% ls -l /devices/pseudo/clone\@0\:ce
crw-rw-rw-   1 root     sys       11, 94 Oct 28  2008 /devices/pseudo/clone@0:ce
% ls -l /devices/pci\@1e\,600000/pci\@0/pci\@9/pci\@0 | grep bge
crw-rw-rw-   1 root     sys      202,  2 Nov 13 08:47 network@4,1:bge1
crw-rw-rw-   1 root     sys      202,  1 Nov 13 08:44 network@4:bge0
% ls -l /devices/pci\@1e\,600000/pci\@0/pci\@a/pci\@0 | grep bge
crw-rw-rw-   1 root     sys      202,  4 Nov 13 08:47 network@4,1:bge3
crw-rw-rw-   1 root     sys      202,  3 Nov 13 08:44 network@4:bge2

Подскажите, что может быть здесь не так? Существуют ли в Solaris какие-то дополнительные механизмы, регулирующие права доступа к устройствам сетевых интерфейсов, помимо разрешений на файлы в /dev и /device?

★★

Последнее исправление: dumka (всего исправлений: 1)

Вам нужно просто определять mac адрес посредством ifconfig от обычного пользователя ?

Если да, то можете посмотреть например здесь: /proc/net/arp, правда я не уверен, что в solaris всё так же как в Linux.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Нет. Дело не в MAC-адресах как таковых. Это было косвенное свидетельство проблем с правами доступа к сетевым интерфейсам.

Контекст такой: На этой машине должно работать некое проприетарное ПО. Оно работает не правильно - не проходят данные через сетевые интерфейсы. Конфигурация этого проприетарного ПО точно совпадает с конфигурацией его нормально работающей версии на другой машине. Аппаратная часть самих машин тоже одинаковая. Сетевые соединения проверены и исправны на физическом уровне.

dumka ★★
() автор топика
Последнее исправление: dumka (всего исправлений: 1)
Ответ на: комментарий от dumka

Сравните как минимум группы, в которые входит пользователь, от которого вы запускаете ваше проприетарное ПО, на одной системе и на второй.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Сравните как минимум группы, в которые входит пользователь, от которого вы запускаете ваше проприетарное ПО, на одной системе и на второй.

Уже проверил: /etc/group совпадают.

UID пользователей в /etc/passwd разные, но это не должно иметь значения.

dumka ★★
() автор топика
Последнее исправление: dumka (всего исправлений: 1)

Существуют ли в Solaris какие-то дополнительные механизмы, регулирующие права доступа

RBAC - как во всех, нормальных, системах.

robot12 ★★★★★
()
Ответ на: комментарий от robot12

ТС сказал, что при вызове 'ifconfig -a' от пользователя не выводятся данные по mac адресу. Я ему указал где можно узнать mac адрес интерфейса, кроме вывода ifconfig. Заодно предупредил, что в Solaris указанный файл может отсутствовать.

Я не вижу в этом проблемы.

А вот вы, видимо пытаетесь таки набрать «скор» на не нужных сообщениях.

kostik87 ★★★★★
()
Ответ на: комментарий от robot12

А версия ?

% uname -a
SunOS host1 5.10 Generic_120011-14 sun4u sparc SUNW,Sun-Fire-V215

Читайте dladm, ppriv.

Вывод 'ppriv -l' совпадает на обоих системах. А что именно посмотреть через dladm?

dumka ★★
() автор топика
Ответ на: комментарий от dumka

А что именно посмотреть через dladm?

Извиняюсь, я имел в виду почитать маны на эти команды.

robot12 ★★★★★
()
Ответ на: комментарий от robot12

Я умею читать и понимать написанное, если вы не поняли, что я ответил вам здесь, то прочитайте ещё раз:

kostik87

ТС сказал, что при вызове 'ifconfig -a' от пользователя не выводятся данные по mac адресу. Я ему указал где можно узнать mac адрес интерфейса, кроме вывода ifconfig. Заодно предупредил, что в Solaris указанный файл может отсутствовать.

Я не вижу в этом проблемы.

А вот вы, видимо пытаетесь таки набрать «скор» на не нужных сообщениях.

kostik87 ★★★★★
()

robot12, не засоряйте тему перебранкой, пожалуйста.
kostik87, я согласен с robot12, вам следует внимательнее читать сообщения.

Извиняюсь, я имел в виду почитать маны на эти команды.
И да, в солярке привелегии это http://docs.oracle.com/cd/E19253-01/816-5175/privileges-5/index.html

Ох, не хотелось мне погружаться в нюансы, но, чувствую, придётся. Однако, я всё ещё надеюсь на простые советы знающих людей...

dumka ★★
() автор топика
Последнее исправление: dumka (всего исправлений: 1)

Вам правильно сказали, смотрите привилегии пользователей. Скорее всего не хватает привилегии net_rawaccess

% ppriv -eD ifconfig -a

boneshaker
()
Ответ на: комментарий от boneshaker

Вы правы, спасибо:

% ppriv -D -e ifconfig -a 1>/dev/null
ifconfig[16712]: missing privilege "net_rawaccess" (euid = 1001, syscall = 5) for "devpolicy" needed at spec_open+0xd4
ifconfig[16712]: missing privilege "net_rawaccess" (euid = 1001, syscall = 5) for "devpolicy" needed at spec_open+0xd4
ifconfig[16712]: missing privilege "net_rawaccess" (euid = 1001, syscall = 5) for "devpolicy" needed at spec_open+0xd4
ifconfig[16712]: missing privilege "net_rawaccess" (euid = 1001, syscall = 5) for "devpolicy" needed at spec_open+0xd4
ifconfig[16712]: missing privilege "net_rawaccess" (euid = 1001, syscall = 5) for "devpolicy" needed at spec_open+0xd4
ifconfig[16712]: missing privilege "net_rawaccess" (euid = 1001, syscall = 5) for "devpolicy" needed at spec_open+0xd4
ifconfig[16712]: missing privilege "net_rawaccess" (euid = 1001, syscall = 5) for "devpolicy" needed at spec_open+0xd4
ifconfig[16712]: missing privilege "net_rawaccess" (euid = 1001, syscall = 5) for "devpolicy" needed at spec_open+0xd4

А где или чем можно добавить привилегию «net_rawaccess» для пользователя?

dumka ★★
() автор топика
Ответ на: комментарий от boneshaker

Ага, не дождался ответа, нагуглил сам.

Спасибо огромное!

dumka ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.