Согласно ошибке:
./test.sh: 3: ./test.sh: [[: not found
Ваш / bin / sh
не является bash
, а [[
зависит от bash. Используйте одиночные скобки [
или test
).
А также используйте -ne
для числовых условных выражений. ! =
будет работать в вашем конкретном случае, но это плохая практика.
Как пользователь root, вы можете соединить сокет с помощью:
socat UNIX-LISTEN:/var/run/authsocket.sock,umask=077,user=web,fork "UNIX:$SSH_AUTH_SOCK"
В Linux это предотвратит доступ других пользователей connect()
к этому сокету.
В Linux у вас может возникнуть соблазн установить ACL для сокета (setfacl user:$user:w $SSH_AUTH_SOCK
), но это не сработает, потому что клиент OpenSSH проверяет EUID сокета и разрешает доступ только владельцу и пользователю root.