/dev/video 권한 Arch Linux(Remmina는 FreeRDP를 사용함)

/dev/video 권한 Arch Linux(Remmina는 FreeRDP를 사용함)

Remmina(Linux의 FreeRDP)를 통해 USB를 RDP 세션으로 리디렉션하려고 합니다.

Remmina를 루트로 실행하면 USB 카메라에 대한 액세스가 제대로 작동하지만 분명한 이유로 이는 이상적인 시나리오가 아닙니다.

Remmina를 일반 사용자로 실행할 때 이 장치에 대한 일반 사용자 접근을 허용해야 합니다. 그래서 다음을 시도했습니다.

  • 내 사용자를 video그룹에 추가하고 로그아웃/로그인하세요.
  • 좋은 측정을 위해 , 의 권한을 /dev/video0777로 변경한 다음 거기에서 다시 되돌립니다.

이전 권한은 다음과 같습니다 /dev/video0.

$ ls -a -l /dev/video0
crw-rw----+ 1 root video 81, 0 Jul 25 08:36 /dev/video0

그런 다음 나는 다음을 실행했습니다.

$ sudo chmod 777 /dev/video0

위 명령을 실행한 후 권한을 다시 부여하십시오.

$ ls -a -l /dev/video0
crwxrwxrwx+ 1 root video 81, 0 Jul 25 08:36 /dev/video0

권한을 변경하기 전에 사용자를 video그룹에 추가하고 로그아웃/로그인하기만 하면 됩니다.

lsusb내 장치와 관련된 출력:

Bus 003 Device 003: ID 046d:0892 Logitech, Inc. C920 HD Pro Webcam

사용된 옵션 Remmina:

USB device Redirection: id:046d:0892,addr:003:003

Remmina의 오류 출력:

[08:57:34:285] [1821:1848] [INFO][com.freerdp.channels.urbdrc.client] - VID: 0x046D, PID: 0x0892
[08:57:34:285] [1821:1848] [ERROR][com.freerdp.channels.urbdrc.client] - libusb_open: error LIBUSB_ERROR_ACCESS[-3]
[08:57:34:285] [1821:1848] [ERROR][com.freerdp.channels.urbdrc.client] - libusb_open [b=0x03,p=0x06,a=0x03,VID=0x046D,PID=0x0892]: error LIBUSB_ERROR_ACCESS[-3]
[08:57:34:285] [1821:1848] [ERROR][com.freerdp.channels.urbdrc.client] - libusb_open: error LIBUSB_ERROR_ACCESS[-3]
[08:57:34:285] [1821:1848] [ERROR][com.freerdp.channels.urbdrc.client] - libusb_open [b=0x03,p=0x06,a=0x03,VID=0x046D,PID=0x0892]: error LIBUSB_ERROR_ACCESS[-3]

편집하다:

출력:$ udevadm info -a /dev/video0


  looking at device '/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/video4linux/video0':
    KERNEL=="video0"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{dev_debug}=="0"
    ATTR{index}=="0"
    ATTR{name}=="HD Pro Webcam C920"
    ATTR{power/control}=="auto"
    ATTR{power/runtime_active_time}=="0"
    ATTR{power/runtime_status}=="unsupported"
    ATTR{power/runtime_suspended_time}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0':
    KERNELS=="3-6:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="uvcvideo"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}=="0e"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="00"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{iad_bFirstInterface}=="00"
    ATTRS{iad_bFunctionClass}=="0e"
    ATTRS{iad_bFunctionProtocol}=="00"
    ATTRS{iad_bFunctionSubClass}=="03"
    ATTRS{iad_bInterfaceCount}=="02"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-6':
    KERNELS=="3-6"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="ef"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="02"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="500mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 4"
    ATTRS{bcdDevice}=="0019"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="3"
    ATTRS{configuration}==""
    ATTRS{devnum}=="3"
    ATTRS{devpath}=="6"
    ATTRS{idProduct}=="0892"
    ATTRS{idVendor}=="046d"
    ATTRS{ltm_capable}=="no"
    ATTRS{maxchild}=="0"
    ATTRS{power/active_duration}=="1610000"
    ATTRS{power/autosuspend}=="2"
    ATTRS{power/autosuspend_delay_ms}=="2000"
    ATTRS{power/connected_duration}=="2594730"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/persist}=="1"
    ATTRS{power/runtime_active_time}=="1610678"
    ATTRS{power/runtime_status}=="suspended"
    ATTRS{power/runtime_suspended_time}=="983716"
    ATTRS{product}=="HD Pro Webcam C920"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="66BA81DF"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="1561744"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3':
    KERNELS=="usb3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0510"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="3"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0002"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 5.10.52-1-lts xhci-hcd"
    ATTRS{maxchild}=="15"
    ATTRS{power/active_duration}=="2595210"
    ATTRS{power/autosuspend}=="0"
    ATTRS{power/autosuspend_delay_ms}=="0"
    ATTRS{power/connected_duration}=="2595210"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/runtime_active_time}=="2595211"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="xHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="0000:00:14.0"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="147"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x8c31"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="27"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{local_cpus}=="f"
    ATTRS{msi_bus}=="1"
    ATTRS{msi_irqs/27}=="msi"
    ATTRS{numa_node}=="-1"
    ATTRS{power/control}=="on"
    ATTRS{power/runtime_active_time}=="2596888"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/wakeup}=="enabled"
    ATTRS{power/wakeup_abort_count}=="0"
    ATTRS{power/wakeup_active}=="0"
    ATTRS{power/wakeup_active_count}=="0"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="0"
    ATTRS{power/wakeup_last_time_ms}=="0"
    ATTRS{power/wakeup_max_time_ms}=="0"
    ATTRS{power/wakeup_total_time_ms}=="0"
    ATTRS{revision}=="0x05"
    ATTRS{subsystem_device}=="0x220e"
    ATTRS{subsystem_vendor}=="0x17aa"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"


ベストアンサー1

대답은 버스의 장치에 대한 액세스를 허용하는 것입니다.

내 장치가 Device 003켜져 있습니다 Bus 003:

$ lsusb
Bus 003 Device 003: ID 046d:0892 Logitech, Inc. C920 HD Pro Webcam

그래서 파일에 대한 권한을 설정했습니다 /dev/bus/usb/003/003.

$ sudo chmod a+rw /dev/bus/usb/003/*

이제 일반 사용자는 해당 버스의 모든 장치에 액세스할 수 있습니다(해당 장치만 원할 경우 예를 들어.../usb/003/003을 지정합니다).

편집: 이것은 임시 해결책이며 지속성을 달성하려면 udev 규칙을 작성해야 한다는 점에 유의해야 합니다(지속 가능하게 규칙을 생성하면 추가로 업데이트될 것입니다).

おすすめ記事