121 Commits

Author SHA1 Message Date
BritishTeapot
16b8d77fb9 Improved code readability and added database file argument. 2025-04-07 19:38:33 +02:00
BritishTeapot
aea6e94ad7 Fixed incorrect database creation flags 2025-04-02 18:56:31 +02:00
BritishTeapot
52fcb4d4e3 Fixed an arbitrary return value in temp permissions init 2025-04-02 18:49:14 +02:00
badbf2ff98 Merge pull request 'setuid' (#7) from setuid into main
Reviewed-on: #7
2025-04-01 19:57:01 +02:00
BritishTeapot
07e4ce3eb4 Added missing license headers 2025-04-01 19:56:10 +02:00
BritishTeapot
cf2b7a280a Added a test for the database protection feature. 2025-04-01 19:52:37 +02:00
BritishTeapot
4c8092378b Added database protection with setuid.
Added the initial support for the database protection with the setuid
mechanism. In the beginning the program creates(or opens) the database
as a special user, and then switches to the real uid and functions
normally.
2025-04-01 19:34:15 +02:00
291ad62897 Merge pull request 'creation_permissions' (#6) from creation_permissions into main
Reviewed-on: #6
2025-03-31 14:37:25 +02:00
BritishTeapot
40ca81d744 Updated header function description for interactive_access 2025-03-31 14:36:26 +02:00
BritishTeapot
d4e86c8620 Reorgised the code 2025-03-31 14:33:43 +02:00
BritishTeapot
845c264989 Removed unnecessary include 2025-03-31 13:32:10 +02:00
BritishTeapot
57091bf0ce Made create to grant permissions automatically.
Creating files grants permanent permissions to them now. This makes
sense because if a program creates a new file, then it clearly can't
steal any data. This is particularly useful for programs which open an
obscene amount of auxilary files (e.g. neovim with a huge amount of
plugins).
2025-03-30 19:48:11 +02:00
BritishTeapot
62f3e5bde9 Added the test permanent permissions table to gitignore 2025-03-30 19:09:02 +02:00
BritishTeapot
608943d685 Added new permanent permissions tests. 2025-03-30 19:07:32 +02:00
BritishTeapot
7e111b16b7 Added permanent permissions
Finally implemented the permanent permission tables using sqlite3. For
now, performance wasn't a consideration. There are a lot of
optimizations that could be made, like having prepared queries. The code
remains fairly untested.
2025-03-30 19:06:57 +02:00
BritishTeapot
4ce97555e4 Fixed a testing bug
The script was correctly opening the `truth` file by piping `echo` to
it, but then it tried to deny another operation on it. But since pipes
are opened by the script process, the permission was given to the
script. And since the permissions are preserved for the entire runtime
of a process, and child processes inherit permissions of their parents,
any command executed later would also have the necessary permissions to
open `truth` (which was the case for the second operation). Now the
second operation is performed on a different file.
2025-03-24 17:17:33 +01:00
BritishTeapot
da37376fde Added permission checks for chmod, link, rename and chown
Those clearly need to ask for permissions.
2025-03-24 17:11:01 +01:00
BritishTeapot
6342de0dd3 Added tests to Makefile 2025-03-24 16:28:56 +01:00
BritishTeapot
2e21ae7b18 Deleted a useless file. 2025-03-18 16:50:53 +01:00
2d76dc6596 Merge pull request 'Temp_permission_table' (#5) from Temp_permission_table into main
Reviewed-on: #5
2025-03-18 15:47:08 +01:00
BritishTeapot
b705228685 Made temporary process table work!
Temprorary permissions table now works! It needs a better way for
cleaning though.
2025-03-18 15:45:32 +01:00
BritishTeapot
fe4b8801c0 Moved permission table logic to a separate file 2025-03-18 14:02:42 +01:00
BritishTeapot
e1846440bc Merge branch 'main' into Temp_permission_table 2025-03-18 14:00:57 +01:00
BritishTeapot
47a8845013 Wrote more tests 2025-03-18 13:58:02 +01:00
BritishTeapot
b6ce683364 WIP: Added the initial process table implementation.
Wrote a basic process table implementation with CC's vectors and hash
maps. So far, it looks like it does not really work.
2025-03-18 10:07:45 +01:00
BritishTeapot
70e81d64c1 Added the CC (Convenient Containers) library.
Added the CC library for vectors and hash maps.
2025-03-18 10:05:12 +01:00
BritishTeapot
67a148c7aa Fixed inverted access control permissions bug.
Fixed an (admitedly quite silly) bug that caused the access control
descisions to be inverted.
2025-03-18 10:03:32 +01:00
BritishTeapot
c59123330f Updated .gitignore 2025-03-18 09:55:20 +01:00
730d6bc27d Merge pull request 'Testing' (#4) from Testing into main
Reviewed-on: #4
2025-03-18 09:53:25 +01:00
BritishTeapot
66fd9ed582 Updated .gitignore to exclude test remnants. 2025-03-18 09:49:30 +01:00
BritishTeapot
64abb1ed52 Added test scrpt and a mockup of zenity 2025-03-18 09:48:05 +01:00
BritishTeapot
a65d37f3bc Added testing script
Added the `test/test.bash` script that simulates user input with zenity.
Depends on `xdotool` (couldn't make `ydotool` to work)
2025-03-17 11:59:59 +01:00
3b69fd43e3 Updated README.md with recent build instructions 2025-03-17 11:11:01 +01:00
d292abbba5 Updated Makefile with pkg-config and a test target.
Makefile now gets the necessary `cflags` and `libs` compiler arguments
from `pkg-config` which increases portability and makes adding new
dependencies easier. Also added `TEST` flag, to have automated testing
in the future.
2025-03-17 11:02:07 +01:00
BritishTeapot
0cc9140aa3 Skeleton for the process tables implementation
Wrote a skeleton for the future process table implemntation. Aslo
slightly edited the ui-socket interface.
2025-03-17 10:54:01 +01:00
BritishTeapot
2fcbf500f1 Updated .gitignore 2025-03-17 10:48:59 +01:00
BritishTeapot
d7c20a5d5f Added proper license headers 2025-03-10 18:09:05 +01:00
BritishTeapot
64289b2786 Added the "Allow this time." option.
Now the user can choose the "Allow this time." option when prompted.
`ask_access` will return 2 if this option is selected. So far, only the
GUI for this feature is implemented.
2025-03-10 18:01:04 +01:00
BritishTeapot
13830ead87 Added .clang-tidy to .gitignore 2025-03-10 17:55:31 +01:00
BritishTeapot
26dcb92a6b Changed LICENSE to GPLv2
I didn't notice this at first, but the FUSE example was licensed under
GPLv2-only, not v3.
2025-03-10 17:53:47 +01:00
BritishTeapot
01cdf4094e Changed NULL to 0 in flags fields. 2025-02-11 12:09:28 +01:00
BritishTeapot
71cc127a32 Updated README.md with usage and build instructions 2025-02-10 12:02:42 +01:00
5f5b7ffda6 Separated main and operations for testing 2025-02-10 11:16:42 +01:00
93588036aa Implemented GUI with zenity
Now the program is completely functional and is using zenity dialogues.
`sources` directory was renamed to `src`. UI related stuff was moved to
`src/gui/ui`.
2025-02-07 12:42:51 +01:00
81a955888e Updated Makefile 2025-02-07 12:38:36 +01:00
BritishTeapot
8f8841c7d9 Added start window description 2025-02-03 18:13:34 +01:00
BritishTeapot
1fa6c306db Added Cambalache gui file 2025-02-03 18:12:10 +01:00
e0b69cfea1 Improved ui socket and made open and create send requests. 2024-12-25 17:07:52 +01:00
3cbe520916 Edited Makefile to compite ui socket. 2024-12-25 17:06:56 +01:00
e2014f03f1 Basic socket communication 2024-12-25 11:00:35 +01:00