Я хотел бы к сценарию, добавляющему долю к smb.conf файлу. Мой текущий сценарий просто добавляет его в конец файла, но это не идеально. У меня было бы что-то, что добавит новую долю, если она не будет существовать и заменять его, если она делает.
Я в настоящее время пишу сценарий этого на дистрибутиве CentOS 7, но идеально хотел бы что-то, что будет работать через дистрибутивы, хотя это не требование.
Кроме того, я использую удар, чтобы сделать это, потому что скрипт запущен, прежде чем другие пакеты добавляются к системе. Использование сценария yum
устанавливать samba
пакеты, и затем, как предполагается, настраивают его и добавляют доли.
Чтобы соответствовать современным передовым методам системного администратора, было бы хорошо добавить ваши конфигурации в виде отдельных файлов в /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
и перезапустить самбу, и жизнь в порядке.
Это старая тема, но все еще полезная. Это мои скрипты для создания и удаления пользователей в простой установке самбы для хранения резервных копий.
Проверено на 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