Как Вы добавили бы долю к smb.conf с помощью сценария?

Я хотел бы к сценарию, добавляющему долю к smb.conf файлу. Мой текущий сценарий просто добавляет его в конец файла, но это не идеально. У меня было бы что-то, что добавит новую долю, если она не будет существовать и заменять его, если она делает.

Я в настоящее время пишу сценарий этого на дистрибутиве CentOS 7, но идеально хотел бы что-то, что будет работать через дистрибутивы, хотя это не требование.

Кроме того, я использую удар, чтобы сделать это, потому что скрипт запущен, прежде чем другие пакеты добавляются к системе. Использование сценария yum устанавливать samba пакеты, и затем, как предполагается, настраивают его и добавляют доли.

5
задан 8 December 2014 в 16:51
2 ответа

Чтобы соответствовать современным передовым методам системного администратора, было бы хорошо добавить ваши конфигурации в виде отдельных файлов в /etc/smb/smb.d , а затем указать на них включают . К сожалению, самба не поддерживает подстановочные знаки include , поэтому вам нужно добавить что-то вроде:

include = /etc/smb/includes.conf

в вашем smb.conf , а затем сгенерируйте includes.conf примерно так:

ls /etc/smb/smb.d/* | sed -e 's / ^ / include = /'> /etc/smb/includes.conf

Для более подробной информации:

chicks @ silver 23:57:23 smb! 531 $ ls smb.d a.conf c.conf e.conf цыплята @ silver 23:57:29 smb! 532 $ ls /etc/smb/smb.d/* | sed -e 's / ^ / include = /'> /etc/smb/includes.conf цыплята @ silver 23:57:40 smb! 533 $ cat includes.conf включить = /etc/smb/smb.d/a.conf включить = /etc/smb/smb.d/c.conf включить = /etc/smb/smb.d/e.conf

Итак, теперь вы можете вставить любые дополнительные конфиги самбы в /etc/smb/smb.d , восстановить includes.conf и перезапустить самбу, и жизнь в порядке.

4
ответ дан 3 December 2019 в 01:44

Это старая тема, но все еще полезная. Это мои скрипты для создания и удаления пользователей в простой установке самбы для хранения резервных копий.

Проверено на CentOS

Подготовьте каталог и разрешения

Выполните эти команды на терминале

sudo mkdir /backups
sudo mkdir /etc/samba/smb.conf.d
sudo groupadd sambashare 
sudo chgrp sambashare /backups
sudo useradd -M -d /home/sadmin -s /usr/sbin/nologin -G sambashare sadmin
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin

smb.conf

[global]
    workgroup = TUAITI
    security = user

    passdb backend = tdbsam

    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw

include = /etc/samba/includes.conf

smbaddshare.sh

#!/bin/bash
USER=$1
if [ -z "$1" ]
then
    echo "No username given"
    exit 1
fi

useradd -M -d /backups/$USER -s /usr/sbin/nologin -G sambashare $USER
mkdir /backups/$USER
chown $USER:sambashare /backups/$USER
chmod 2770 /backups/$USER
smbpasswd -a $USER
smbpasswd -e $USER

cat  /etc/samba/smb.conf.d/$USER.conf
[$USER]
    path = /backups/$USER
    browseable = no
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = $USER @sadmin
EOF

ls /etc/samba/smb.conf.d/* | sed -e 's/^/include = /' > /etc/samba/includes.conf

smbcontrol all reload-config

smbremoveshare.sh

#!/bin/bash
USER=$1
if [ -z "$1" ]
then
    echo "No username given"
    exit 1
fi

read -r -p "Are you sure you want to delete the user ? [y/N] " response
response=${response,,}    # tolower
if [[ "$response" =~ ^(yes|y)$ ]]
then
    smbpasswd -x $USER
    userdel $USER
    mv /backups/$USER /backups/$USER.`date +"%Y%m%d%H%M%S"`.deleted
    rm /etc/samba/smb.conf.d/$USER.conf

    ls /etc/samba/smb.conf.d/* | sed -e 's/^/include = /' > /etc/samba/includes.conf

    smbcontrol all reload-config
else
    echo "Nothing done"
fi
0
ответ дан 16 July 2020 в 14:04

Теги

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