title: USBError: [Errno 13] Access denied (insufficient permissions)
body: <p>This problem is old as the world. There are discussions and solutions available. It all boils down to update the rules file and give permissions. So I have followed the recipe. But I still have the same problem. here are screenshots showing I follow instructions.</p>
  
  <p>Versions:</p>
  
  <pre><code>Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
  usb.__version__ '1.0.2'
  </code></pre>
  
  <p>Error:</p>
  
  <pre><code>    Traceback (most recent call last):
    File "/media/psf/Home/All-Projects-on-femto/LaserLab/Software/usb_4108.py", line 19, in &lt;module&gt;
      dev.set_configuration()
    File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 869, in set_configuration
      self._ctx.managed_set_configuration(self, configuration)
    File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 102, in wrapper
      return f(self, *args, **kwargs)
    File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 147, in managed_set_configuration
      self.managed_open()
    File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 102, in wrapper
      return f(self, *args, **kwargs)
    File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 120, in managed_open
      self.handle = self.backend.open_device(self.dev)
    File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 786, in open_device
      return _DeviceHandle(dev)
    File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 643, in __init__
      _check(_lib.libusb_open(self.devid, byref(self.handle)))
    File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 595, in _check
      raise USBError(_strerror(ret), ret, _libusb_errno[ret])
  USBError: [Errno 13] Access denied (insufficient permissions)
  </code></pre>
  
  <p>Rules. file (location /etc/udev/rules.d/99-usbftdi.rules)</p>
  
  <pre><code># For FTDI FT232 &amp; FT245 USB devices with Vendor ID = 0x0403, Product ID = 0xabc
  SYSFS{idProduct}=="4108", SYSFS{idVendor}=="0683", RUN+="/sbin/modprobe -q ftdi-sio product=0x4108 vendor=0x0683"
  #SYSFS{idProduct}=="2450", SYSFS{idVendor}=="0683", RUN+="/sbin/modprobe -q ftdi-sio product=0x2450 vendor=0x0683"
  SYSFS{idVendor}=="0683", SYSFS{idProduct}=="4108", MODE="0666"
  </code></pre>
  
  <p>and strip down code:</p>
  
  <pre><code>import usb.core
  import usb.util
  dev = usb.core.find(idVendor=0x0683, idProduct=0x4108)
  dev.reset() 
  </code></pre>
  
  <p>However, it doesn't give me necessary permissions.
  My stripped down code that still produces the error:</p>
  
  <pre><code>import usb.core
  import usb.util
  dev = usb.core.find(idVendor=0x0683, idProduct=0x4108)
  dev.reset()
  </code></pre>
  
  <p>The strange thing that if I start IDLE from the terminal as superuser I get permissions (terminal: <code>sudo idle</code>).</p>