В POSIX процесс имеет привилегии суперпользователя, если его эффективный идентификатор пользователя равен 0.
(Некоторые системы в стиле Unix -имеют разные механизмы; например, в Linux система управления доступом по умолчанию -также учитывает возможности, и вы можете создать двоичный файл setuid, который будет работать с действующим пользователем root, но не будет иметь возможностей и, следовательно, будет бесполезен. См. справочную страницу setuid
.)
APUE описывает заданное поведениеsetuid
. Контекст задается тем, как идентификаторы пользователей устанавливаются с помощью exec
:, если исполняемый файл имеет установленный бит setuid
и его файловая система монтируется без отключения setuid
, запуск его с exec
приводит к процессу, чей эффективный пользователь является владельцем файла, а его реальный и сохраненный пользователь является вызывающим пользователем.
Если setuid
вызывается с действующим пользователем root, он заменяет все идентификаторы пользователей; в противном случае он заменяет только эффективный идентификатор. Это в конечном итоге сбивает с толку...Причина такого поведения указана в обосновании спецификаций POSIX:login
и su
, которые должны иметь возможность изменять идентификаторы пользователей безвозвратно, и единственный способ сделать это — заменить все идентификаторы.
просто подумал, что вставлю свои пять копеек. Я пытался добавить USB-принтер к своей виртуальной машине и пробовал весь маршрут команды «qemu -kvm» безрезультатно. В конце концов я просто вручную добавил запись xml в домен моей виртуальной машины xml по этой ссылке libvirt . На хост-компьютере запустите:
lsusb
Найдите строку, представляющую ваше USB-устройство.
Bus 001 Device 003: ID 03f0:1617 HP, Inc LaserJet 3015
«ID» представляет идентификатор вашего поставщика и идентификатор продукта, разделенные двоеточием. Затем просто замените поставщика вашего устройства и идентификатор продукта в коде xml ниже (, включите 0x для шестнадцатеричного )и добавьте его как элемент с -в блок «устройств» вашей виртуальной машины :
.<hostdev mode='subsystem' type='usb'>
<source startupPolicy='optional'>
<vendor id='0x03f0'/>
<product id='0x1617'/>
</source>
<boot order='2'/>
</hostdev>
Удачи и надеюсь, что это поможет. К вашему сведению, чтобы отредактировать xml-файл вашего домена, запустите:
virsh dumpxml yourdomain
, а затем
virsh edit yourdomain
Это загрузит XML-файл, который вы можете редактировать.