Samba Print $ Share не позволит загрузить драйвер загрузки из машины Windows

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

Например, проверьте - флаг одной файловой системы для rm . Вероятно, вы не захотите удалять все файлы в любых файловых системах, смонтированных в mydir ... поэтому вам придется включить этот флаг (который, кстати, не имеет аббревиатуры).

А как насчет привязных креплений? (См. man mount и найдите bind .) Технически это будут файлы в одной файловой системе ... как rm -rf их обработает? Удалит ли он их все? Вероятно, это не то, что вы хотели, но чтобы быть уверенным, вам придется изучить это и протестировать поведение rm по отношению к привязанным креплениям. Вероятно, есть много других крайних случаев, о которых я не думал.

Все эти проблемы возникают из-за того, что вы на самом деле не хотите «удалять каталог и его содержимое»; на самом деле вы хотите, чтобы имел пустой каталог для работы.

Здесь есть общий принцип: когда вы указываете что-то другое , отличное от того, что вы конкретно хотите, потому что вы думаете, что это путь к получению того, что вы хотите, вы обычно вносите ненужную сложность. Что нужно сделать, это найти, как указать то, что вы хотите , а затем указать это явно. *


Лучшее решение, как Джефф Шаллер уже указал в комментариях, - использовать mktemp , который собственно и предназначен для этой цели. В частности, из man mktemp :

Create a temporary file or directory, safely, and print its name.

Простейшее использование mktemp для создания каталога будет выглядеть так:

mydir="$(mktemp -d)"

Затем вы можете скопировать в него файл следующим образом:

cp somefile "$mydir/"

В конце вашего скрипта, когда вы закончите с каталогом, вы можете безопасно удалить его (и все, что вы в него поместили), используя:

rm -rf "$mydir"

* Другой пример этот принцип заключается в использовании команд sed для обработки файлов на основе полей или столбцов. Возможно, вы сможете это сделать ... но вы можете указать именно то, что вы хотите, используя awk , и с гораздо меньшей сложностью.

0
09.11.2018, 00:59
2 ответа

У меня была такая же проблема, и это оказалось одним из драйверов. С другой версией заработало. Хотя мне не удалось войти в настройки принтера из управления печатью окон, чтобы установить тип печати по умолчанию и двустороннюю -

0
28.01.2020, 02:41

Вы написали с ошибкой wirteable = yes, должно быть writeable = yes, возможно, это могло бы исправить это. Но это дикая догадка, я просто случайно наткнулся.

Кроме того, testparm /etc/samba/smb.conf— ваш друг, когда вам нужно проверить наличие несоответствий в файле smb.conf.

1
28.01.2020, 02:41

Теги

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