组保留的标签 余下为需要删除的标签
unset($oldtag[$key]);
}
}
}
if (!empty($oldtag)) {
$tagids = array();
foreach ($oldtag as $tagid => $tagname) {
$tagids[] = $tagid;
}
well_oldtag_delete($tagids, $tid);
}
$r = well_tag_process($tid, $fid, $create_tag, $tagarr);
return $r;
}
// 删除标签和绑定的主题
function well_oldtag_delete($tagids, $tid)
{
$pagesize = count($tagids);
$arrlist = well_tag_find_by_tagids($tagids, 1, $pagesize);
$delete_tagids = array(); // 删除
$tagids = array();
$n = 0;
foreach ($arrlist as $val) {
++$n;
if (1 == $val['count']) {
// 只有一个主题
$delete_tagids[] = $val['tagid'];
} else {
$tagids[] = $val['tagid'];
}
}
!empty($delete_tagids) and well_tag_delete($delete_tagids);
$arlist = well_tag_thread_find_by_tid($tid, 1, $n);
if ($arlist) {
$ids = array();
foreach ($arlist as $val) $ids[] = $val['id'];
well_tag_thread_delete($ids);
}
!empty($tagids) and well_tag_update($tagids, array('count-' => 1));
}
// 标签数据处理 $arr=新提交的数组 $tagarr=保留的旧标签
function well_tag_process($tid, $fid, $new_tags = array(), $tagarr = array())
{
if (empty($tid)) return '';
// 新标签处理入库
if ($new_tags) {
$threadarr = array();
$tagids = array();
$i = 0;
$size = 5;
$n = count($tagarr);
$n = $n > $size ? $size : $size - $n;
foreach ($new_tags as $name) {
++$i;
$name = trim($name);
$name = stripslashes($name);
$name = strip_tags($name);
$name = str_replace(array(' ', '#', "@", "$", "%", "^", '&', '·', '<', '>', ';', '`', '~', '!', '¥', '……', ';', '?', '?', '-', '—', '_', '=', '+', '.', '{', '}', '|', ':', ':', '、', '/', '。', '[', ']', '【', '】', '‘', ' ', ' ', ' ', ' ', ' '), '', $name);
$name = htmlspecialchars($name, ENT_QUOTES);
if ($name && $i <= $n) {
// 查询标签
$read = well_tag_read_name($name);
if ($read) {
// 存在 count+1
$tagids[] = $read['tagid'];
} else {
// 入库
$arr = array('name' => $name, 'count' => 1);
$tagid = well_tag_create($arr);
FALSE === $tagid and message(-1, lang('create_failed'));
$read = array('tagid' => $tagid, 'name' => $name);
}
$tag_thread = array('tagid' => $read['tagid'], 'tid' => $tid);
$threadarr[] = $tag_thread;
$tagarr[$read['tagid']] = $read['name'];
}
}
!empty($threadarr) and tag_thread_big_insert($threadarr);
!empty($tagids) and well_tag_update($tagids, array('count+' => 1));
}
$json = empty($tagarr) ? '' : xn_json_encode($tagarr);
return $json;
}
?>
WindowsServer2012高级文件服务器管理编程频道|福州电脑网
WindowsServer2012高级文件服务器管理
系统教程410
更新时间:2026-04-05 23:10:01 2023年11月27日发(作者:)
WindowsServer2012⾼级⽂件服务器管理-动态访问控制
【引⼦】
领导说:公司的⽂档对公司的发展⾄关重要,⼀定要保障公司⽂档的安全性和可⽤性,绝不可以泄密。
作者说:我的⽂档放在公司的服务器上安全吗?权限是如何控制的呢?
⽤户说:我想访问XX⽂档,为什么没有权限呢?我要申请权限。
安全,就像给IT穿⼀件棉袄,虽然⾏动不便,但是很暖和。⾯对着这种“领导要求‘暖和’,⽤户要求‘⽅便’“的局⾯,我们的IT管理
员常常处于尴尬的地位,在各⽅⼒量的较量中,做着⽆聊的事情。
随着Windows Server 2012的发布,⼀项⾮常强⼤的⽂件服务器管理⼯具⾛进了我们的视野,那就是动态访问控制(DAC),本⽂,
将为您展⽰DAC的强⼤所在……
【正⽂】
1.功能概述1.
⼤多数企业,会将⾃⼰的数据存储在⽂件服务器,因此,IT管理员必须提供适当的安全和访问控制,在以前的Windows 服务器版本
中,IT管理员主要的控制⼿段为NTFS的安全权限。但是在⽐较复杂的环境中,NTFS权限的管理,很不⽅便。我有⼀个客户,员⼯数千⼈,
但是权限管理⾮常细致,以⾄于,出现个别⽤户⾪属于上千个组的情况。不仅仅是管理员的管理⼯作⾮常⿇烦,早期的Windows 版本还有
每⽤户最多⾪属于1015个组的限制。
Domain users
JerryTrainerDomain users
Win7/
⽤户
Domain Computers
Manager-WKS
Domain Computers
Manager-WKS
计算机
Win8/
6、打开资源浏览器,打开C:docs,查看doc1的属性,分类标签中,Confidentiality属性为空,⽽doc2的Confidentiality属性
为High。
7、打开资源浏览器,打开C:,并打开Trainer⽂件夹的属性,在分类标签中,将Department的值设为Trainer。
7.配置中央访问规则和中央访问策略7.
1、以管理员⾝份登录DC1,打开AD管理中⼼,在动态访问控制中,打开Central Access Rules容器。
2、利⽤如下配置信息创建访问规则:
6、打开资源浏览器,浏览到c:docs,打开⽂件夹的属性,在“安全”标签中,点击⾼级,在中央策略标签中,选择“保护⽂档”这条
策略。
7、同上⾯的操作,将“匹配部门”这条策略,分配给c:Trainer这个⽂件夹。
9.验证动态访问控制9.
1、以tom⾝份登录Win8客户端,访问。
2、由于tom的部门属性不等于Trainer,所以⽆法访问trainer的共享;
3、由于tom⾪属于组manager,并且Win8客户端⾪属于组manager-WKS,所以tom可以访问docs1和doc2。
4、切换⽤户,以jerry⾝份登录Win8,由于jerry的部门等于Trainer,所以可以打开Trainer共享⽂件夹
本文发布于:2023-11-27,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:打开组策略
发布评论