1
2## Overview ##
3
4bindfs  -  https://bindfs.org/
5
6bindfs is a FUSE filesystem for mirroring a directory to another
7directory, similarly to `mount --bind`. The permissions of the mirrored
8directory can be altered in various ways.
9
10Some things bindfs can be used for:
11- Making a directory read-only.
12- Making all executables non-executable.
13- Sharing a directory with a list of users (or groups).
14- Modifying permission bits using rules with chmod-like syntax.
15- Changing the permissions with which files are created.
16
17Non-root users can use almost all features, but most interesting
18use-cases need `user_allow_other` to be defined in `/etc/fuse.conf`.
19
20
21## Installation ##
22
23Make sure FUSE 2.6.0 or above is installed (https://github.com/libfuse/libfuse).
24FUSE 3 is not yet supported.
25
26Download a [release](https://bindfs.org/downloads/) or clone this repository.
27
28Then compile and install as usual:
29
30    ./configure
31    make
32    make install
33
34If you want the mounts made by non-root users to be visible to other users,
35you may have to add the line `user_allow_other` to `/etc/fuse.conf`.
36
37In Linux-based OSes, you may have to add your user to the `fuse` group.
38
39
40## Usage ##
41
42See the `bindfs --help` or the man-page for instructions and examples.
43
44
45## OS X note ##
46
47The following extra options may be useful under osxfuse:
48
49    -o local,allow_other,extended_security,noappledouble
50
51See https://github.com/osxfuse/osxfuse/wiki/Mount-options for details.
52
53
54## Test suite ##
55
56[![Build Status](https://travis-ci.org/mpartel/bindfs.svg?branch=master)](https://travis-ci.org/mpartel/bindfs)
57
58Bindfs comes with a (somewhat brittle and messy) test suite.
59The test suite has two kinds of tests: those that have to be run as root and
60those that have to be run as non-root. To run all of the tests, do
61`make check` both as root and as non-root.
62
63The test suite requires Ruby 1.8.7+. If you're using [RVM](https://rvm.io/)
64then you may need to use `rvmsudo` instead of plain `sudo` to run the root
65tests.
66
67### Vagrant test runner ###
68
69There is also a set of Vagrant configs for running the test suite on a variety
70of systems. Run them with `vagrant/test.rb` (add `--help` for extra options).
71
72You can destroy all bindfs Vagrant machines (but not the downloaded images)
73with `make vagrant-clean`.
74
75
76## License ##
77
78GNU General Public License version 2 or any later version.
79See the file COPYING.
80