Общее sed решение (без пересчета полей)
sed '
1{
h
d
}
G
:a
s/\(^\|,\)\([^=]\+\n\)"\?\([^,]\+\)"\?,\?/\1 \3 => \2/
ta
s/^/{/
s/\n/ },/
' file.csv
Но если вы хотите, чтобы первое поле стало последним - просто добавьте
s/\([^,]*\), \([^\n]*\)/\2, \1/
после ta
В настройках общего доступа в smb.conf
вам необходимо указать имена пользователей и/или групп, которым разрешено записывать в общий ресурс, используя строку write list =...
.
Пример:
[myshare]
...
write list = my_linux_username
Затем вам нужно будет использовать команду smbpasswd
для установки пароля для аутентификации my_linux_username
для Samba:
sudo smbpasswd -a my_linux_username
Этот шаг необходим, поскольку стандартные системные пароли в /etc/shadow
хэшируются с помощью алгоритмов, несовместимых с алгоритмами хеширования паролей, используемыми в протоколе SMB. Когда клиент отправляет пакет проверки подлинности SMB, он включает хешированный пароль. Его можно сравнить только с другим хэшем пароля, использующим тот же алгоритм.
(Очень, очень старые инструкции из прошлого тысячелетия могут рекомендовать отключить шифрование паролей в Samba и использовать определенные хаки реестра, чтобы позволить Windows передавать незашифрованные пароли в сеть. Этот совет устарел,:взлом реестра может больше не работать в текущих версиях Windows и позволить любому, кто может отслеживать ваш сетевой трафик, тривиально перехватить ваш пароль.)
Есть еще одна вещь, которую вам, возможно, придется сделать на стороне клиента -. Когда ваша клиентская система Windows присоединена к домену Active Directory и вы вошли в систему с учетной записью AD, она автоматически добавляет префикс ко всем неполным именам пользователей с именем домена AD пользователя, т. е. вы будете аутентифицироваться как AD_DOMAIN\your_username
, не только your_username
.
Если вы вошли в систему с локальной учетной записью (или ваша клиентская система не подключена к домену AD ), Windows может автоматически добавить к имени пользователя префикс имя хоста клиента , если вы не укажете другое доменное имя.
Чтобы успешно войти на -автономный сервер Samba из автономного -автономного клиента Windows, вам может потребоваться указать свое имя пользователя как SAMBA_SERVER_HOSTNAME\your_username
.
В противном случае Samba увидит имя пользователя как WINDOWS_CLIENT_HOSTNAME\your_username
, решит, что у него нет возможности проверить пользователей, принадлежащих к домену с именем WINDOWS_CLIENT_HOSTNAME
, и отклонит вход в систему.
(Более новые версии Samba могут иметь встроенную -проверку для этой конкретной ситуации, и тем не менее они могут разрешать вам доступ. Но в основном так работает SMB-аутентификация «под капотом», и если вам нужно иметь дело со старыми версиями Samba, это все еще может быть полезно.)
Я искал это, потому что торопился и даже не успел сосредоточиться на создании пользователей и так далее...
Просто нужно было как можно скорее извлечь данные из машины с Debian 9, и это был самый быстрый способ, о котором я думал, если вы хотите избежать пропуска команд, вы также можете сделать это, но это явно не рекомендуется. если вы не торопитесь .
[mymfolder]
path = /mymfolder
writeable = yes
browseable = yes
public = yes
create mask = 0777
directory mask = 0777
force user = root
Базовая рабочая настройка в моем случае (с использованием гостевой функции SAMBA, права доступа /myfolder подходят для [вашей _SAMBA -Unix _общей папки _пользователя _учетной записи]):
[global]
guest account = [your_SAMBA-Unix_share_user_account]
[mymfolder]
path = /myfolder
browseable = yes
read only =no
guest ok =yes
Важно отключить любые другие подключенные диски на компьютере с Windows к этому серверу SAMBA, так как, по-видимому, не разрешено иметь более одного пользователя, вошедшего в систему одновременно.