Различия в поведении разрешений жесткой ссылки в CentOS 6 и CentOS 7

Существует одна вещь, которая смущает меня о Вашем вопросе. Монетный двор основан на Ubuntu, которая в свою очередь основана на Debian. Почему Вы смотрите на ошибки Redhat затем?

Если Вы хотите соединиться как гость, сказать mount таким образом путем передачи опции guest, т.е. mount -o guest .... Иначе это предположит, что учетные данные необходимы.

Если абсолютно необходимо дать пароль на командной строке, имейте в виду для выхода из любых специальных символов такой как \ или $, потому что иначе Вы заканчиваете пароль, это отличается от того, что ожидает сервер.


Однако я не могу рекомендовать использовать подход, представленный в другом ответе по единственной причине: fstab обычно читаемо миром. Поэтому Вы пропустили бы свои учетные данные. Лучший метод должен использовать следующий метод:

  1. в fstab добавьте строку, которая содержит credentials=/etc/share-credentials.txt в части опций. Например. //server/share /mnt/point cifs iocharset=utf8,rw,credentials=/etc/share-credentials.txt,file_mode=0660,dir_mode=0770 0 0
  2. создайте файл для учетных данных как это: touch /etc/share-credentials.txt && chmod u=rw,g=r,o= /etc/share-credentials.txt и затем отредактируйте его.
  3. потребности файла password и username для доли.

Формат для файла учетных данных похож на это:

username=johndoe
password=sekrit
domain=foobar

domain значение является дополнительным.

8
13.06.2015, 04:26
1 ответ

Я раскрутил несколько свежих CentOS 6 и 7 vm's и смог воссоздать точное поведение, которое вы показывали. После некоторых раскопок выяснилось, что на самом деле это изменение в ядре относительно поведения по умолчанию по отношению к жестким и мягким ссылкам в целях безопасности. Следующие страницы указали мне правильное направление:

http://kernel.opensuse.org/cgit/kernel/commit/?id=561ec64ae67ef25cac8d72bb9c4bfc955edfd415

http://kernel.opensuse.org/cgit/kernel/commit/?id=800179c9b8a1

Если вы сделаете мир файлов доступным для записи, ваш пользователь-администратор сможет создать жесткую ссылку.

Для возврата к поведению CentOS 6 в масштабе всей системы были добавлены новые параметры ядра. Установите в файле /etc/sysctl.conf:

fs.protected_hardlinks = 0
fs.protected_symlinks = 0

затем запустите

sysctl -p

Что касается того, почему ваша программа предпочитает использовать ссылки вместо копирования файлов, зачем создавать точную копию файла, если вы можете просто создать запись, указывающую на исходные блоки? Это экономит дисковое пространство, а операция менее затратная с точки зрения процессора и ввода-вывода. Новая жесткая ссылка - это тот же самый файл, только с разными метаданными/входами. Если вы удалите исходный файл после создания жесткой ссылки, это не повлияет на ссылку. Файл "удаляется" только после удаления всех ссылок.

5
27.01.2020, 20:13

Теги

Похожие вопросы