2013-04-23 4 views
1

Я пишу скрипт, который содержит команду smbget -u user -p password smb://host/share/file. Есть ли способ скрыть параметр пароля в этом скрипте? Скрипт будет использоваться на компьютере, который используется несколькими пользователями. Я хочу дать им возможность загрузить файл, не показывая мой пароль.Как скрыть пароль в скрипте bash?

+4

no. в лучшем случае вы можете запутать его, но поскольку это всего лишь сценарий, кто-то всегда может просто «echo $ password». Невозможно безопасно предоставить ваш пароль кому-либо через сценарий bash, который они не могут подорвать, чтобы получить PW. Если каждый получает доступ к этому файлу, почему бы просто не сделать этот ресурс доступным только для чтения без пароля? –

ответ

3

Комментарий от Марка является правильным. Вы можете обойти эту проблему, используя mount.cifs (возможно, используя AutoFS, если требуется) и воспользовавшись опцией credentials во время установки - эта опция позволяет вам хранить пароль в недоступном для пользователя месте.

mount.cifs //some/server /mnt/somewhere -o credentials=/root/credentials_file ... 

Ваш сценарий может установить это место и получить файл для пользователя (или просто дать пользователям доступ к местоположению). Вам нужно будет иметь соответствующую запись в вашем файле /etc/fstab или настроить с помощью AutoFS, чтобы он работал с вашим скриптом.

Альтернативой было бы написать сценарий, используя что-то, что может быть скомпилировано - оно небезопасно по ряду других причин, но может соответствовать вашему счету.

Смежные вопросы