summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docker-compose.yml2
-rwxr-xr-xinit2
-rwxr-xr-xrun4
-rw-r--r--sudo-git2
4 files changed, 6 insertions, 4 deletions
diff --git a/docker-compose.yml b/docker-compose.yml
index 6327962..2ccd530 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -11,7 +11,7 @@ services:
- "--users"
- pass,yolo
- "--repos"
- - pass:pass
+ - pass:pass,yolo:yolo
volumes:
- ./keys:/var/keys
- ./repos:/srv/repos
diff --git a/init b/init
index 430acc8..3802633 100755
--- a/init
+++ b/init
@@ -35,7 +35,7 @@ for repoConfig in (string split ',' $_flag_r)
# write user as allowed into permission file
for user in $parsedConfig[2..]
- echo "$repo:$user" >> /srv/repos/permissions
+ echo "$repoDir:$user" >> /srv/repos/permissions
end
# setup repo dir
diff --git a/run b/run
index 01751a7..061b5a3 100755
--- a/run
+++ b/run
@@ -2,7 +2,9 @@
# echo check for permissions
set -l USER (whoami)
-#cat /srv/repos/permission | grep -E "^
+set matcher (string match -r -g "^.*'(.*)'\$" "$argv")
+cat /srv/repos/permissions | grep -q -E "^$matcher[1]:$USER"
+or exit 1;
# run command
/usr/bin/sudo -u git /usr/bin/git-shell -c "$argv"
diff --git a/sudo-git b/sudo-git
index 6a5fc22..cd2f413 100644
--- a/sudo-git
+++ b/sudo-git
@@ -1,2 +1,2 @@
Defaults:pass !requiretty
-pass ALL=(git) NOPASSWD: /usr/bin/git-shell
+ALL ALL=(git) NOPASSWD: /usr/bin/git-shell