MYCSS

Показ дописів із міткою samba. Показати всі дописи
Показ дописів із міткою samba. Показати всі дописи

2019-03-15

Script for detect changing UID of SAMBA user

FreeNAS 11.2, SAMBA with AD

Sript detect wrong user with sid begin with 900

wbinfo -i EDOMAIN\\user1
EDOMAIN\user1:*:90000012:90000015:test user:/home/EDOMAIN/user1:/bin/sh


#!/bin/sh
wbinfoexe=/usr/local/bin/wbinfo
for user in $(${wbinfoexe} -u)
do
 uid=$(${wbinfoexe} -i "$user" | /usr/bin/awk -F: '{print $3}' | /usr/bin/egrep "^900")
 if [ ! -z "${uid}" ];then
  echo "Abnormal user is $user $uid"
  ${wbinfoexe} --logoff-user="${user}"
  net cache flush
  /etc/ix.rc.d/ix-activedirectory restart
  break
 fi
done

2019-02-22

FreeNAS-11.2-U2, Samba, VFS Object: default_quota.

Попередньо я вивчав як зробити реальні квоти для користувачів у FreeNAS:
Маємо те, що маємо. Усе що відбувається - на краще: FreeNAS, ZFS, User Quota, Samba.

Тепер задачу з реальним визначення квоти для користувача ZFS можемо зробити додавши VFS Object: default_quota до необхідної спільної теки у налаштуваннях Sharing / SMB .
З документації FreeNAS: default_quota - Stores the default quotas that are reported to a windows client in the quota record of a user.

Додавання VFS Object: default_quota
Перевіряємо поточне значення квоти для змонтованого диску Z: у ОС Windows 10.
Квота 80 GB

Встановлюю персональну квоту для певного користувача домену на zfs dataset.
DEFAULT_QUOTA=65G
USERS_DATASET=poolz2/samba/users
LOGON=${DOMAINNAME}\\${USERNAME}
/sbin/zfs set "userquota@${LOGON}=${DEFAULT_QUOTA}" ${USERS_DATASET}
Перевіряємо нове значення квоти для  змонтованого диску Z: у ОС Windows 10.
Квота 65 GB
P.S. Автор розробки доповнень до FreeNAS  коментує питання по цій темі:
CIFS/SMB - AD - Quotas and reported share size | iXsystems Community
  • What minimum VFS Objects should be used for worked users quota ?
    only zfs_space, only ixnas. And default_quota it not need to use since 11.2-U2 ?
    - Only ixnas.
  • You can set a base quota for all authenticated users by adding the following auxiliary parameter for your share: ixnas:base_user_quota = 10G. You can of course change this value. What happens is the first time a user connects to the share, samba will automatically set a user quota at 10GB for him. 
  • You can remove "zfsacl" from your vfs_objects list. ixnas does the same thing.
ixnas:base_user_quota

2018-04-19

FreeNAS, ZFS, User Quota, Samba

Task: Apply ZFS user quota to Smaba

Source:

zpool with samba user home folders: poolz2/samba/users

Allow request about quota for everyone:
zfs allow everyone userquota,userused poolz2/samba/users

Set usrer quota 120G for domain user : DOMAIN\username
zfs set userquota@"DOMAIN\username"=120G poolz2/samba/users

Tune SAMBA,  /usr/local/etc/smb4.conf:
get quota command = /mnt/poolz2/home/scripts/quota_get.sh %U %D

Reload SAMBA:
killall -HUP smbd 
Or change via GUI of FreeNAS
Example of GUI of SMB Services (FreeNAS11.2), add quota.

Soulution:

Script for get quota data: /mnt/poolz2/home/scripts/quota_get.sh
#!/bin/sh
rtype=$4
if [ "${rtype}" == -1 ]; then
 exit
fi
username=$1
if [ ! -z  "$username" ]; then
  domainname=$2
  requestpath=${PWD}
  DATASETNAME=`/bin/df -l ${requestpath} | /usr/bin/tail -n 1 | /usr/bin/awk '{ print $1 };'`
  info=`/sbin/zfs userspace -Hp ${DATASETNAME}  | /usr/bin/grep -i ${domainname}'\\\\'${username}`
  usedbytes=`echo ${info}| /usr/bin/awk '{ printf "%.f", $4/1024 };'`;
  quotabytes=`echo ${info}| /usr/bin/awk '{ if ( $5 == "none" ) { print "0"} else { printf "%.f", $5/1024 }  };'`;
  if [ "$quotabytes" != 0 ]; then
   echo 2 $usedbytes $quotabytes $quotabytes $usedbytes $quotabytes $quotabytes
  fi
fi
exit

Example of GUI of Sharing SMB (FreeNAS11.2).
Easy script for define default quota for all users. I plan run it just by cron.
#!/bin/sh

USERS_DATASET=poolz2/samba/users
DOMAINNAME=SOMEDOMAIN
DEFAULT_QUOTA=80G

/sbin/zfs allow everyone userquota,userused ${USERS_DATASET}
mountpoint=`/bin/df  -l ${USERS_DATASET} | /usr/bin/tail -n 1 | /usr/bin/awk '{ print $6 };'`
for file in ${mountpoint}/*; do
    USERNAME=$(/usr/bin/basename "$file")
    LOGON=${DOMAINNAME}\\${USERNAME}
    QUOTA=`/sbin/zfs get -H "userquota@${LOGON}" ${USERS_DATASET} | /usr/bin/awk '{ print $3 };'`
    #echo ${LOGON} : ${QUOTA}
    if [ "$QUOTA" == "none" ];then
        /sbin/zfs set "userquota@${LOGON}=${DEFAULT_QUOTA}" ${USERS_DATASET}
        #echo Was set default quota ${DEFAULT_QUOTA} for ${LOGON}
    fi
done

#/sbin/zfs userspace ${USERS_DATASET}

More:

2016-11-29

FreeNAS SAMBA auto create home directory with AD users

FreeNAS-9.10.1-U4 (ec9a7d3)

Samba (SMB)

Проблема в тому що при визначенні домашньої теки, вона не створювалася там де треба, а в /home/%D/%U.
І користувачі не могли попасти до теки, тому що самба давала вірний шлях, але тек там не було.
Пере визначення template dir допомогло.
Властивості домашньої теки

2012-08-30

синхронізація сховища даних між ОС Windows та роутера з OpenWRT (Linux), rsync vs samba

Для того щоб дивитися фільми на телевізорі у час коли комп'ютер вимкнено, змонтував зовнішній накопичувач на роутері. Але фільми знаходяться на робочому комп'ютері що роздаються торентами, тому я роблю повну синхронізацію між комп'ютером та роутером за допомогою rsync, як альтернативу синхронізації через SMB. І потім порівняємо.

Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready