Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   Скопировать файл в сетевую папку Windows без паролей (http://forum.oszone.net/showthread.php?t=331981)

Akella2007 18-12-2017 12:15 2785165

Скопировать файл в сетевую папку Windows без паролей
 
При копировании с Win на Win всё просто:
Код:

copy d:\file1.txt \\server1\share\print1.txt
Копируем локальный файл в расшаренную папку. На целевом ПК включен беспарольный доступ.


Как такое сделать при копировании из Ubuntu 16.04 в расшаренную папку Windows с помощью sh-скрипта. Чтобы не вводить логины/пароли (ни виндовые, ни линуксовые)?
Что-то вроде
Код:

cp $HOME/print/file1.txt //server1/share/print1.txt
На Ubuntu сложнее, но почти получилось.
Код:

#!/bin/bash
mkdir -p $HOME/print
mount.cifs -o user=,password=,dir_mode=0777,file_mode=0777 //server1/share $HOME/print
umount $HOME/print

Проблема в том, что для mount.cifs нужно вводить пароль root. А нужно без паролей.

Пытаюсь изучать gvfs-mount, но вижу, что в параметрах нет папки назначения, т.е. понятно, что монтировать, но непонятно, куда монтировать.

Akella2007 18-12-2017 14:55 2785203

Вот так получилось

Код:

#!/bin/bash
gvfs-mount smb://printserver/share -u;
gvfs-mount smb://printserver/share -a;
cp $HOME/Загрузки/txt.txt /run/user/1000/gvfs/smb-share:server=printserver,share=share/print.txt;
gvfs-mount smb://printserver/share -u;


Jula0071 18-12-2017 18:07 2785241

Запись в /etc/fstab
Код:

//server1/share /mnt/backup cifs credentials=/root/.smbcredentials,iocharset=utf8,sec=ntlm 0 0
cat /root/.smbcredentials
Код:

username=login
password=password

Всё.

Akella2007 19-12-2017 10:42 2785385

Ещё раз: мне нужно без username/password.

Используя /etc/fstab я так понимаю, что это будет подключаться автоматически при старте ОС?
Так я же не просил при старте ОС. Главный ПК может быть выключен на этапе загрузки клиентского.
Мне нужно только на момент копирования файла.

Цитата:

Цитата Akella2007
Вот так получилось »

На самом деле НЕ получилось. После перезагрузки клиентского ПК при монтировании
Код:

gvfs-mount smb://printserver/share -a
получаю ошибку:
Цитата:

Ошибка получения адреса: анонимный доступ запрещен.

Jula0071 19-12-2017 11:14 2785394

Цитата:

Цитата Akella2007
Ещё раз: мне нужно без username/password. »

Цитата:

Цитата Akella2007
Ошибка получения адреса: анонимный доступ запрещен. »

Лол

Akella2007 19-12-2017 11:32 2785403

Да, лол, получается в том, что Linux не позволяет так же просто и легко скопировать файл по сети без логинов/паролей, как это сделано в Windows.

Jula0071 19-12-2017 11:46 2785409

Дело не в линуксе

Akella2007 19-12-2017 12:04 2785414

Т.е .Windows вчера не требовала пароль, а сегодня требует?

При входе в сетевую папку с винды - получается войти без пароля.
При входе в сетевую папку с линукса - НЕ получается войти без пароля.

Jula0071 19-12-2017 12:14 2785424

Цитата:

Цитата Akella2007
получается войти без пароля »

Вы когда в винду входите, пароль вводите?

Akella2007 19-12-2017 12:25 2785431

Нет. Пользователь без пароля.

Akella2007 19-12-2017 12:26 2785432

Вложений: 1
Ещё раз поясню.
У Windows есть беспарольный вход



Чтобы войти в общую папку, не нужно знать, ни пароля, ни логина.

Jula0071 19-12-2017 12:28 2785433

Ещё раз
Цитата:

Цитата Akella2007
Ошибка получения адреса: анонимный доступ запрещен. »


Akella2007 19-12-2017 12:42 2785439

Я попробовал зайти в сетевую папку с нескольких виндовых ПК: проблем нет. Проблема только с линуксом.

И по тексту ошибки не совсем понятно: сама линукс запрещает использовать анонимный доступ к удалённой папке или это винда отфутболивает?

Jula0071 19-12-2017 12:48 2785442

Цитата:

Цитата Akella2007
винда отфутболивает »

Попробуйте так:

Код:

mount -t cifs //server1/share /mnt/share
Или так

Код:

mount -t cifs //server1/share /mnt/share -o username=guest

Akella2007 19-12-2017 12:55 2785448

Я уже пробовал. Если mount использовать с параметрами "-t ..." то требуется запускать с паролем root

Jula0071 19-12-2017 12:57 2785453

Цитата:

Цитата Akella2007
то требуется запускать с паролем root »

ну другой mountpoint выберете, где не рут владелец. Тоже проблема. :)

Akella2007 19-12-2017 12:59 2785455

Я установил на андроид-смартфон программу ES-Проводник и зашёл на виндовый ПК в общую папку вообще без ввода каких-либо логинов/паролей.
Т.е. винда тут не при чем. Винда разрешает анонимный вход.

Цитата Jula0071:
где не рут владелец »
я монтирую в папку "$HOME/print", где владельцем является текущий пользователь.

Цитата:

Цитата Jula0071
ну другой mountpoint выберете, где не рут владелец. »

Ещё раз: mount выдает буквально вот такой текст ошибки, цитирую: использовать опцию "--types "может только root
при чем здесь точка монтирования?

Jula0071 19-12-2017 13:15 2785467

Цитата:

Цитата Akella2007
Ещё раз: mount выдает буквально вот такой текст ошибки, цитирую: использовать опцию "--types "может только root
при чем здесь точка монтирования? »

Ок, понял. Но рутом то монтирует? Если монтирует, то можно потом будет разрешить юзеру sudo на эту команду.
sudoers:
Код:

username ALL=(ALL) NOPASSWD: /bin/mount bla bla...

Akella2007 19-12-2017 13:30 2785476

Цитата:

Цитата Jula0071
Ок, понял. Но рутом то монтирует? »

да

Цитата:

Цитата Jula0071
username ALL=(ALL) NOPASSWD: /bin/mount bla bla... »

не понял, как тогда должна выглядеть полная строка?
Код:

mount -t cifs //server1/share /mnt/share -o username ALL=(ALL) NOPASSWD:

Jula0071 19-12-2017 13:41 2785483

Нет,
Цитата:

Цитата Akella2007
username ALL=(ALL) NOPASSWD: /bin/mount bla bla. »

нужно прописать в файл /etc/sudoers, а сама команда будет такая sudo mount blabla ...
то есть команда монтирования предварятся sudo, что позволяет указанному юзеру выполнить её (и только её при указанных настройках) от рута без запроса пароля.

Akella2007 19-12-2017 14:09 2785496

Всё равно выдает ошибку:
Цитата:

использовать опцию "--types "может только root
доигрался, теперь при любом запуске любой программы от имени sudo выдает:
ошибка синтаксиса
parse error in /etc/sudoers
no valid sudoers sources found, quitting
Не удалось инициализировать модуль политики

Код:

$ su -c visudo
требует пароль от root, но... при установке UBUNTU 16.04 Я не указывал никаких паролей для root

Jula0071 19-12-2017 14:28 2785507

Цитата:

Цитата Akella2007
доигрался, теперь при любом запуске любой программы от имени sudo выдает:
ошибка синтаксиса
parse error in /etc/sudoers »

Молодец, теперь ребут в single mode и теперь уже вдумчивая правка sudoers, а не тяп-ляп.
Цитата:

Цитата Akella2007
требует пароль от root, но... при установке UBUNTU 16.04 Я не указывал никаких паролей для root »

Лучше установить, как раз на случай выстрелов в ногу.

Akella2007 19-12-2017 14:42 2785511

http://help.ubuntu.ru/wiki/%D1%81%D0...BE%D0%BB%D1%8F

в Убунту 16.04 шифт не работает?

Цитата:

когда вы видите заставку Ubuntu), нажать на кнопку Reset
Нет никакой заставки при загрузке. Такое впечатление, что те, кто пишут документацию не знают, что они пишут.

Запустил recovery mode, выполняю:
Код:

mount -no remount,rw /
получаю:
Цитата:

использовать опцию "--no-mtab" может только root
хотя документация гласит:

Цитата:

есть пункт, обозначенный recovery mode. Загрузитесь в него, у вас запустится консоль с правами root.
http://help.ubuntu.ru/wiki/%D1%81%D0...BE%D0%BB%D1%8F

Jula0071 19-12-2017 14:56 2785519

Цитата:

Цитата Akella2007
в Убунту 16.04 шифт не работает? »

Нажать и удерживать шифт при выключенном ПК, нажать кнопку включения ПК.
Цитата:

Цитата Akella2007
Нет никакой заставки при загрузке. Такое впечатление, что те, кто пишут документацию не знают, что они пишут. »

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

Akella2007 19-12-2017 14:59 2785522

Нет, у меня "стандартная", отсюда http://ubuntu.ru/get

Akella2007 19-12-2017 15:17 2785525

Цитата Jula0071:
username ALL=(ALL) NOPASSWD: /bin/mount bla bla... »
загрузился я с liveCD (с установочной флешки)

вот сфоткал экран с sudoers, что здесь не так?



Увидел. Вместо NOPASSWD я написал NOPASSWORD.

Всё равно ошибка.
Что ещё не так?

Я восстановил файл sudoers к начальному виду.
Как теперь правильно его редактировать?

Jula0071 19-12-2017 15:35 2785531

Цитата:

Цитата Akella2007
Что ещё не так? »

Всё не так. Ну нельзя же так - совсем не включать голову. Эх...

Ладно, уберите последнюю строчку совсем, я так понимаю вы и есть единственный пользователь этого ПК? Тогда чтобы упростить жизнь отредактируйте строчку %sudo
Код:

%sudo ALL=(ALL:ALL) NOPASSWD: ALL
Постарайтесь в этот раз не накосячить!
Теперь при вызове любых команд через sudo пароль спаршиваться не будет у пользователей-членов группы sudo.

Как я теперь понял, знаний по линуксу у вас ноль, потому сразу подскажу, как задать пароль руту:
Код:

passwd root
Чтобы стать рутом при сломанном sudoers команда su

Akella2007 19-12-2017 15:48 2785536

Цитата:

Цитата Jula0071
уберите последнюю строчку совсем »

давайте отталкиваться исходного файла - в этом случае ничего не нужно удалять, правильно?

Jula0071 19-12-2017 15:48 2785537

Цитата:

Цитата Akella2007
давайте отталкиваться исходного файла - в этом случае ничего не нужно удалять, правильно? »

Да.

Akella2007 19-12-2017 15:51 2785538

Всё. Отредактировал. visudo выдал, что всё в норме.
И что теперь дальше?

с какого места нужно продолжить?

Jula0071 19-12-2017 16:00 2785544

Цитата:

Цитата Akella2007
с какого места нужно продолжить? »

В /etc/sudoers
Код:

%sudo ALL=(ALL:ALL) ALL
замените на
Код:

%sudo ALL=(ALL:ALL) NOPASSWD: ALL
Своим пользователем запустите команду
Код:

sudo mount.cifs -o user=,password=,dir_mode=0777,file_mode=0777 //server1/share $HOME/print
или какая там у вас была рабочая от рута. просто предварите её sudo.
Шара должна смонтироваться без запроса пароля.

Akella2007 19-12-2017 16:07 2785546

Получилось!
Огромное Вам спасибо за терпение и помощь!

Если у кого-то есть возможность описать другой, более простой способ, буду благодарен.

Jula0071 19-12-2017 16:10 2785548

Цитата:

Цитата Akella2007
Если у кого-то есть возможность описать другой, более простой способ, буду благодарен. »

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

Akella2007 19-12-2017 16:16 2785549

да, с gvfs проще, т.к. не надо редактировать sudoers

Akella2007 20-12-2017 12:01 2785758

Ещё есть один способ:

Код:

smbclient '//server1/share/' -c 'put file1.txt new_file_name1.txt'
но в этом случае приходится вводить пароль текущего линукс-пользователя


Время: 21:38.

Время: 21:38.
© OSzone.net 2001-