33 Commits

Author SHA1 Message Date
48342b0d5f
Updated sourcefs header 2025-05-01 16:16:24 +02:00
31b70b6069
Added mountpoint functions to sourcefs 2025-05-01 16:16:09 +02:00
07cb76f425
Updated the dialogue 2025-05-01 16:15:00 +02:00
747077f365
Update Makefile for the zenity clone 2025-05-01 16:13:31 +02:00
ccb449ae57
Added a new dialogue 2025-04-28 10:11:50 +02:00
c4ef955ff1
Added a cleaner way of allocating the zenity command. 2025-04-15 19:02:36 +02:00
3157940c0b
add a missing header 2025-04-15 18:58:18 +02:00
92378c1cde
add exerimental deny flag in the tables
For now, perm table does not set the thrid parameter to anything useful
2025-04-15 18:57:57 +02:00
BritishTeapot
55fb5c54c6
Improved code readability 2025-04-14 16:46:06 +02:00
BritishTeapot
402a5d109f
Fixed incorrect executable path problem.
Previously, process name was grabbed from `/proc/pid/cmdline`. This was
revealed to be faulty, since the path to the executable might be
relative, and thus would change the result depending on how the program
was called. Also, it made executable renaming a viable bypass of the
entire access control.

I still don't fully undestand how I managed to not think of this before
:)
2025-04-12 18:44:20 +02:00
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
BritishTeapot
07e4ce3eb4 Added missing license headers 2025-04-01 19:56:10 +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
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
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
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
2e21ae7b18 Deleted a useless file. 2025-03-18 16:50:53 +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
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
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
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
01cdf4094e Changed NULL to 0 in flags fields. 2025-02-11 12:09:28 +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