DJ-root
Well-known member
- Регистрация
- 09.01.2005
- Сообщения
- 971
- Реакции
- 387
- Баллы
- 63
- Возраст
- 38
- Местоположение
- Славный град-Киев
В данном топике предлагается выкладывать советы по настройке и решении проблем с Самбой
# emerge openldap
# emerge mit-krb5
# USE="kerberos ldap winbind"
# emerge samba
[libdefaults]
ticket_lifetime = 600
default_realm = YOURDOMAIN
default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc
default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc
[realms]
YOURDOMAIN = {
kdc = ip of you ads server
default_domain = YOURDOMAIN
}
[domain_realm]
yourdomain = YOURDOMAIN
yourdomain = YOURDOMAIN
[kdc]
profile = /etc/krb5kdc/kdc.conf
[logging]
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmin.log
default = FILE:/var/log/krb5lib.logog
xxx.xxx.xxx.xxx adserver.yourdomain adserver
kinit Username@DOMAIN
[global]
netbios name = name of your server
socket options = TCP_NODELAY SO_RCVBUF=16384 SO_SNDBUF=16384
idmap uid = 10000-20000
winbind enum users = yes
winbind gid = 10000-20000
workgroup = yourdomain
os level = 20
winbind enum groups = yes
socket address = ip of your ads server
password server = *
preferred master = no
winbind separator = +
max log size = 50
log file = /var/log/samba3/log.%m
encrypt passwords = yes
dns proxy = no
realm = YOURDOMAIN
security = ADS
wins server = ip of your wins server
wins proxy = no
[exampleshare]
comment = a comment
path = /home/exampleshare
browseable = yes
read only = no
inherit acls = yes
inherit permissions = yes
create mask = 700
directory mask = 700
valid users = @"DOMAIN+Domain Users" <-- define your ADS groups
admin users = @"DOMAIN+Domain Admins" <-- define your ads groups with admin rights
# /etc/init.d/samba start
# net ads join -U Username
passwd: compat winbind shadow: compat group: compat winbind
# winbindd
# echo "/usr/bin/winbindd" >> /etc/conf.d/local.start
# wbinfo -u
# wbinfo -g
/dev/sda4 /home reiserfs noatime,acl 0 0
# setfacl -m g:"DOMAIN+YourGroup":rwx .
[global]
dos charset = CP866
unix charset = KOI8-R
workgroup = M
netbios name = S
server string = S (Samba %v)
obey pam restrictions = Yes
unix password sync = Yes
encrypt passwords = true
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n
add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u
add machine script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u
syslog = 0
log file = /var/log/samba/%m.log
max log size = 10000
preferred master = Yes
domain master = Yes
domain logons = Yes
socket options = IPTOS_LOWDELAY
os level = 60
preferred master = Yes
admin users = root, @admins
dns proxy = No
ldap ssl = no
panic action = /usr/share/samba/panic-action %d
invalid users = root
create mask = 0775
# wins support = yes
# wins server = no
# If we receive WINS server info from DHCP, override the options above.
include = /etc/samba/dhcp.conf
# wins proxy = yes
[homes]
comment = Home Directories
path = %H/samba
read only = No
create mask = 0775
directory mask = 0775
browseable = No
[incoming]
comment = Incoming Space
path = /mnt/admin
force user = samba
force group = samba
read only = No
create mask = 0777
directory mask = 0777
guest ok = Yes
hosts deny = 192.168.0.201
Строки с кодом c0001000 описывают рабочие группы и указывают на мастер-броузера этой группы. Остальные строки - компы, сначала имя, потом код, описание и рабочая группа."WORKGROUP1" c0001000 "SAMBA_SERVER" "WORKGROUP1"
"WORKGROUP2" c0001000 "S_SERVER" "WORKGROUP2"
"SAMBA_SERVER" 400d9a03 "это сервер" "WORKGROUP1"
"COMP1" 40011203 "комп номер1" "WORKGROUP1"
"COMP2" 40011003 "комп номер2" "WORKGROUP1"
#!/usr/bin/perl
use IO::Socket;
$NetADDR = "172.20.99."; # Задаем подсеть
$port = 139; # Порт - 139
$proto = "tcp"; # протокол TCP
$Timeout = 0.01; # таймаут сессии (в сетях с потерями можно увеличить до 0.02-0.1с)
### подпрограмма вывода строки в формате файла browse.dat ###
sub add_to_list {
$HostNAME = substr(`nslookup $HostADDR | grep Name `,9); # резолвим имя компа из IP-адреса
$HostNAME =~ s/.vesnianka.net\n//; # отбрасываем доменную часть
print '"';
print $HostADDR; # вставляем ИП-адрес
print '"';
print " 40011007 "; # вставляем код
print ' "';
print $HostNAME; # вставляем описание - имя из DNS
print '"';
print ' "MASHEROVA-99" '; # вставляем рабочую группу
print "\n";
}
### формируем первые 2 статические строки, которые описывают рабочие группы и их броузеры ###
print '"MASHEROVA-99" c0001000 "172.20.99.100" "MASHEROVA-99" ';
print "\n";
print '"SKYNET" c0001000 "172.20.97.250" "SKYNET" ';
print "\n";
$i = 1;
while ( $i < 255 ) { # сканировать все ИП-адреса до 254
$HostADDR = $NetADDR.$i; # текущий ИП-адрес
### создаем сокет (TCP-коннект на 139 порт) ###
my $sock = IO::Socket::INET->new(PeerAddr=> $HostADDR,
PeerPort => $port,
Proto => $proto,
Timeout => $Timeout ) && add_to_list; # в случае успеха выполнить подпрограмму
close($sock); # закрыть сокет
$i++; # и т.д. коннект на все ИП от 1 до 254
}
#!/usr/bin/perl
`/usr/local/browsing/scan139.pl > /var/lock/new_list`; # сканируем и кидаем список в new_list
sleep(10); # ждать 10 сек
`chflags noschg /var/lock/browse.dat`; # снимаем флаг schg
`cp /var/lock/new_list /var/lock/browse.dat`; # заменяем browse.dat содержимым new_list
`chflags schg /var/lock/browse.dat`; # устанавливаем флаг schg опять
*/5 * * * * root /usr/local/browsing/browser_update.pl