windows xp 组策略之安全篇Windows安全

时间:2023-11-18 07:33:27 其他范文 收藏本文 下载本文

windows xp 组策略之安全篇Windows安全(锦集3篇)由网友“wqzhw”投稿提供,下面是小编收集整理的windows xp 组策略之安全篇Windows安全,仅供参考,希望能够帮助到大家。

windows xp 组策略之安全篇Windows安全

篇1:windows xp 组策略之安全篇Windows安全

有时候我们的电脑会被其他来用户使用,

或许你的某些资料不想被别人看到,

或者别人会在不经意间更改了你的系统设置,

有没有好的办法防止呢?

我们知道在注册表中我们可以更改系统的很多设置,

但修改起来很麻烦,而组策略把各种配置模块集中在一起,

方便了用户的设置,

打开方式:运行――gpedit.msc

界面:

需要说明的是这里的“计算机配置”是对整个计算机中的系统配置进行设置的,是对计算机中所有用户的运行环境起作用;而“用户配置”则是对当前用户的系统配置进行设置的,它仅对当前用户起作用,步入正题。

1、隐藏电脑的驱动器

位置:用户配置\管理模板\windows组件\windows资源管理器\

启用后,发现我的电脑里的磁盘驱动器全不见了,但在地址栏输入盘符后,仍然可以访问,如果再把下面的防止从“我的电脑”访问驱动器设置为启用,在地址栏输入盘符就无法访问了,但在运行里直接输入cmd,在dos下仍然可以看见,接下来就是把cmd命令也禁用了。

位置:用户配置\管理模板\系统\

2、禁用注册表

位置:用户配置\管理模板\系统\

3、禁用控制面板

位置:用户配置\管理模板\系统\

如果你只想显示隐藏某些配置,就选择下面的

如想在控制面板中隐藏internet选项,则在隐藏控制面板程序里添加inetcpl.cpl,具体名称可查看windows\system32里以cpl结尾的文件。

4、隐藏文件夹

平时我们隐藏文件夹后,别人只需在文件夹选项里显示所有文件,就可以看见了,我们可以在组策略里删除这个选项:

位置:用户配置\管理模板\windows组件\windows资源管理器\

5、关闭缩略图缓存

有时我们在文件夹中放过图片,后来移除了,但以缩略图缓存仍然能被其他人读取。

位置:用户配置\管理模板\windows组件\windows资源管理器\

6、去除开始菜单中的“文档”菜单

开始菜单中的文档一栏,会记载我们曾经编辑过的文档,我们可以去掉这个菜单:

位置:用户配置\管理模板\windows组件\任务栏和“开始”菜单\

7、隐藏‘屏幕保护程序“”选项卡

有时我们设置了屏幕密码保护,但很容易被人修改,我们可以隐藏这一选项,

用户配置\管理模板\控制面板\显示、

8、禁止更改tcp/ip属性

我们设定的ip地址可能会被更改,那么只要关闭它的属性页就可以了。

位置:用户配置\管理模板\网络\网络连接

把下面两项设为启用:

关 键 字:Windows安全

篇2:Windows XP 组策略之安全篇服务器教程

有时候我们的电脑会被其他来用户使用,

或许你的某些资料不想被别人看到,

或者别人会在不经意间更改了你的系统设置,

有没有好的办法防止呢?

我们知道在注册表中我们可以更改系统的很多设置,

但修改起来很麻烦,而组策略把各种配置模块集中在一起,

方便了用户的设置,

打开方式:运行——gpedit.msc

界面:

需要说明的是这里的“计算机配置”是对整个计算机中的系统配置进行设置的,是对计算机中所有用户的运行环境起作用;而“用户配置”则是对当前用户的系统配置进行设置的,它仅对当前用户起作用,步入正题,

1、隐藏电脑的驱动器

位置:用户配置管理模板Windows组件Windows资源管理器

启用后,发现我的电脑里的磁盘驱动器全不见了,但在地址栏输入盘符后,仍然可以访问,如果再把下面的防止从“我的电脑”访问驱动器设置为启用,在地址栏输入盘符就无法访问了,但在运行里直接输入cmd,在Dos下仍然可以看见,接下来就是把CMD命令也禁用了。

位置:用户配置管理模板系统

2、禁用注册表

位置:用户配置管理模板系统

篇3:IOS开发多线程开发之线程安全篇

前言:一块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源,比如多个线程访问同一个对象、同一个变量、同一个文件和同一个方法等,因此当多个线程访问同一块资源时,很容易会发生数据错误及数据不安全等问题。因此要避免这些问题,我们需要使用“线程锁”来实现。

本文主要论述IOS创建锁的方法(总结):

一、使用关键字

1)@synchronized(互斥锁)

优点:使用@synchronized关键字可以很方便地创建锁对象,而且不用显式的创建锁对象。

缺点:会隐式添加一个异常处理来保护代码,该异常处理会在异常抛出的时候自动释放互斥锁。而这种隐式的异常处理会带来系统的额外开销,为优化资源,你可以使用锁对象。

二、“Object-C”语言

1)NSLock(互斥锁)

2)NSRecursiveLock(递归锁)

条件锁,递归或循环方法时使用此方法实现锁,可避免死锁等问题。

3)NSConditionLock(条件锁)

使用此方法可以指定,只有满足条件的时候才可以解锁。

4)NSDistributedLock(分布式锁)

在IOS中不需要用到,也没有这个方法,因此本文不作介绍,这里写出来只是想让大家知道有这个锁存在。

如果想要学习NSDistributedLock的话,你可以创建MAC OS的项目自己演练,方法请自行Google,谢谢。

三、C语言

1)pthread_mutex_t(互斥锁)

2)GCD-信号量(“互斥锁”)

3)pthread_cond_t(条件锁)

线程安全 —— 锁

一、使用关键字:

1)@synchronized

// 实例类person

Person *person = [[Person alloc] init];

// 线程A

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

@synchronized(person) {

[person personA];

[NSThread sleepForTimeInterval:3]; // 线程休眠3秒

}

});

// 线程B

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

@synchronized(person) {

[person personB];

}

});

关键字@synchronized的使用,锁定的对象为锁的唯一标识,只有标识相同时,才满足互斥。如果线程B锁对象person改为self或其它标识,那么线程B将不会被阻塞。你是否看到@synchronized(self) ,也是对的。它可以锁任何对象,描述为@synchronized(anObj)。

二、Object-C语言

1)使用NSLock实现锁

// 实例类person

Person *person = [[Person alloc] init];

// 创建锁

NSLock *myLock = [[NSLock alloc] init];

// 线程A

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

[myLock lock];

[person personA];

[NSThread sleepForTimeInterval:5];

[myLock unlock];

});

// 线程B

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

[myLock lock];

[person personB];

[myLock unlock];

});

程序运行结果:线程B会等待线程A解锁后,才会去执行线程B。如果线程B把lock和unlock方法去掉之后,则线程B不会被阻塞,这个和synchronized的一样,需要使用同样的锁对象才会互斥。

NSLock类还提供tryLock方法,意思是尝试锁定,当锁定失败时,不会阻塞进程,而是会返回NO。你也可以使用lockBeforeDate:方法,意思是在指定时间之前尝试锁定,如果在指定时间前都不能锁定,也是会返回NO。

注意:锁定(lock)和解锁(unLock)必须配对使用

2)使用NSRecursiveLock类实现锁

// 实例类person

Person *person = [[Person alloc] init];

// 创建锁对象

NSRecursiveLock *theLock = [[NSRecursiveLock alloc] init];

// 创建递归方法

static void (^testCode)(int);

testCode = ^(int value) {

[theLock tryLock];

if (value >0)

{

[person personA];

[NSThread sleepForTimeInterval:1];

testCode(value - 1);

}

[theLock unlock];

};

//线程A

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

testCode(5);

});

//线程B

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

[theLock lock];

[person personB];

[theLock unlock];

});

如果我们把NSRecursiveLock类换成NSLock类,那么程序就会死锁。因为在此例子中,递归方法会造成锁被多次锁定(Lock),所以自己也被阻塞了。而使用NSRecursiveLock类,则可以避免这个问题。

3)使用NSConditionLock(条件锁)类实现锁:

使用此方法可以创建一个指定开锁的条件,只有满足条件,才能开锁。

// 实例类person

Person *person = [[Person alloc] init];

// 创建条件锁

NSConditionLock *conditionLock = [[NSConditionLock alloc] init];

// 线程A

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

[conditionLock lock];

[person personA];

[NSThread sleepForTimeInterval:5];

[conditionLock unlockWithCondition:10];

});

// 线程B

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

[conditionLock lockWhenCondition:10];

[person personB];

[conditionLock unlock];

});

线程A使用的是lock方法,因此会直接进行锁定,并且指定了只有满足10的情况下,才能成功解锁,

unlockWithCondition:方法,创建条件锁,参数传入“整型”。lockWhenCondition:方法,则为解锁,也是传入一个“整型”的参数。

三、C语言

1)使用pthread_mutex_t实现锁

注意:必须在头文件导入:#import

// 实例类person

Person *person = [[Person alloc] init];

// 创建锁对象

__block pthread_mutex_t mutex;

pthread_mutex_init(&mutex, NULL);

// 线程A

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

pthread_mutex_lock(&mutex);

[person personA];

[NSThread sleepForTimeInterval:5];

pthread_mutex_unlock(&mutex);

});

// 线程B

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

pthread_mutex_lock(&mutex);

[person personB];

pthread_mutex_unlock(&mutex);

});

实现效果和上例的相一致

2)使用GCD实现“锁”(信号量)

GCD提供一种信号的机制,使用它我们可以创建“锁”(信号量和锁是有区别的,具体请自行百度)。

// 实例类person

Person *person = [[Person alloc] init];

// 创建并设置信量

dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);

// 线程A

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);

[person personA];

[NSThread sleepForTimeInterval:5];

dispatch_semaphore_signal(semaphore);

});

// 线程B

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);

[person personB];

dispatch_semaphore_signal(semaphore);

});

效果也是和上例介绍的相一致。

我在这里解释一下代码。dispatch_semaphore_wait方法是把信号量加1,dispatch_semaphore_signal是把信号量减1。

我们把信号量当作是一个计数器,当计数器是一个非负整数时,所有通过它的线程都应该把这个整数减1。如果计数器大于0,那么则允许访问,并把计数器减1。如果为0,则访问被禁止,所有通过它的线程都处于等待的状态。

3)使用POSIX(条件锁)创建锁

// 实例类person

Person *person = [[Person alloc] init];

// 创建互斥锁

__block pthread_mutex_t mutex;

pthread_mutex_init(&mutex, NULL);

// 创建条件锁

__block pthread_cond_t cond;

pthread_cond_init(&cond, NULL);

// 线程A

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

pthread_mutex_lock(&mutex);

pthread_cond_wait(&cond, &mutex);

[person personA];

pthread_mutex_unlock(&mutex);

});

// 线程B

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

pthread_mutex_lock(&mutex);

[person personB];

[NSThread sleepForTimeInterval:5];

pthread_cond_signal(&cond);

pthread_mutex_unlock(&mutex);

});

效果:程序会首先调用线程B,在5秒后再调用线程A。因为在线程A中创建了等待条件锁,线程B有激活锁,只有当线程B执行完后会激活线程A。

pthread_cond_wait方法为等待条件锁。

pthread_cond_signal方法为激动一个相同条件的条件锁。

简单总结:

一般来说,如果项目不大,我们都会偷点懒,直接使用关键字@synchronized建立锁,懒人方法。其次可以使用苹果提供的OC方法,最后才会去使用C去建立锁。

Windows XP 组策略之安全篇服务器教程

Windows系统安全设置方法中级安全篇服务器教程

Windows组策略保障共享目录安全

读《晁错论》有感

魏征《谏太宗十思疏》的阅读答案及原文翻译赏析

初中八年级下册信息技术教学工作计划

临床医学专业自荐信

梁实秋经典散文赏析:雅舍

丰乐亭记阅读答案

丰乐亭记 阅读答案

windows xp 组策略之安全篇Windows安全
《windows xp 组策略之安全篇Windows安全.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【windows xp 组策略之安全篇Windows安全(锦集3篇)】相关文章:

服务器安全配置讲座[转]服务器教程2023-05-16

从零开始配置服务器服务器教程2023-02-26

informix 的每个版本的安装问题!Windows系统2022-05-28

霓虹灯基础知识学习2023-10-01

选修语文《谏太宗十思疏》教案2023-03-09

雅舍梁实秋书评2023-09-10

梁实秋雅舍小品解读2023-06-20

欧阳修《丰乐亭记》文言文译文2023-03-15

六年级采薇课件2023-03-29

《谏太宗十思疏》 教学设计示例教案2022-05-19

点击下载本文文档