Монтирование fstab и cifs, возможно ли хранить информацию аутентификации за пределами fstab?

10

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

от:

//server/foo/bar /mnt/bar cifs username=user,password=pass,r 0 0

чтобы:

//server/foo/bar /mnt/bar cifs <link to permissions>,r 0 0

(или что-то аналогичное этому). Спасибо.

TJ L
источник

Ответы:

11

Из справочной страницы mount.cifs:

Полномочия = имя_файл
    указывает файл, который содержит имя пользователя и / или пароль. Формат файла:

                         Имя пользователя = значение
                         пароль = значение
   Это предпочтительнее, чем пароли в виде открытого текста в общем файле, например / etc / fstab. Обязательно защитите любой файл учетных данных должным образом.

janneb
источник
2
Обратите внимание, что расплывчатое «Обязательно защитите любой файл учетных данных должным образом». обычно означает, что вы должны сохранить файл (как root) /root/, и chmod 700это
Nate Parsons,
Мое соединение также нуждается в domain=valueчасти
vladkras
3
Я надеялся, что ситуация изменится семь лет спустя , но, к сожалению, кажется, что это все еще «лучший» ответ. И это не безопасно. Каждый человек, имеющий sudoдоступ к серверу, может читать .smbcredentials. В моем случае файл содержал бы - если бы я не заставил кого-то другого отказаться от своих - _my_ кредитов для входа в Windows. Например, те же учетные данные для единого входа, которые я использую для доступа ко всем системам в Evil Corp., включая платежную ведомость, льготы и т. Д.? Кажется чреватым опасностью. Примерно так может быть немного безопаснее: askubuntu.com/a/1081421 .
evadeflow
1
Синтаксис этого файла деликатный. Не кладите пустые строки или даже # commentsтам.
Дэвид Тонхофер
8

Используйте параметр учетных данных, например:

http://www.justlinux.com/nhf/Filesystems/Mounting_smbfs_Shares_Permanently.html

Пример с сайта:

cd
echo username=mywindowsusername > .smbpasswd
echo password=mywindowspassword >> .smbpasswd
chmod 600 .smbpasswd

Подставьте свое имя пользователя Windows и пароль в командах. Никто, кроме root, не сможет прочитать содержимое этого файла.

Как только это будет создано, вы должны изменить строку в файле / etc / fstab так, чтобы она выглядела следующим образом:

//servername/sharename /mountdirectory smbfs credentials=/home/myhomedirectory/.smbpasswd 0 0

пример из / etc / fstab:

//server/share/   /mnt/localmountpoint   cifs   credentials=/root/.creda

Пост janneb и ссылка на страницу руководства показывают, что должно присутствовать в файле учетных данных.

damorg
источник
2
Спасибо, оба ответа были полезны (я должен был прочитать manpages). Если бы я мог отметить 2 ответа как правильный ответ, я бы.
TJ L
не беспокойтесь ... как только я увидел ответ janneb, было ясно, что ответ был покрыт :)
damorg
6

Итак, я накапливаю оба ответа

  1. Создать файл, например /root/.cifs

    username=value
    password=value
    domain=value (optional)
    
  2. установить разрешение 600(rw- разрешение) для защиты ваших учетных данных

    # chmod 600 /root/.cifs
    
  3. перейти credentials=/root/.cifsк вашей команде вместо username=иpassword=

vladkras
источник
2
Дополнительный комментарий: chmodне нужен, так как, /rootнадеюсь, домашний каталог root rwx------уже есть.
Дэвид Тонхофер
У меня были проблемы с использованием только имени пользователя и пароля, когда я пытался смонтировать общую папку Windows в Red Hat Linux. У меня получилось только после добавления домена в файл учетных данных. Мне показалось, что в этом случае информация о домене очень полезна.
aldemarcalazans