LINUX.ORG.RU

Сообщения avarex

 

samba-tool только для избранных?

Форум — Admin

Пытаюсь настроить AD DC на Samba 4 и Gentoo. В документации (https://wiki.samba.org/index.php/User_Documentation):

# samba-tool domain provision

cистема говорит, что нет такой команды. =|

Читаю документацию еще раз, и нахожу:

Install SerNet Samba+/Enterprise packages

Иду по ссылкам и оказывается, что это штука стоит денег. Так что, реально, просто Samba 4 без samba-tool, а сборка от SerNet только за вечно зеленые?

 ,

avarex
()

Скрипт автоматического разбиения и выравнивания разделов диска.

Форум — General

Выношу сие на всеобщее обозрение уважаемой публике. Изначально скрипт задумывался для автоматической разбивки диска на разделы при установке системы, но потом получилось, то что получилось. Практическое применение: только для новых дисков или дисков, на которых отсутствует нужная информация.

#!/bin/bash

echo -n 'Enter symbol work disk ( a,b,c ): ' #Выбор диска, который необходимо выровнять или разбить.
read wsymbol
wdisk=/dev/sd$wsymbol

totalsector=`parted $wdisk unit s print y 2>/dev/null | grep "Disk $wdisk:" | cut -d\  -f3 | cut -ds -f1` #Общее чило сеторов на диске.
sizesector=`parted $wdisk unit s print y 2>/dev/null | grep "Sector size" | cut -d\/ -f3 | cut -dB -f1` #Размер сетора в байтах.

echo -n 'What type partition table (gpt msdos): ' #Тип таблицы разделов.
read typetable
echo
echo "Disk: $wdisk"
echo "Type: $typetable"
echo
echo -n "You sure? (y|n): " #Подтверждение выбранных параметорв. Если что-то не устраивает, пока можно исправить =).
read answer

if [ $answer = y ]; then
    parted $wdisk mktable $typetable y
  else
    while [ $answer != y ]; do
        echo -n 'Enter work disk ( a,b,c ): '
        read wsymbol
        wdisk=/dev/sd$wsymbol

        echo -n 'What type partition table (gpt msdos): '
        read typetable
        echo
        echo "Disk: $wdisk"
        echo "Type: $typetable"
        echo
        echo -n "You sure? (y|n): "
        read answer
    done
fi

echo -n 'Enter the total number of partitions (0-9): ' #Общее число партиций на диске.
read numpart
n=3

MiB=$((1024**0))
GiB=$((1024**1))
TiB=$((1024**2))

sectortomb=$((1024**2/$sizesector)) #Количество секторов данной размерности в 1 MiB.
startsector1=$((2*1024**2/$sizesector)) #Начальный сектор. Резон стартовать с 4096 считаю есть.
echo
echo "Full size disk: $(($totalsector/$sectortomb)) MiB" #Просто информация о полной емкости HDD.
echo "Full size disk: $(($totalsector/($sectortomb*$GiB))) GiB"
echo "Full size disk: $(($totalsector/($sectortomb*$TiB))) TiB"
echo
echo -n 'Select units (default=MiB GiB TiB): '
read sunit
  if [ -z $sunit ]; then sunit=MiB; fi

echo -n "Enter size first partition in $sunit (default=100): "
read psize1
  if [ -z $psize1 ]; then psize1=100; fi

  psizes=$(($startsector1/2*$psize1*$sunit-1)) #Пересчет размера партиции в секторах.
  endsector1=$(($startsector1+$psizes))

  parted $wdisk unit s mkpart primary $startsector1 $endsector1 print free

echo -n 'You want to create another partition? (y|n): '
read answer

if [ $answer = y ]
then
  while [ $answer = y ] #Разделы будут создаваться до тех пор, пока Вы не ответите "n",
  do
    while [ $numpart -ge $n ] #и пока значение созданых разделов не привысит указанное значение.
    do
      echo -n 'Select units (MiB default=GiB TiB): '
      read sunit1
        if [ -z $sunit1 ]; then sunit1=GiB; fi
      echo -n "Enter size partition in $sunit1: "
      read psize
      startsector=$((1+`parted $wdisk unit s print | tail -n2 | head -n1 | cut -ds -f2 | cut -d\  -f3`))
      psizes=$(($sectortomb*$psize*$sunit1-1))
      endsector=$(($startsector+$psizes))

      parted $wdisk unit s mkpart primary $startsector $endsector print free
      
      echo -n 'You want to create another partition? (y|n): '
      read answer
      n=$(( $n+1 ))
    done
    answer=n
  done
    startsector2=$((1+`parted $wdisk unit s print | tail -n2 | head -n1 | cut -ds -f2 | cut -d\  -f3`)) #Последний раздел создается автоматически. Это сделано для максимально возможного использования дискового пространства.
    endsector2=$((($totalsector/8-40)*8))
    parted $wdisk unit s mkpart primary $startsector2 $endsector2 print free
fi

totalpart=`parted /dev/sda print | tail -n +8 | cut -d\  -f2` #Список номеров разделов.

parted $wdisk unit GiB print

echo -n 'What a partition is bootable? (1-32): ' #Номер загрузочного раздела. Если таковой не нужен, то ничего вводить не надо.
read bootpart

if [ -n $bootpart ]
then
  parted $wdisk set $bootpart boot on
fi

if [ $typetable = gpt -a -n $bootpart ] #Если таблица GPT и диск загрузочный, то
then
  startgrub=$(($startsector1-$sectortomb))
  endgrub=$(($startsector1-1))
  parted $wdisk unit s mkpart non-fs $startgrub $endgrub print free #создается раздел для GRUB2 загрузчика.

  numgrub=`parted $wdisk print | grep non-fs | cut -d\  -f2`
  parted $wdisk set $numgrub bios_grub on
fi

echo -n 'Select number partition for SWAP (1-32): '
read nswap

echo -n 'Select type fs (ext2,3,4): ' #Тип файловой системы, впринципе можно указать любую.
read typefs

for i in $totalpart
do
  if [ $i -ne $nswap ]
  then
    mkfs.$typefs $wdisk$i
  else
    mkswap $wdisk$nswap
    swapon $wdisk$nswap
  fi
done

parted $wdisk unit s print free
parted $wdisk unit KiB print free
parted $wdisk unit GiB print

echo 'with best wishes Avarex'

ПС: в процессе столкнулся с проблемой указания диапазона для for: for i in [1-3]; do echo $i; done => выводит [1 и 3]. Почему не выводит 1 2 3? (раньше, по моему, так было).

 , ,

avarex
()

Реализация маршрутизации 2 независимых сетей.

Форум — Admin

Здравствуйте! Прошу помощи у сведущих людей =).

Имеется Linux-машина (Gentoo), на которой 2 сетевых интерфейса: enp4s0 — 192.168.17.1, настроен DHCP, должен смотреть сугубо в локальную сеть. еnp5s0 – 171.214.17.111, получает адрес от роутера, смотрит во вторую локалку и ходит в инет.

Имеется Windows7-машина, на которой также 2 сетевухи: netcard_1 – 192.168.17.10 получает свой адрес от линуховой машины netcard_2 — 171.214.17.101, получает адрес от роутера, смотрит во вторую локалку и ходит в инет.

Сетевые карты enp4s0 и netcard_1 соединены витой парой (гигабитный интерфейс, роутер стоит дорого).

Требуется: что бы обе машины общались друг с другом только по гигибитному интерфейсу, т. е. enp4s0 и netcard_1 и могли ходить в инет только через свои еnp5s0 и netcard_2 независимо друг от дурга.

Размышлял, читал, курил... Пришел к выводу: для реализации задуманного на linux необходимо через интерфейс enp5s1 разрешить любой трафик, а через enp4s0 разрешить только трафик относящийся к сети 192.168.17.0/24. По аналогии также и для windows.

На Linux: /etc/sysctrl.conf net.ipv4.ip_forward = 1

echo '255 internet
256 localnet' >> /etc/iproute2/rt_tables
ip route del default		#Удаляю маршруты из главной таблицы маршрутизации
ip route add default via 171.214.17.17 dev enp5s1 table internet
ip rule add from 171.214.17.111 table internet
ip route add 192.168.17.0/24 via 192.168.17.1 dev enp4s0 table localnet
ip rule add from 192.168.17.1 table localnet

На Windows машине прописал два постоянных маршрута:

route -p add 192.168.17.0 mask 255.255.255.0 192.168.17.1 metric 20
route -p add 0.0.0.0 mask 0.0.0.0 171.214.17.17 metric 10

В результате: Linux через еnp5s0 ходит в инет, но не ходит в локалку 171.214.17.0/24 (ну, впринципе это приемлемо), через enp4s0 вообще никуда ходить не хочет, но сам себя пингует (ping 192.168.17.1).

Windows также, ходит в инет, но получить ip адрес от Linux не может. Ни файерволов, ни антирвирусников. iptables есть, но не настроен.

ПС: до этого с маршрутизацией дел не имел вообще. Собственно, на данной задаче предполагаю разобраться с вопросом маршрутизации в целом.

Курилось: http://habrahabr.ru/post/108690/ , http://www.samag.ru/archive/article/121 и остальное по мелочи.

ПС2: По ходу дела подумалось, а есть ли разница настраивать маршруты через iproute2 или через route???

 , ,

avarex
()

RSS подписка на новые темы