{ "info": { "author": "Rahul Gopinath", "author_email": "rahul@gopinath.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Topic :: Security", "Topic :: System :: Filesystems" ], "description": "# safemount\n\nWe have to jump through multiple hoops in shell scripts to ensure that our\nscripts handle special characters such as space, hyphen etc. properly. A number\nof security vulnerabilities exist because of mishandling of these characters.\n\nHowever, these special characters, while important for GUI are not a necessity\nfor command line. The idea of this library is to provide a FUSE filesystem that\nmounts a given directory under a mount point such that all the special\ncharacters are URL encoded. We include `-` in the list of characters that are\nencoded. Further, we also remove `.` and `..` from the directory listing.\n\nWith this, the shell scripts can assume that none of the directory\nor file names contain special characters.\n\nThe usage is as follows:\n\n```\npython -m safemount ./mydir ./mntpoint\n```\n\nSee also:\n1. https://dwheeler.com/essays/filenames-in-shell.html\n2. https://dwheeler.com/essays/fixing-unix-linux-filenames.html\n3. https://lwn.net/Articles/325304/\n4. https://lwn.net/Articles/686789/", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/vrthra/safemount", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "safemount", "package_url": "https://pypi.org/project/safemount/", "platform": "", "project_url": "https://pypi.org/project/safemount/", "project_urls": { "Homepage": "http://github.com/vrthra/safemount" }, "release_url": "https://pypi.org/project/safemount/0.5/", "requires_dist": null, "requires_python": "", "summary": "A FUSE mount that only permits safe characters in the file names", "version": "0.5" }, "last_serial": 5873637, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "86e8d0d92a6eb9168b44ac0936f75e69", "sha256": "ba827635f188e59a5f4a8ca57e9d7b5a1b8da613d31a18792e580029d28e386d" }, "downloads": -1, "filename": "safemount-0.1.tar.gz", "has_sig": false, "md5_digest": "86e8d0d92a6eb9168b44ac0936f75e69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1508, "upload_time": "2019-09-23T11:46:02", "url": "https://files.pythonhosted.org/packages/84/41/fdfa0d5859999bf7ca203b2df05a3747b10636acfc98cd82eeda768647a3/safemount-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "01aa5a172ebae9b6f91f485fb05eaca0", "sha256": "84be0c82158579d6c0c098bd1ba04555acabb2d392fe84448985ee044ff138ba" }, "downloads": -1, "filename": "safemount-0.2.tar.gz", "has_sig": false, "md5_digest": "01aa5a172ebae9b6f91f485fb05eaca0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1624, "upload_time": "2019-09-23T11:49:52", "url": "https://files.pythonhosted.org/packages/59/ea/4c47c6e5da3540a1c3d8b12e51762dc6862b235d796716fd15381a94a151/safemount-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "f6ec190c76084a2b757efe9dc89ec86b", "sha256": "59a438e50209a2807ebf72555e9d7baec77680fd240f540655e5ddcea4f86ff1" }, "downloads": -1, "filename": "safemount-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f6ec190c76084a2b757efe9dc89ec86b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13978, "upload_time": "2019-09-23T13:13:09", "url": "https://files.pythonhosted.org/packages/93/e9/6ab4631b76fc0a62e960e9d707811396b7c5a18f27b1f46f06baf7ca2894/safemount-0.3-py3-none-any.whl" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "3887a2c37240edd55f59924ec645f9f0", "sha256": "0fd2d2da6fd5bcb4638186f77d7cd55693426f2ec46e8b995d06fa879c6dd958" }, "downloads": -1, "filename": "safemount-0.4.tar.gz", "has_sig": false, "md5_digest": "3887a2c37240edd55f59924ec645f9f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1627, "upload_time": "2019-09-23T13:16:48", "url": "https://files.pythonhosted.org/packages/d4/8a/3270631f7a5f99c9bcb6cffded4c1ee79953ffc8e574ae914f4b7b7db706/safemount-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "16e0360778a2f628b719285c3b847d72", "sha256": "4105e8285cd5b701506c89c77298073c2c8898b3716224c989487429dc47de2f" }, "downloads": -1, "filename": "safemount-0.5.tar.gz", "has_sig": false, "md5_digest": "16e0360778a2f628b719285c3b847d72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1625, "upload_time": "2019-09-23T13:26:46", "url": "https://files.pythonhosted.org/packages/9a/64/659a083233dbab1c8228e15ad4352756341b3e8a83a8944b328f23494fb7/safemount-0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "16e0360778a2f628b719285c3b847d72", "sha256": "4105e8285cd5b701506c89c77298073c2c8898b3716224c989487429dc47de2f" }, "downloads": -1, "filename": "safemount-0.5.tar.gz", "has_sig": false, "md5_digest": "16e0360778a2f628b719285c3b847d72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1625, "upload_time": "2019-09-23T13:26:46", "url": "https://files.pythonhosted.org/packages/9a/64/659a083233dbab1c8228e15ad4352756341b3e8a83a8944b328f23494fb7/safemount-0.5.tar.gz" } ] }