FYI: Helper tool "lockdev-redirect" for redirecting /var/lock access

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I thought maybe some people here may be interested in a tool that I primarily developed for my studies where I have to use MATLAB and Simulink to program an Arduino board. Trying to access the Arduino serial port caused me trouble because of missing write access to /var/lock.

Of course it would have been easier to screw up my system security by blindly allowing access to a directory where my distributor decided that users should not write to. Instead of doing this, I decided to take this opportunity to learn something about LD_PRELOAD to redirect /var/lock access to a (newly created) directory below $XDG_RUNTIME_DIR and fine-tuned until MATLAB was happy and finally connected to my Arduino without actual write access to /var/lock.

What it does is overriding glibc functions that are commonly used for device locking mechanisms. If the accessed path is in a list of known lock file paths, then the path is rewritten to point to a directory below $XDG_RUNTIME_DIR before forwarding the call to the actual glibc function and the return value back to the caller.

For development, I used "rxtx" (Java library) and "liblockdev" (Debian device locking library) first. They are also included in my repo for testing after build. The MATLAB part (that I actually wanted to solve) was way more difficult as I don't know how device locking is implemented there. I hoped that making open source libraries work, first, may cover everything MATLAB uses, but it didn't. This required many hours of trial and error with adding random additional glibc function overrides until I finally catched the right ones and then removing unneeded overrides again as I didn't want to mess with unnecessarily many glibc functions. This also means that I probably didn't catch them all and there may still be issues there.

If you are interested in trying out my tool, you can find it here: https://github.com/M-Reimer/lockdev-redirect

Regards,

Manuel
_______________________________________________
users mailing list -- users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to users-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/users@xxxxxxxxxxxxxxxxxxxxxxx



[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux