/usr/share/clojure
походит на общее место для помещения двоичных файлов и библиотек clojure — почему я не знаю, это кажется естественным для /usr/local/share/clojure
— так создание a site
подкаталог под этим для этих сценариев удара кажется прекрасным.
Общая точка - то, что имеет больше смысла организовывать сценарии функцией, не имеют все сценарии удара в том же месте.
Вы правы в том, что основная концепция вашего решения неверна, но я думаю, что это неверно намного раньше, чем вы подозреваете. Лучше всего не делиться учетными записями; каждый пользователь должен иметь индивидуальную учетную запись и использовать sudo
для выполнения задач, требующих других привилегий. Если вы честно должны предоставить общий доступ к одной или нескольким учетным записям, тогда разрешите своим пользователям sudo su - ACCOUNT
вместо прямого входа в систему как ACCOUNT. Например:
user { 'alice': groups => ['developer', 'deployer', 'root'] # other params... }
ssh_authorized_key { 'alice': #params }
Затем добавьте соответствующие записи в свой / etc / sudoers
(также, надеюсь, управляемый марионеткой!):
# deployer group can run the deployment script without a password.
%deployer ALL = NOPASSWD: /usr/local/bin/deploy
# developer group can run commands as 'developer'
%developer ALL = (developer) ALL
# or, if you actually *must* allow them to log in as 'developer'
%developer ALL = /usr/bin/su developer