Updated readme
This commit is contained in:
parent
22cb958b4f
commit
2f4f1a0a56
32
README.md
32
README.md
@ -32,7 +32,9 @@ Traditional access control mechanisms in operating systems allow the same level
|
|||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
```
|
```
|
||||||
icfs <FUSE arguments> [target directory] [path to permanent permission database]
|
Usage: icfs <FUSE arguments> [target directory] [path to the permanent permissions database] <ICFS arguments>
|
||||||
|
--no-grant-on-create - do not give any access permissions on file creation(incompatible with --perm-on-create)
|
||||||
|
--perm-on-create - automatically give permanent access permission to files a process creates (incompatible with --no-grant-on-create)
|
||||||
```
|
```
|
||||||
|
|
||||||
The filesystem will be mounted over the target directory, and ask user permission every time a file in that directory is opened. We highly recommend adding `-o default_permissions` to increase performance and add an additional security layer. If you have installed icfs along with `/etc/icfs` folder, you can create your permanent permission databases in this folder (you might want to do this, if your home folder does not have the "execute" permission for other users).
|
The filesystem will be mounted over the target directory, and ask user permission every time a file in that directory is opened. We highly recommend adding `-o default_permissions` to increase performance and add an additional security layer. If you have installed icfs along with `/etc/icfs` folder, you can create your permanent permission databases in this folder (you might want to do this, if your home folder does not have the "execute" permission for other users).
|
||||||
@ -47,6 +49,30 @@ env PATH="$(realpath ./build):$PATH" build/icfs <FUSE arguments> [target directo
|
|||||||
|
|
||||||
The `env PATH="$(realpath ./build):$PATH"` adds the access dialogue program to PATH, allowing ICFS to call it seamlessly.
|
The `env PATH="$(realpath ./build):$PATH"` adds the access dialogue program to PATH, allowing ICFS to call it seamlessly.
|
||||||
|
|
||||||
|
#### Running tests
|
||||||
|
|
||||||
|
ICFS includes a testing script in the `test` directory.
|
||||||
|
|
||||||
|
You can run it **from `test` directory** by running:
|
||||||
|
|
||||||
|
```
|
||||||
|
./test.bash
|
||||||
|
```
|
||||||
|
|
||||||
|
All testing artifacts will be available in the appropriate folders after run. To test setuid capabilities too (**from `test` directory!!!**):
|
||||||
|
|
||||||
|
```
|
||||||
|
./test.bash --setuid
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also test performance by adding `--performance` (**from `test` directory!!!**):
|
||||||
|
|
||||||
|
```
|
||||||
|
./test.bash --performance
|
||||||
|
```
|
||||||
|
|
||||||
|
***Important:*** **flags cannot be combined together (e.g. you can't add `--performance` and `--setuid`)**
|
||||||
|
|
||||||
## Docs
|
## Docs
|
||||||
|
|
||||||
- [Initial idea and motivation](./docs/bc-thesis-idea.md)
|
- [Initial idea and motivation](./docs/bc-thesis-idea.md)
|
||||||
@ -55,6 +81,6 @@ The `env PATH="$(realpath ./build):$PATH"` adds the access dialogue program to P
|
|||||||
|
|
||||||
## Credit
|
## Credit
|
||||||
|
|
||||||
_Student:_ Fedir Kovalov
|
*Student:* Fedir Kovalov
|
||||||
|
|
||||||
_Supervisor:_ RNDr. Jaroslav Janáček, PhD.
|
*Supervisor:* RNDr. Jaroslav Janáček, PhD.
|
||||||
|
18
src/main.c
18
src/main.c
@ -31,27 +31,27 @@ int main(int argc, char *argv[]) {
|
|||||||
if (argc < 3) {
|
if (argc < 3) {
|
||||||
fprintf(stderr, "Usage: icfs <FUSE arguments> [target directory] [path to "
|
fprintf(stderr, "Usage: icfs <FUSE arguments> [target directory] [path to "
|
||||||
"the permanent permissions database] <ICFS "
|
"the permanent permissions database] <ICFS "
|
||||||
"arguments>\n\t--no-perm-on-create - do not give any "
|
"arguments>\n\t--no-grant-on-create - do not give any "
|
||||||
"access permissions on file creation"
|
"access permissions on file creation"
|
||||||
"(incompatible with --temp-on-create)\n\t--perm-on-create "
|
"(incompatible with --perm-on-create)\n\t--perm-on-create "
|
||||||
"- automatically give permanent access permission to files "
|
"- automatically give permanent access permission to files "
|
||||||
"a process creates "
|
"a process creates "
|
||||||
"(incompatible with --no-perm-on-create)\n");
|
"(incompatible with --no-grant-on-create)\n");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((0 == strcmp(argv[argc - 1], "--no-perm-on-create") &&
|
if ((0 == strcmp(argv[argc - 1], "--no-grant-on-create") &&
|
||||||
0 == strcmp(argv[argc - 2], "--temp-on-create")) ||
|
0 == strcmp(argv[argc - 2], "--temp-on-create")) ||
|
||||||
(0 == strcmp(argv[argc - 2], "--no-perm-on-create") &&
|
(0 == strcmp(argv[argc - 2], "--no-grant-on-create") &&
|
||||||
0 == strcmp(argv[argc - 1], "--temp-on-create"))) {
|
0 == strcmp(argv[argc - 1], "--temp-on-create"))) {
|
||||||
fprintf(stderr, "Usage: icfs <FUSE arguments> [target directory] [path to "
|
fprintf(stderr, "Usage: icfs <FUSE arguments> [target directory] [path to "
|
||||||
"the permanent permissions database] <ICFS "
|
"the permanent permissions database] <ICFS "
|
||||||
"arguments>\n\t--no-perm-on-create - do not give any "
|
"arguments>\n\t--no-grant-on-create - do not give any "
|
||||||
"access permissions on file creation"
|
"access permissions on file creation"
|
||||||
"(incompatible with --temp-on-create)\n\t--perm-on-create "
|
"(incompatible with --perm-on-create)\n\t--perm-on-create "
|
||||||
"- automatically give permanent access permission to files "
|
"- automatically give permanent access permission to files "
|
||||||
"a process creates "
|
"a process creates "
|
||||||
"(incompatible with --no-perm-on-create)\n");
|
"(incompatible with --no-grant-on-create)\n");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ int main(int argc, char *argv[]) {
|
|||||||
// permissions than it's caller reqested
|
// permissions than it's caller reqested
|
||||||
umask(0);
|
umask(0);
|
||||||
|
|
||||||
if (0 == strcmp(argv[argc - 1], "--no-perm-on-create")) {
|
if (0 == strcmp(argv[argc - 1], "--no-grant-on-create")) {
|
||||||
set_auto_create_perm(0);
|
set_auto_create_perm(0);
|
||||||
argc--;
|
argc--;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user