Compare commits
No commits in common. "8ca44dfab35cdeaf7ad3b69438c8256fb5f3431c" and "5dff492663719ac687e682db5010fe360ad533a6" have entirely different histories.
8ca44dfab3
...
5dff492663
18
Makefile
18
Makefile
@ -65,7 +65,7 @@ endif
|
|||||||
|
|
||||||
default: $(TARGETS)
|
default: $(TARGETS)
|
||||||
|
|
||||||
.PHONY: clean icfs_test clean-icfs clean-icfs_dialogue install uninstall
|
.PHONY: clean icfs_test clean-icfs clean-icfs_dialogue
|
||||||
|
|
||||||
$(BUILD_DIR)/icfs_dialogue:
|
$(BUILD_DIR)/icfs_dialogue:
|
||||||
make -C $(SOURCES_DIR)/gui TEST=$(TEST) DEBUG=$(shell realpath $(DEBUG)) SOURCES_DIR=$(shell realpath $(SOURCES_DIR)/gui) BUILD_DIR=$(shell realpath $(BUILD_DIR)) TESTS_DIR=$(shell realpath $(TESTS_DIR))
|
make -C $(SOURCES_DIR)/gui TEST=$(TEST) DEBUG=$(shell realpath $(DEBUG)) SOURCES_DIR=$(shell realpath $(SOURCES_DIR)/gui) BUILD_DIR=$(shell realpath $(BUILD_DIR)) TESTS_DIR=$(shell realpath $(TESTS_DIR))
|
||||||
@ -113,19 +113,3 @@ clean-icfs:
|
|||||||
|
|
||||||
clean-icfs_dialogue:
|
clean-icfs_dialogue:
|
||||||
make -C $(SOURCES_DIR)/gui clean SOURCES_DIR=$(shell realpath $(SOURCES_DIR)/gui) BUILD_DIR=$(shell realpath $(BUILD_DIR)) TESTS_DIR=$(shell realpath $(TESTS_DIR))
|
make -C $(SOURCES_DIR)/gui clean SOURCES_DIR=$(shell realpath $(SOURCES_DIR)/gui) BUILD_DIR=$(shell realpath $(BUILD_DIR)) TESTS_DIR=$(shell realpath $(TESTS_DIR))
|
||||||
|
|
||||||
install: $(BUILD_DIR)/icfs $(BUILD_DIR)/icfs_dialogue
|
|
||||||
@echo "Install script needs superuser permission to:"
|
|
||||||
@printf "\t1. Move executables to /usr/bin.\n"
|
|
||||||
@printf "\t2. Create \"icfs\" user.\n"
|
|
||||||
@printf "\t3. Set the setuid bit of icfs executable.\n"
|
|
||||||
sudo cp $(BUILD_DIR)/icfs /usr/bin/icfs && sudo cp $(BUILD_DIR)/icfs_dialogue /usr/bin/icfs_dialogue
|
|
||||||
id -u icfs &>/dev/null || sudo useradd --system --user-group icfs
|
|
||||||
sudo chown icfs: /usr/bin/icfs && sudo chmod 4777 /usr/bin/icfs
|
|
||||||
@read -p "Create /etc/icfs directory for permission databases [y/N]: " permd; if [[ $$permd == "y" ]]; then echo "sudo mkdir /etc/icfs && sudo chown :icfs /etc/icfs && sudo chmod g+rw,o= /etc/icfs;"; sudo mkdir /etc/icfs && sudo chown icfs:icfs /etc/icfs && sudo chmod g+rw,o= /etc/icfs; fi
|
|
||||||
|
|
||||||
uninstall:
|
|
||||||
@echo "Install script needs superuser permission to remove executables in /usr/bin"
|
|
||||||
sudo rm -f /usr/bin/icfs /usr/bin/icfs_dialogue
|
|
||||||
@read -p "Remove /etc/icfs directory [y/N]: " permd; if [[ $$permd == "y" ]]; then echo "sudo rm -rf /etc/icfs"; sudo rm -rf /etc/icfs; fi
|
|
||||||
|
|
||||||
|
@ -244,15 +244,9 @@ int interactive_access(const char *filename, struct process_info proc_info,
|
|||||||
// the user might specify a different file in the dialogue, so we need to
|
// the user might specify a different file in the dialogue, so we need to
|
||||||
// check if it is valid
|
// check if it is valid
|
||||||
|
|
||||||
while (
|
while (source_access(response.filename, F_OK)) {
|
||||||
source_access(response.filename, F_OK) ||
|
|
||||||
!(strncmp(response.filename, filename, strlen(response.filename)) == 0 &&
|
|
||||||
((strlen(response.filename) < strlen(filename) &&
|
|
||||||
response.filename[strlen(response.filename) - 1] == '/') ||
|
|
||||||
(strlen(response.filename) == strlen(filename))))) {
|
|
||||||
// if it is invalid, just ask again.
|
// if it is invalid, just ask again.
|
||||||
fprintf(stderr,
|
fprintf(stderr, "[ICFS] Filename returned by zenty wasn't correct: %s\n",
|
||||||
"[ICFS] Filename returned by access dialogue wasn't correct: %s\n",
|
|
||||||
response.filename);
|
response.filename);
|
||||||
free(response.filename);
|
free(response.filename);
|
||||||
response = ask_access(filename, proc_info);
|
response = ask_access(filename, proc_info);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user