mirror of
https://github.com/samba-team/samba.git
synced 2025-02-26 21:57:41 +03:00
selftest: add tests for dfree with inherit owner enabled
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12145 Signed-off-by: Uri Simchoni <uri@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
f20d57ecea
commit
b6931d5edc
@ -614,6 +614,7 @@ sub setup_fileserver($$)
|
||||
push(@dirs, $dfree_share_dir);
|
||||
push(@dirs, "$dfree_share_dir/subdir1");
|
||||
push(@dirs, "$dfree_share_dir/subdir2");
|
||||
push(@dirs, "$dfree_share_dir/subdir3");
|
||||
|
||||
my $valid_users_sharedir="$share_dir/valid_users";
|
||||
push(@dirs,$valid_users_sharedir);
|
||||
@ -1114,7 +1115,6 @@ sub createuser($$$$)
|
||||
warn("Unable to set password for $username account\n$cmd");
|
||||
return undef;
|
||||
}
|
||||
print "DONE\n";
|
||||
}
|
||||
|
||||
sub provision($$$$$$$$)
|
||||
@ -1344,8 +1344,10 @@ sub provision($$$$$$$$)
|
||||
my ($gid_nobody, $gid_nogroup, $gid_root, $gid_domusers, $gid_domadmins);
|
||||
my ($gid_userdup, $gid_everyone);
|
||||
my ($gid_force_user);
|
||||
my ($uid_user1);
|
||||
my ($uid_user2);
|
||||
|
||||
if ($unix_uid < 0xffff - 7) {
|
||||
if ($unix_uid < 0xffff - 10) {
|
||||
$max_uid = 0xffff;
|
||||
} else {
|
||||
$max_uid = $unix_uid;
|
||||
@ -1359,6 +1361,8 @@ sub provision($$$$$$$$)
|
||||
$uid_pdbtest_wkn = $max_uid - 6;
|
||||
$uid_force_user = $max_uid - 7;
|
||||
$uid_smbget = $max_uid - 8;
|
||||
$uid_user1 = $max_uid - 9;
|
||||
$uid_user2 = $max_uid - 10;
|
||||
|
||||
if ($unix_gids[0] < 0xffff - 8) {
|
||||
$max_gid = 0xffff;
|
||||
@ -1780,9 +1784,14 @@ sub provision($$$$$$$$)
|
||||
wide links = yes
|
||||
[dfq]
|
||||
path = $shrdir/dfree
|
||||
vfs objects = fake_dfq
|
||||
vfs objects = acl_xattr fake_acls xattr_tdb fake_dfq
|
||||
admin users = $unix_name
|
||||
include = $dfqconffile
|
||||
[dfq_owner]
|
||||
path = $shrdir/dfree
|
||||
vfs objects = acl_xattr fake_acls xattr_tdb fake_dfq
|
||||
inherit owner = yes
|
||||
include = $dfqconffile
|
||||
";
|
||||
close(CONF);
|
||||
|
||||
@ -1808,6 +1817,8 @@ userdup:x:$uid_userdup:$gid_userdup:userdup gecos:$prefix_abs:/bin/false
|
||||
pdbtest_wkn:x:$uid_pdbtest_wkn:$gid_everyone:pdbtest_wkn gecos:$prefix_abs:/bin/false
|
||||
force_user:x:$uid_force_user:$gid_force_user:force user gecos:$prefix_abs:/bin/false
|
||||
smbget_user:x:$uid_smbget:$gid_domusers:smbget_user gecos:$prefix_abs:/bin/false
|
||||
user1:x:$uid_user1:$gid_nogroup:user1 gecos:$prefix_abs:/bin/false
|
||||
user2:x:$uid_user2:$gid_nogroup:user2 gecos:$prefix_abs:/bin/false
|
||||
";
|
||||
if ($unix_uid != 0) {
|
||||
print PASSWD "root:x:$uid_root:$gid_root:root gecos:$prefix_abs:/bin/false
|
||||
@ -1882,12 +1893,16 @@ force_user:x:$gid_force_user:
|
||||
createuser($self, $unix_name, $password, $conffile) || die("Unable to create user");
|
||||
createuser($self, "force_user", $password, $conffile) || die("Unable to create force_user");
|
||||
createuser($self, "smbget_user", $password, $conffile) || die("Unable to create smbget_user");
|
||||
createuser($self, "user1", $password, $conffile) || die("Unable to create user1");
|
||||
createuser($self, "user2", $password, $conffile) || die("Unable to create user2");
|
||||
|
||||
open(DNS_UPDATE_LIST, ">$prefix/dns_update_list") or die("Unable to open $$prefix/dns_update_list");
|
||||
print DNS_UPDATE_LIST "A $server. $server_ip\n";
|
||||
print DNS_UPDATE_LIST "AAAA $server. $server_ipv6\n";
|
||||
close(DNS_UPDATE_LIST);
|
||||
|
||||
print "DONE\n";
|
||||
|
||||
$ret{SERVER_IP} = $server_ip;
|
||||
$ret{SERVER_IPV6} = $server_ipv6;
|
||||
$ret{NMBD_TEST_LOG} = "$prefix/nmbd_test.log";
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
if [ $# -lt 6 ]; then
|
||||
cat <<EOF
|
||||
Usage: test_dfree_quota.sh SERVER DOMAIN USERNAME PASSWORD LOCAL_PATH SMBCLIENT SMBCQUOTAS
|
||||
Usage: test_dfree_quota.sh SERVER DOMAIN USERNAME PASSWORD LOCAL_PATH SMBCLIENT SMBCQUOTAS SMBCACLS
|
||||
EOF
|
||||
exit 1;
|
||||
fi
|
||||
@ -18,7 +18,8 @@ ENVDIR=`dirname $5`
|
||||
WORKDIR=$5/dfree
|
||||
smbclient=$6
|
||||
smbcquotas=$7
|
||||
shift 7
|
||||
smbcacls=$8
|
||||
shift 8
|
||||
failed=0
|
||||
|
||||
CONFFILE=$ENVDIR/lib/dfq.conf
|
||||
@ -35,6 +36,8 @@ conf_lines() {
|
||||
local gid
|
||||
uid=$(id -u $USERNAME)
|
||||
gid=$(id -g $USERNAME)
|
||||
uid1=$(id -u user1)
|
||||
uid2=$(id -u user2)
|
||||
cat <<ABC
|
||||
conf1:df:block size = 512:disk free = 10:disk size = 20
|
||||
conf2:df:block size = 1024:disk free = 10:disk size = 20
|
||||
@ -70,6 +73,9 @@ notenforce:udflt:block size = 4096:qflags = 0
|
||||
nfs:df:block size = 4096:disk free = 10:disk size = 80
|
||||
nfs:u$uid:block size = 4096:hard limit = 40:soft limit = 40:cur blocks = 37
|
||||
nfs:udflt:nosys = 1
|
||||
confdfqp:df:block size = 4096:disk free = 10:disk size = 80
|
||||
confdfqp:u$uid1:block size = 4096:hard limit = 40:soft limit = 40:cur blocks = 36
|
||||
confdfqp:u$uid2:block size = 4096:hard limit = 41:soft limit = 41:cur blocks = 36
|
||||
ABC
|
||||
}
|
||||
|
||||
@ -185,5 +191,32 @@ test_smbclient_dfree "Test dfree share root quota not enforced" dfq "." "notenfo
|
||||
#FS quota not implemented (NFS case)
|
||||
test_smbclient_dfree "Test dfree share root FS quota not implemented" dfq "." "nfs ." "160 1024. 12" -U$USERNAME%$PASSWORD --option=clientmaxprotocol=SMB3 || failed=`expr $failed + 1`
|
||||
|
||||
#test for dfree when owner is inherited
|
||||
#setup two folders with different owners
|
||||
rm -rf $WORKDIR/subdir3/*
|
||||
for d in / subdir3
|
||||
do
|
||||
$VALGRIND $smbcacls -U$USERNAME%$PASSWORD -D "ACL:$SERVER\user1:ALLOWED/0x0/FULL" //$SERVER/dfq $d > /dev/null 2>&1
|
||||
$VALGRIND $smbcacls -U$USERNAME%$PASSWORD -a "ACL:$SERVER\user1:ALLOWED/0x0/FULL" //$SERVER/dfq $d || failed=`expr $failed + 1`
|
||||
$VALGRIND $smbcacls -U$USERNAME%$PASSWORD -D "ACL:$SERVER\user2:ALLOWED/0x0/FULL" //$SERVER/dfq $d > /dev/null 2>&1
|
||||
$VALGRIND $smbcacls -U$USERNAME%$PASSWORD -a "ACL:$SERVER\user2:ALLOWED/0x0/FULL" //$SERVER/dfq $d || failed=`expr $failed + 1`
|
||||
done
|
||||
|
||||
$VALGRIND $smbclient //$SERVER/dfq -c "cd subdir3; mkdir user1" -Uuser1%$PASSWORD --option=clientmaxprotocol=SMB3 > /dev/null 2>&1 || failed=`expr $failed + 1`
|
||||
$VALGRIND $smbclient //$SERVER/dfq -c "cd subdir3; mkdir user2" -Uuser2%$PASSWORD --option=clientmaxprotocol=SMB3 > /dev/null 2>&1 || failed=`expr $failed + 1`
|
||||
#test quotas
|
||||
test_smbclient_dfree "Test dfree without inherit owner - user1 at user1" \
|
||||
dfq "subdir3/user1" "confdfqp subdir3/user1 confdfqp subdir3/user2" "160 1024. 16" \
|
||||
-Uuser1%$PASSWORD --option=clientmaxprotocol=SMB3 || failed=`expr $failed + 1`
|
||||
test_smbclient_dfree "Test dfree without inherit owner - user1 at user2" \
|
||||
dfq "subdir3/user2" "confdfqp subdir3/user1 confdfqp subdir3/user2" "160 1024. 16" \
|
||||
-Uuser1%$PASSWORD --option=clientmaxprotocol=SMB3 || failed=`expr $failed + 1`
|
||||
test_smbclient_dfree "Test dfree with inherit owner - user1 at user1" \
|
||||
dfq_owner "subdir3/user1" "confdfqp subdir3/user1 confdfqp subdir3/user2" "160 1024. 16" \
|
||||
-Uuser1%$PASSWORD --option=clientmaxprotocol=SMB3 || failed=`expr $failed + 1`
|
||||
test_smbclient_dfree "Test dfree with inherit owner - user1 at user2" \
|
||||
dfq_owner "subdir3/user2" "confdfqp subdir3/user1 confdfqp subdir3/user2" "164 1024. 20" \
|
||||
-Uuser1%$PASSWORD --option=clientmaxprotocol=SMB3 || failed=`expr $failed + 1`
|
||||
|
||||
setup_conf
|
||||
exit $failed
|
||||
|
@ -184,7 +184,7 @@ for env in ["nt4_dc"]:
|
||||
for env in ["fileserver"]:
|
||||
plantestsuite("samba3.blackbox.preserve_case (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
|
||||
plantestsuite("samba3.blackbox.dfree_command (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
|
||||
plantestsuite("samba3.blackbox.dfree_quota (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_quota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcquotas])
|
||||
plantestsuite("samba3.blackbox.dfree_quota (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_quota.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3, smbcquotas, smbcacls])
|
||||
plantestsuite("samba3.blackbox.valid_users (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_valid_users.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3])
|
||||
plantestsuite("samba3.blackbox.offline (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_offline.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/offline', smbclient3])
|
||||
plantestsuite("samba3.blackbox.shadow_copy2 (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shadow_copy.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbclient3])
|
||||
|
Loading…
x
Reference in New Issue
Block a user