配置放在什麼目錄中
Ⅰ linux中的配置文件是什麼
一般在用戶/root 文件下面,.config
linux中的配置文件一般都是這種格式的,前面有個.
類似windows中的隱藏文件。
Ⅱ linux系統中網口網路配置文件存放在系統中哪個一級目錄下
網卡配置文件默認存放在/etc這個一級目錄下
/etc/sysconfig/network-scripts/ifcfg-eth0
以上linux6.x系列通用配置文件
Ⅲ 二、springboot配置文件
1. 配置文件
Spring Boot使用一個全局的配置文件
application.properties
application.yml
配置文件的作用:修改Spring Boot自動配置的默認值,SpringBoot在底層都給我們自動
配置好。有什麼配置項,可以移步官方文檔
配置文件一般放在src/main/resources目錄或者類路徑/confifig下,當然還有很多位置可
以放,它們會有不同優先順序,後面會講到。
YAML (YAML Ain't Markup Language)
簡單介紹
<!--綁定配置文件處理器,配置文件進行綁定的時候就會有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- 將應用打包成一個可執行Jar包,直接使用java -jar xxxx的命令來執行 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>以前的配置文件:大多是xml
.yml是YAML語言的文件,以數據為中 心,比json、xml等更適合做配置文件
全局配置文件的可以對一些默認配置值進行修改
配置實例
xml:
yml:
2. YAML語法
基本語法
K:(空格)V 標識一對鍵值對
以空格的縮進來控制層級關系
只要是左對齊的一列數據,都是同一層級的
屬性和值也是大小寫敏感
實例:
值的寫法
普通的值
k: v 字面量直接來寫,字元串默認不用添加單引號
" " 雙引號 不會轉義字元串裡面的特殊字元;
<server>
<port>8081</port>
</server>
server:
port: 8081
server:
port: 8081
path: /hello // 冒號後面的空格不要拉下' ' 單引號 會轉義字元,特殊字元最終是一個普通的字元串
對象
普通寫法:
行內寫法
frends:{ lastName: zhang,age: 18 }
Map
示例:
maps: {k1: v1,k2: v2}
數組
普通寫法:
pets: // var onj = {pets: ['cat','pig','dog']}
- cat
- pig
- dog
行內寫法
pets:[cat, pig, dog]
配置文件獲取
將配置文件中的每一個值映射到此組件中
1. Persion
name: "wang \n qian" // 輸出:wang 換行 qian
frends:
lastName: zhang
age: 20package com.wrq.boot.bean;
@Component
@ConfigurationProperties(prefix = "persion")
public class Persion {
private String name;
private int age;
private double weight;
private boolean boss;
private Date birth;
private Map<String,Object> maps;
private List<Object> list;
private Dog dog;
此處,這個bean的getter、setter和tostring方法已經省略,千萬不能忽略!
}
@ConfifigurationProperties 意思是:我們類裡面的屬性和配置文件中的屬性做綁定
不使用此註解,可以在bean的屬性添加@value()註解,如下:
@Component
// @ConfigurationProperties(prefix = "persion")
public class Persion {
@value("${persion.name}") // $()讀取配置文件、環境變數中的值
private String name;
@value("#{11*2}") // #{SpEL} 採用表達式
private int age;
@value("true") // 直接賦值
private boolean boos;
}
此處採用@ConfifigurationProperties的方式,@value()和@ConfifigurationProperties的
區別見下方表格。prefifix = "persion" 配置文件中那個下面的屬性來一一映射
@Component 如果想要這個註解起作用,必須放到容器裡面
2. Dog
package com.wrq.boot.bean;
public class Dog { // 用作Persion中的屬性
private String name;
private int age;
此處,這個bean的getter、setter和tostring方法已經省略,千萬不能忽略!
}
3. 配置文件
方式一: application.yml
persion:
name: 王大錘
age: 18
weight: 125
boss: false
birth: 2018/5/5
maps: {k1: v1,k2: v2}
list:
- wangli
- wang
dog:
name: xiaogou
age: 2
方式二: application.propertiespersion.name = 王大錘
persion.age = 18
persion.weight = 125
persion.boss = false
persion.birth = 2018/5/5
persion.maps.k1 = v1
persion.maps.k2 = v2
persion.dog.name = xiaogou
persion.dog.age = 15
4. 測試類:BootApplicationTests
package com.wrq.boot;
@RunWith(SpringRunner.class)
@SpringBootTest
public class BootApplicationTests {
@Autowired
Persion persion;
@Test
public void contextLoads() {
System.out.print(persion);
}
}
5. 運行 BootApplicationTests方法
控制台列印:
application.yml的結果:
Persion{name='王大錘', age=18, weight=125.0, boss=false, birth=Sat May
05 00:00:00 CST 2018, maps={k1=v1, k2=v2}, list=[wangli, wang],
dog=Dog{name='xiaogou', age=2}}
application.properties的結果:
Persion{name='��Ǭ', age=18, weight=125.0, boss=false, birth=Sat
May 05 00:00:00 CST 2018, maps={k2=v2, k1=v1}, list=[wangli, wang],
dog=Dog{name='xiaogou', age=15}}
把Bean中的屬性和配置文件綁定,通過yml文件和properties都可以做到,但是properties
文件出現亂碼。
properties中文讀取亂碼:File->Settings->File Encodings最底部選utf-8、Tranparent打
上勾
註解比較
@value和@ConfifigurationProperties獲取值比較
名詞解釋:
鬆散綁定
last-name和lastName都可以獲取導致,則代表支持鬆散綁定
JSR303@Component
@ConfigurationProperties(prefix = "persion") // 如果使用的是@value注入值
時,無法使用校驗
@Validated // 添加此註解
public class Persion {
@Email // 配置文件書寫的屬性必須是郵箱格式,不符合報錯!
private String name;
}
復雜類型封裝
如果獲取配置文件中map的值時,@value是獲取不到值的
@value("${persion.maps}") // 由於使用的是@value,無法獲取配置文件中的map
private Map<String,Object> maps;
@PropertySource
@PropertySource:載入指定配置文件
@ConfifigurationProperties()默認是從全局配置文件中獲取值,也就是
application.properties這個文件中獲取值。
如果做的配置很多,全局的配置文件就會特別大,為了方便管理。我會創建不同的配置文
件定向管理不同的配置。
如創建persion.properties文件單獨存放persion需要的配置
@PropertySource就是用來導入創建的配置文件
示例:
1. persion.properties
同時把兩個全局的配置中關於Persion的配置都注釋掉persion.name = 王弟弟
persion.age = 18
persion.weight = 125
persion.boss = false
persion.birth = 2018/5/5
persion.maps.k1 = v1
persion.maps.k2 = v2
persion.dog.name = xiaogou
persion.dog.age = 15
2. Persion
package com.wrq.boot.bean;
@Component
@PropertySource(value = {"classpath:persion.properties"})
@ConfigurationProperties(prefix = "persion")
public class Persion {
private String name;
private int age;
private double weight;
private boolean boss;
private Date birth;
private Map<String,Object> maps;
private List<Object> list;
private Dog dog;
此處,這個bean的getter、setter和tostring方法已經省略,千萬不能忽略!
}
這樣運行測試類,控制台就可以列印persion.properties中的數據。
通過下面的註解,把類路徑下的persion.properties載入進來。並且把persion開頭的數
據進行綁定。
@PropertySource(value = {"classpath:persion.properties"})@ConfifigurationProperties(prefifix = "persion")
@ImportResource
@ImportResource:導入Spring的配置文件,讓配置文件生效。
示例:
1. com.wrq.boot.service
package com.wrq.boot.service;
/**
* Created by wangqian on 2019/1/12.
*/
public class HelloService {
}
2. resources目錄手動建立bean.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="helloService" class="com.wrq.boot.service.HelloService">
</bean>
</beans>
3. 測試類
package com.wrq.boot;
@RunWith(SpringRunner.class)
@SpringBootTest
public class BootApplicationTests {
@Autowired
ApplicationContext ioc;@Test
public void testConfig() {
boolean b = ioc.containsBean("helloService");
System.out.print(b);
}
}
試圖通過添加一個Spring的配置文件bean.xml來把HelloService注入進去。
運行測試類結果:false
結果表明IoC容器中並不包含HelloService,即:配置文件bean.xml沒有生效
解決方式
方式一: 主程序中進行配置@ImportResouece註解
package com.wrq.boot;
@ImportResource(locations = {"classpath:bean.xml"}) // 通過此配置是
bean.xml生效
@SpringBootApplication
public class BootApplication {
public static void main(String[] args) {
//應用啟動起來
SpringApplication.run(BootApplication.class, args);
}
}
方法二:通過配置類實現,這種方式也是Spring Boot推薦的
1. com.wrq.boot.confifigpackage com.wrq.boot.config;
/**
* Created by wangqian on 2019/1/12.
*/
@Configuration
public class MyConfig {
// 將方法的返回值添加到容器之中,並且容器中這個組件的id就是方法名
@Bean
public HelloService helloService(){
System.out.print("通過@Bean給容器添加組件了..");
return new HelloService();
}
}
@Confifiguration標注這是一個配置類
通過@Bean註解,將方法的返回值添加到容器之中,並且容器中這個組件的id就是方
法名
2. 把主程序類中@ImportResource()配置注釋掉
3. 測試成功,添加了HelloService()組件
3. 配置文件佔位符
隨機數
RandomValuePropertySource:配置文件中可以使用隨機數
${random.value}
${random.int}
${random.long}
${random.uuid}
${random.int(10)}
${random.int[1024,65536]}
屬性配置佔位符可以在配置文件中引用前面配置過的屬性(優先順序前面配置過的這里都能用)
${app.name:默認值}來指定找不到屬性時的默認值
persion.name = 王弟弟${random.uuid}
persion.age = ${random.int}
persion.dog.name = ${persion.name}_dog
4. Profifile 多環境支持
Profifile是Spring對不同環境提供不同配置功能的支持,可以通過激活、 指定參數等方式
快速切換環境
1. 多Profifile的方式
格式:application-{profifile}.properties/yml
application-dev.properties
application-prod.properties
默認採用application.properties配置文件,如果使用別的,需要激活:
1. application.properties中配置:
# 激活application-dev.properties配置文件
spring.profiles.active=dev
2. application-dev.properties:
server.port=8082
3. 運行BootApplication主程序:
2019-01-12 20:46:09.345 INFO 14404 --- [main]
s.b.c.e.t. : Tomcat started on port(s):
8082 (http)
2. 多文檔塊的方式
除了上方多Profifile的方式來切換環境,也可以通過YAML多文檔塊的方式。示例:
application.yml:
server:
port: 8081
spring:
profiles:
active: dev
---
spring:
profiles: dev
server:
port: 8083
---
spring:
profiles: prod
server:
port: 8084
3. 激活指定Profifile
1. application.properties中配置:
# 激活application-dev.properties配置文件
spring.profiles.active=dev
2. application.yml中配置
server:
port: 8081
spring:
profiles:
active: dev
---
spring:
profiles: dev
server:
port: 80833. 啟動配置-參數
在IDE中,類似於配置tomcat的地方,按下方配置:
Program arguments:--spring.profiles.active=dev
4. 啟動配置-虛擬機
在IDE中,類似於配置tomcat的地方,按下方配置:
VM options:-Dspring-profiles-active=dev
5. 命令行 使用Maven的package命令打包,移動到jar的目錄。
java -jar spring-boot-project-config.jar --spring.profiles.active=dev
5. 配置文件優先順序
GitHub對應項目:boot-confifig-position
優先順序
Spring Boot 啟動會掃描以下位置的application.properties或者 application.yml文件作
為Spring boot的默認配置文件
fifile:./confifig/ (項目根目錄confifig文件夾下的配置文件)
fifile:./ (項目根目下的配置文件)
classpath:/confifig/ (resources目錄confifig文件夾下的配置文件)
classpath:/ (resources目下的配置文件)
以上是按照優先順序從高到低的順序,所有位置的文件都會被載入,高優先順序配置內容會覆
蓋低優先順序配置內容,形成互補配置。
默認配置
我們也可以通過配置spring.confifig.location來改變默認配置。
項目打包後以後,我們可以使用命令行參數的形式,啟動項目的時候來指定配置文件的新
位置;指定配置文件和默認載入的這些配置文件共同起作用,形成互補配置。
1. Maven->package對項目打包2. 把待使用的配置文件放在本地文件夾中,如:D:/application.properties
3. 命令行執行命令
java -jar boot-config-position-xxxxxx.jar --
spring.config.location=D:/application.properties
這樣即使項目上線了,我們也可以通過修改本地的配置文件,使用一行命令即可,極大方
便了運維人員。
6. 外部配置載入順序
Spring Boot 支持多種外部配置方式
可以從以下位置載入配置,優先順序從高到低,高優先順序配置覆蓋低優先順序的,所以配置形
成互補配置。
1. 命令行參數
java -jar boot-config-position-xxxxxx.jar --server.port // 多個配置用空格
隔開
2. 來自java:comp/env的JNDI屬性
3. Java系統屬性(System.getProperties())
4. 操作系統環境變數
5. RandomValuePropertySource配置的random.*屬性值
6. jar包外部的application-{profifile}.properties或application.yml(帶spring.profifile)配
置文件
7. jar包內部的application-{profifile}.properties或application.yml(帶spring.profifile)配
置文件
8. jar包外部的application.properties或application.yml(不帶spring.profifile)配置文件
9. jar包內部的application.properties或application.yml(不帶spring.profifile)配置文件
10. @Confifiguration註解類上的@PropertySource
11. 通過SpringApplication.setDefaultProperties指定的默認屬性
注意:從jar包外向jar包內尋找,優先載入profifile最後載入不帶profifile,更多參考官方文
檔
7. 自動配置原理GitHub對應項目:boot-confifig-autoconfifig
1. 配置文件寫什麼?
配置文件可配置屬性查閱
2. 什麼是註解,如何實現一個註解?
關於註解的機制和相關原理可以移步此篇博客
3. 配置原理解析
我們運行Spring Boot應用是從main方法啟動,在主程序類上有一個
@SpringBootApplication註解。
@SpringBootApplication是一個復合註解,包括@ComponentScan,和
@SpringBootConfifiguration,@EnableAutoConfifiguration。
@SpringBootConfifiguration繼承自@Confifiguration,二者功能也一致,標注當前類
是配置類,並會將當前類內聲明的一個或多個以@Bean註解標記的方法的實例納入到
srping容器中,並且實例名就是方法名。
@EnableAutoConfifiguration的作用啟動自動的配置,@EnableAutoConfifiguration注
解的意思就是SpringBoot根據你添加的jar包來配置你項目的默認配置,比如根據
spring-boot-starter-web ,來判斷你的項目是否需要添加了webmvc和tomcat,就
會自動的幫你配置web項目中所需要的默認配置
@ComponentScan,掃描當前包及其子包下被@Component,@Controller,
@Service,@Repository註解標記的類並納入到spring容器中進行管理。是以前的co
ntext:component-scan(以前使用在xml中使用的標簽,用來掃描包配置的平行支
持)。
@SpringBootApplication註解分析
配置原理視頻講解
4. 自動配置類判斷
在配置文件properties中設置:debug=true 來讓控制台列印自動配置報告,方便的得知
那些配置類生效。
=========================
AUTO-CONFIGURATION REPORT
=========================Positive matches:
-----------------
matched:
- @ConditionalOnClass found required class
'org.springframework.web.servlet.DispatcherServlet';
@ConditionalOnMissingClass did not find unwanted class
(OnClassCondition)
- @ConditionalOnWebApplication (required) found 'session' scope
(OnWebApplicationCondition)
Negative matches:
-----------------
ActiveMQAutoConfiguration:
Did not match:
- @ConditionalOnClass did not find required classes
'javax.jms.ConnectionFactory',
'org.apache.activemq.ActiveMQConnectionFactory' (OnClassCondition)
Ⅳ 系統配置的配置文件
內核本身也可以看成是一個「程序」。為什麼內核需要配置文件?內核需要了解系統中用戶和組的列表,進而管理文件許可權(即根據許可權判定特定用戶(UNIX_USERS)是否可以打開某個文件)。注意,這些文件不是明確地由程序讀取的,而是由系統庫所提供的一個函數讀取,並被內核使用。例如,程序需要某個用戶的(加密過的)密碼時不應該打開 /etc/passwd 文件。相反,程序應該調用系統庫的getpw() 函數。這種函數也被稱為系統調用。打開 /etc/passwd 文件和之後查找那個被請求的用戶的密碼都是由內核(通過系統庫)決定的。
除非另行指定,Red Hat Linux 系統中大多數配置文件都在 /etc 目錄中。配置文件可以大致分為下面幾類:
訪問文件
/etc/host.conf 告訴網路域名伺服器如何查找主機名。(通常是 /etc/hosts,然後就是名稱伺服器;可通過 netconf 對其進行更改。)
/etc/hosts 包含(本地網路中)已知主機的一個列表。如果系統的 IP 不是動態生成,就可以使用它。對於簡單的主機名解析(點分表示法),在請求 DNS 或 NIS 網路名稱伺服器之前,/etc/hosts.conf 通常會告訴解析程序先查看這里。
/etc/hosts.allow 請參閱 hosts_access 的聯機幫助頁。至少由 tcpd 讀取。
/etc/hosts.deny 請參閱 hosts_access 的聯機幫助頁。至少由 tcpd 讀取。
引導和登錄/注銷
/etc/issue & /etc/issue.net 這些文件由 mingetty(和類似的程序)讀取,用來向從終端(issue)或通過 telnet 會話(issue.net)連接的用戶顯示一個「welcome」字元串。 它們包括幾行聲明 Red Hat 版本號、名稱和內核ID 的信息。它們由 rc.local 使用。
/etc/redhat-release 包括一行聲明 Red Hat 版本號和名稱的信息。由 rc.local 使用。
/etc/rc.d/rc 通常在所有運行級別運行,級別作為參數傳送。 例如,要以圖形(Graphics)模式(X-Server)引導機器,請在命令行運行下面的命令:init 5。運行級別 5 表示以圖形模式引導系統。
/etc/rc.d/rc.local 非正式的。可以從 rc、rc.sysinit 或 /etc/inittab 調用。
/etc/rc.d/rc.sysinit 通常是所有運行級別的第一個腳本。
/etc/rc.d/rc/rcX.d 從 rc 運行的腳本(X 表示 1 到 5 之間的任意數字)。這些目錄是特定「運行級別」的目錄。 當系統啟動時,它會識別要啟動的運行級別,然後調用該運行級別的特定目錄中存在的所有啟動腳本。例如,系統啟動時通常會在引導消息之後顯示「entering run-level 3」的消息;這意味著 /etc/rc.d/rc3.d/ 目錄中的所有初始化腳本都將被調用。
文件系統
內核提供了一個介面,用來顯示一些它的數據結構,這些數據結構對於決定諸如使用的中斷、初始化的設備和內存統計信息之類的系統參數可能很有用。這個介面是作為一個獨立但虛擬的文件系統提供的,稱為 /proc 文件系統。很多系統實用程序都使用這個文件系統中存在的值來顯示系統統計信息。例如,/proc/moles 文件列舉系統中當前載入的模塊。lsmod 命令讀取此信息,然後將其以人們可以看懂的格式顯示出來。 下面表格中指定的 mtab 文件以同樣的方式讀取包含當前安裝的文件系統的 /proc/mount 文件。
/etc/mtab 這將隨著 /proc/mount 文件的改變而不斷改變。換句話說,文件系統被安裝和卸載時,改變會立即反映到此文件中。
/etc/fstab 列舉計算機當前「可以安裝」的文件系統。 這非常重要,因為計算機引導時將運行 mount -a 命令,該命令負責安裝 fstab 的倒數第二列中帶有「1」標記的每一個文件系統。
/etc/mtools.conf DOS 類型的文件系統上所有操作(創建目錄、復制、格式化等等)的配置。
系統管理
/etc/group 包含有效的組名稱和指定組中包括的用戶。單一用戶如果執行多個任務,可以存在於多個組中。例如,如果一個「用戶」是「project 1」工程組的成員,同時也是管理員,那麼在 group 文件中他的條目看起來就會是這樣的:user: * : group-id : project1
/etc/nologin 如果有 /etc/nologin 文件存在,login(1) 將只允許 root 用戶進行訪問。它將對其它用戶顯示此文件的內容並拒絕其登錄。
etc/passwd 請參閱「man passwd」。它包含一些用戶帳號信息,包括密碼(如果未被 shadow程序加密過)。
/etc/rpmrc rpm 命令配置。所有的 rpm 命令行選項都可以在這個文件中一起設置,這樣,當任何 rpm 命令在該系統中運行時,所有的選項都會全局適用。
/etc/securetty 包含設備名稱,由 tty 行組成(每行一個名稱,不包括前面的 /dev/),root 用戶在這里被允許登錄。
/etc/usertty
/etc/shadow 包含加密後的用戶帳號密碼信息,還可以包括密碼時效信息。
/etc/shells 包含系統可用的可能的「shell」的列表。
/etc/motd 每日消息;在管理員希望向 Linux 伺服器的所有用戶傳達某個消息時使用。
初學者在使用電腦過程中,肯定會碰到各種各樣的問題:如怎麼管理電腦的自啟動程序、如何查看載入的系統服務、怎樣從安裝光碟提取丟失的系統文件等。為了解決類似問題,微軟在系統中提供了一個實用工具——系統配置實用程序(Msconfig)。
以系統管理員身份登錄系統後,單擊「開始→運行」輸入「Msconfig」回車後即可啟動系統配置實用程序
下面就結合幾個應用實例來詳細介紹Msconfig的使用(以WinXP為例)。
「一般」選項不一般
默認情況下,Windows採用的是正常啟動模式(即載入所有驅動和系統服務),但是有時候由於設備驅動程序遭到破壞或服務故障,常常會導致啟動出現一些問題,這時可以利用Msconfig的其它啟動模式來解決問題。單擊 「一般」選項,在「啟動模式」選擇「診斷啟動」,這種啟動模式有助於我們快速找到啟動故障原因。此外,還可以選擇「有選擇的啟動模式」,按提示勾選需要啟動的項目即可。
小提示:診斷啟動是指系統啟動時僅載入基本設備驅動程序如顯卡驅動,而不載入Modem、網卡等設備,服務也僅是系統必須的一些服務。這時系統是最干凈的,如果啟動沒有問題,可以依次載入設備和服務來判斷問題出在哪裡。
雖然WinXP具備強大的文件保護功能,不過有時候由於安裝/卸載軟體或誤操作,還是經常會造成系統文件的丟失。一般重要的系統文件,在系統安裝光碟CAB文件中都可以找到。單擊上圖的「展開文件」,然後在彈出窗口中依次輸入要還原的文件(填入丟失文件名)、還原自(單擊「瀏覽自」,選擇安裝光碟的CAB壓縮文件)、保存文件到(選擇保存文件路徑,WinXP/2000一般為c:windowssystem32,Win98則為c:windowssystem),最後單擊「展開」,系統會自動解壓CAB文件,將系統文件從安裝光碟提取到電腦。
可以先用系統的SFC命令來掃描系統文件的改動,找出變化的系統文件,命令格式:SFC [/SCANNOW] [/SCANONCE] [/SCANBOOT] [/REVERT] [/PURGECACHE] [/CACHESIZE=x]
/SCANNOW:立即掃描所有受保護的系統文件。
/SCANONCE:下次啟動時掃描所有受保護的系統文件。
/SCANBOOT:每次啟動時掃描所有受保護的系統文件。
/REVERT:將掃描返回到默認設置。
/PURGECACHE:清除文件緩存。
/CACHESIZE=x:設置文件緩存大小。
在電腦應用中經常會看到「許可權」這個詞,特別是Windows 2000/XP被越來越多的朋友裝進電腦後,常常會有讀者問,什麼是許可權呢?它到底有什麼用?下面我們將用幾個典型實例為大家講解windows中的許可權應用,讓你不僅可以在不安裝任何軟體的情況下,限制別人訪問你的文件夾、指定用戶不能使用的程序,而且還有來自微軟內部的加強系統安全的絕招。
初識Windows的許可權
首先,要完全使用windows許可權的所有功能,請確保在應用許可權的分區為NTFS文件系統。本文將以windowsXP簡體中文專業版+SP2作為範例講解。
在以NT內核為基礎的Windows 2000/XP中,許可權主要分為七大類完全控制、修改,讀取和運行、列出文件夾目錄、讀取、寫入、特別的許可權。
其中完全控制包含了其他六大許可權.只要擁有它,就等同於擁有了另外六大許可權,其餘復選框會被自動選中.屬於「最高等級」的許可權。
而其他許可權的等級高低分別是:特別的許可權>讀取和運行>修改>寫入>讀取。
默認情況下,Windows XP將啟用簡單文件共享,這意味著安全性選項卡和針對許可權的高級選項都不可用.也就不能進行本文所述的那些許可權應用操作了。請右擊任意文件或文件夾.選擇「屬性」,如果沒有看到「安全」選項卡,你可以通過如下方法打開它。
打開「我的電腦」,點擊「工具→文件夾選項→查看」,接著在然後單擊取消「使用簡單文件共享(推薦)」復選框即可。
實戰許可權「正面」應用
以下應用的前提,是被限制的用戶不在Administrators組,否則將可能發生越權訪問,後面反面應用會講到。執行許可權設置的用戶至少需要為Power Users組的成員,才有足夠許可權進行設置。
實例1:我的文檔你別看-保護你的文件或文件夾
假設A電腦中有三個用戶,用戶名分別為User1、User2、User3。Userl不想讓User2和User3查看和操作自己的「test」文件夾。
第一步:右擊test文件夾並選擇屬性,進入安全選項卡,你將會看到組或用戶名稱欄里有Administrators(AAdministrators)、CREATOR OWNER、SYSTEM Users(AUsers)、User1(A User1)。他們分別表示名為A電腦的管理員組,創建、所有者組,系統組,用戶組以及用戶User1對此文件夾的許可權設置。當然,不同的電腦設置和軟體安裝情況,此欄里的用戶或用戶組信息不一定就是和我描述的一樣.但正常情況下最少將包含3項之一:Administrators、SYSTEM、Users或Everyone。
第二步:依次選中並刪除Administrators、CREATOR OWNER、SYSTEM、Users,僅保留自己使用的Userl賬戶。在操作中可能會遇到的提示框。
其實只要單擊高級按鈕,在許可權選項卡中,取消從父項繼承那些可以應用到子對象的許可權項目,包括那些在此明確定義的項目的復選框,在彈出對話框中單擊刪除即可。該操作使此文件夾清除了從上一級目錄繼承來的許可權設置,儀保留了你使用的User1賬戶。
就這么輕松,你就實現了其他用戶,甚至系統許可權都無法訪問test文件夾的目的。
★需要注意的是,如果這個文件夾中需要安裝軟體,那麼就不要刪除SYSTEM,不然可能引起系統訪問出錯
★Administrator並不是最高指揮官:你可能會問,為什麼這里會有一個SYSTEM賬戶呢?同時許多朋友認為windows2000/XP中的Administrator是擁有許可權最高的用戶,其實不然,這個SYSTEM才具有系統最高許可權,因為它是作為操作系統的一部分工作,任何用戶通過某種方法獲取了此許可權,就能凌駕一切。
實例2:上班時間別聊天-禁止用戶使用某程序
第一步:找到聊天程序的主程序,如QQ,其主程序就是安裝目錄下的QQ.exe,打開它的屬性對話框,進入安全選項卡,選中或添加你要限制的用戶,如User3。
第二步:接著選擇完全控制為拒絕,讀取和運行也為拒絕。
第三步:單擊高級按鈕進入高級許可權沒置,選中User3,點編輯按鈕,進入許可權項目。在這里的拒絕欄中選中更改許可權和取得所有權的復選框。
也可以使用組策略編輯器來實現此功能,但安全性沒有上面方法高。點擊開始→運行,輸入gpedit.msc,回車後打開組策略編輯器,進入計算機設置→windows設置→安全設置→軟體限制策略→其他規則,右擊,選擇所有任務→新路徑規則,接著根據提示設置想要限制的軟體的主程序路徑,然後設定想要的安全級別,是不允許的還是受限制的。
實例3:來者是客--微軟內部增強系統安全的秘技
本實戰內容將需要管理員許可權。所謂入侵,無非就是利用某種方法獲取到管理員級別的許可權或系統級的許可權,以便進行下一步操作,如添加自己的用戶。如果想要使入侵者進來之後不能進行任何操作呢?永遠只能是客人許可權或比這個許可權更低,就算本地登錄,連關機都不可以。那麼,他將不能實施任何破壞活動。
注意:此法有較高的危險性.建議完全不知道以下程序用途的讀者不要嘗試.以免誤操作引起系統不能進入或出現很多錯誤。
第一步:確定要設置的程序
搜索系統目錄下的危險程序,它們可以用來創建用戶奪取及提升低許可權用戶的許可權,格式化硬碟,引起電腦崩潰等惡意操作:cmd.exe、regedit.exe、regsvr32.exe、regedt32.exe、gpedit.msc、format.com、compmgmt.msc、mmc.exe、telnet.exe、tftp.exe、ftp.exe、XCOPY.EXE、at.exe、cacls.exe、edlin.exe、rsh.exe、finger.exe、runas.exe、net.exe、tracert.exe、netsh.exe、tskill.exe、poledit.exe、regini.exe、cscript.exe、netstat.exe、issync.exe、runonce.exe、debug.exe、rexec.exe、wscript.exe、command.com、comspd.exe
第二步:按系統調用的可能性分組設置
按照下面分組.設置這些程序許可權。完成一組後,建議重啟電腦確認系統運行是否一切正常,查看事件查看器,是否有錯誤信息(控制面板→管理工具→事件查看器)。
(1)cmd.exe、net.exe gpedit.msc telnet.exe command.com
(僅保留你自己的用戶,SYSTEM也刪除)
(2)mmc.exe、tftp.exe、ftp.exe、XCOPY.EXE、comspd.exe
(僅保留你自己的用戶,SYSTEM也刪除)
(3)regedit.exe、regedt32.exe、format.com、compmgmt.msc、at.exe、cacls.exe、edlin.exe、rsh.exe、finger.exe、runas.exe、debug.exe、wscript.exe、cscript.exe、rexec.exe
(保留你自己的用戶和SYSTEM)
(4)tracert.exe、netsh.exe、tskill.exe、poledit.exe、regini.exe、netstat.exe、issync.exe、runonce.exe、regsvr32.exe
(保留你自己的用戶和SYSTEM)
第三步:用戶名欺騙
這個方法騙不了經驗豐富的入侵者,但卻可以讓不夠高明的偽黑客們弄個一頭霧水。
打開控制面板一管理工具一計算機管理,找到用戶,將默認的Administrator和Guest的名稱互換,包括描述信息也換掉。完成後,雙擊假的Administrator用戶,也就是以前的Guest用戶.在其屬性窗口中把隸屬於列表裡的Guests組刪除.這樣.這個假的管理員賬號就成了無黨派人士,不屬於任何組,也就不會繼承其許可權。此用戶的許可權幾乎等於0,連關機都不可以,對電腦的操作幾乎都會被拒絕。如果有誰處心積慮地獲取了這個用戶的許可權,那麼他肯定吐血。
第四步:集權控制,提高安全性
打開了組策略編輯器,找到計算機設置→windows設置→安全設置→本地策略→用戶權利指派,接著根據下面的提示進行設置。
(1)減少可訪問此計算機的用戶數,減少被攻擊機會
找到並雙擊從網路訪問此計算機,刪除賬戶列表中用戶組,只剩下Administrators;
找到並雙擊拒絕本地登錄,刪除列表中的Guest用戶,添加用戶組Guests。
(2)確定不想要從網路訪問的用戶,加入到此黑名單內
找到並雙擊拒絕從剛絡訪問這台計算機,刪除賬戶列表中的Guest用戶,添加用戶組Guests;
找到並雙擊取得文件或其他對象的所有權,添加你常用的賬戶和以上修改過名稱為Guest的管理員賬戶,再刪除列表中Administrators。
(3)防止跨文件夾操作
找到並雙擊跳過遍歷檢查,添加你所使用的賬戶和以上修改過名稱為Guest的管理員賬戶,再刪除賬戶列表中的Administrators、Everyone和Users用戶組。
(4)防止通過終端服務進行的密碼猜解嘗試
找到並雙擊通過終端服務拒絕登錄,添加假的管理員賬戶Administrator;找到通過終端服務允許登錄,雙擊,添加你常用的賬戶和以上修改過名稱為Guest的管理員賬戶,再刪除賬戶列表中的Administrators,Remote Desktop User和HelpAssistant(如果你不用遠程協助功能的話才可刪除此用戶)。
(5)避免拒絕服務攻擊
找到並雙擊調整進程的內存配額,添加你常用的賬戶,再刪除賬戶列表中的Administrators
實例4:你的文檔別獨享——突破文件夾私有的限制
windows XP安裝完成並進入系統時,會詢問是否將我的文檔設為私有(專用),如果選擇了是,那將使該用戶下的我的文檔文件夾不能被其他用戶訪問,刪除,修改。其實這就是利用許可權設置將此文件夾的訪問控制列表中的用戶和用戶組刪除到了只剩下系統和你的用戶,所有者也設置成了那個用戶所有,Administrators組的用戶也不能直接訪問。如果你把這個文件夾曾經設置為專用,但又在該盤重裝了系統,此文件夾不能被刪除或修改。可按照下面步驟解決這些問題,讓你對這個文件夾的訪問,暢通無阻。
第一步:登錄管理員許可權的賬戶,如系統默認的Administrator,找到被設為專用的我的文檔,進入其屬性的安全選項卡,你將會看到你的用戶不在裡面,但也無法添加和刪除。
第二步:單擊高級按鈕,進入高級許可權設置,選擇所有者選項卡,在將所有者更改為下面的列表中選中你現在使用的用戶,如Userl(AUserl),然後再選中替換子容器及對象的所有者的復選框,然後單擊應用,等待操作完成。
第三步:再進入這個文件夾看看,是不是不會有任何許可權的提示了?可以自由訪問了?查看裡面的文件,復制、刪除試試看.是不是一切都和自己的一樣了?嘿嘿。如果你想要刪除整個文件夾,也不會有什麼阻止你了。
ServerWinStationsRDP-Tcp 改3389 的
Ⅳ linux系統中以下哪個目錄是存放系統配置文件
【答案】B 【答案解析】各目錄介紹如下:●/bin/usr/bin:可執行二進制文件的目錄,如常用的命令Is、tar、mv、cat等。●/etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件,重要的配置文件有/etc/inittab/etc/fstab、/etc/init.d、/etc/XI1、/etc/sysconfig、/etc/xinetd.d修改配置文件之前記得備份。●/dev:存放Linux系統下的設備文件,訪問該目錄下某個文件,相當於訪問某個設備。●/root:系統管理員root的家目錄,系統第一個啟動的分區為/,所以最好將/root和/放置在一個分區下。