❶ iis7不能用ajax訪問ashx文件,怎樣修改配置文件
iis7不能用ajax訪問ashx文件,怎樣修改配置文件
添加修改配置文件一般都是使用默認的VI編輯器,長期編輯代碼的程序員會使用功能更強大的編輯器。
簡單介紹下vi編輯器的使用方法:
一、vi可以分為三種狀態,分別是命令模式(command mode)、插入模式(Insert
mode)和底行模式(last line mode),各模式的功能區分如下:
1、命令行模式command mode)
控制屏幕游標的移動,字元、字或行的刪除,移動復制某區段及進入Insert mode下,或者到 last line mode。
2、插入模式(Insert mode)
只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令行模式。
3、底行模式(last line mode)
將文件保存或退出vi,也可以設置編輯環境,如尋找字元串、列出行號等。
不過一般使用時把vi簡化成兩個模式,就是將底行模式(last line mode)也算入
命令行模式command mode)。
二、命令行模式(command mode)功能鍵
1、插入模式
按「i」切換進入插入模式「insert
mode」,按「i」進入插入模式後是從游標當前位置開始輸入文件;
按「a」進入插入模式後,是從目前游標所在位置的下一個位置開始輸入文字;
按「o」進入插入模式後,是插入新的一行,從行首開始輸入文字。
2、從插入模式切換為命令行模式
按「ESC」鍵。
3、移動游標
vi可以直接用鍵盤上的游標來上下左右移動,但正規的vi是用小寫英文字母「h」、「j」、「k」、「l」,分別控制游標左、下、上、右移一格。
三、vi保存命令。
按ESC鍵 跳到命令模式,然後:
:w 保存文件但不退出vi
:w file 將修改另外保存到file中,不退出vi
:w! 強制保存,不推出vi
:wq 保存文件並退出vi
:wq! 強制保存文件,並退出vi
q: 不保存文件,退出vi
:q! 不保存文件,強制退出vi
:e! 放棄所有修改,從上次保存文件開始再編輯。
❷ F5 如何更改IP地址
解決方法
1、滑鼠右鍵點「網上鄰居」圖標,選「屬性」;
2、右鍵點擊「本地連接」;選「屬性」;
3、點選「Internet協議(TCP/IP)」,
點擊「屬性」;
4、選「使用下面的IP地址」
5、紅色圈圈可任意更換2~254內的數字
❸ 二、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)
❹ SOLARIS10系統下,修改配置的兩種常用方式 有什麼區別
修改配置?哪方面的?
說下系統的
一般情況下管理員是通過修改配置文件參數再重起服務,完成修改配置,當然修改前要做好備份
還有一種是通過sys-unconfig來修改配置,包括網路參數,語言等等
還可以通過命令行修改,但有些配置重新啟動系統後就失效了(例如網路參數)
❺ Windows如何在cmd命令行中查看、修改、刪除與添加、設置環境變數
直接修改注冊表。
通過我的電腦來設置系統的環境變數。
❻ vcenter查看所有的虛擬機地址
1,在終端輸入: ip addr 然後enter
2,進入終端:ifconfig 然後enter
若出現bash: ifcogfig: 未找到命令...
解決辦法,先安裝net-tool插件
輸入命令:sudo yum install net-tools
這樣便解決了出現未找到命令的問題
3,進入終端輸入:ifconfig -a 然後enter
白格的地方即為虛擬機地址
❼ linux載入配置文件命令是什麼
、配置文件介紹:
每個 Linux 程序都是一個可執行文件,它含有操作碼列表,CPU 將執行這些操作碼來完成特定的操作。
例如,ls 命令是由 /bin/ls 文件提供的,該文件含有機器指令的列表,在屏幕上顯示當前目錄中文件
的列表時需要使用這些機器指令。幾乎每個程序的行為都可以通過修改其配置文件來按照您的偏好或需
要去定製。
Linux 中有沒有一個標準的配置文件格式?
一句話,沒有。不熟悉 Linux 的用戶(一定)會感到沮喪,因為每個配置文件看起來都象是一個要迎
接的新挑戰。在 Linux 中,每個程序員都可以自由選擇他或她喜歡的配置文件格式。可以選擇的格式
很多,從 /etc/shells 文件(它包含被一個換行符分開的 shell 的列表),到 Apache 的復雜的
/etc/httpd.conf 文件。
什麼是系統配置文件?
內核本身也可以看成是一個「程序」。為什麼內核需要配置文件?內核需要了解系統中用戶和組的列表,
進而管理文件許可權(即根據許可權判定特定用戶(UNIX_USERS)是否可以打開某個文件)。注意,這些文
件不是明確地由程序讀取的,而是由系統庫所提供的一個函數讀取,並被內核使用。例如,程序需要某
個用戶的(加密過的)密碼時不應該打開 /etc/passwd 文件。相反,程序應該調用系統庫的 getpw() 函
數。這種函數也被稱為系統調用。打開 /etc/passwd 文件和之後查找那個被請求的用戶的密碼都是由
內核(通過系統庫)決定的。
除非另行指定,Red Hat Linux 系統中大多數配置文件都在 /etc 目錄中。配置文件可以大致分為下面
幾類:
2、配置文件分類:
訪問文件
/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
時也是管理員,那麼在 group 文件中他的條目看起來就會是這樣的:user: * :
group-id : project1
/etc/nologin
這是一個普通的文本文件.你可以在裡面寫上你喜歡的任何東西./etc/nologin
的作用在於,如果它存在,那麼系統將拒絕任何非 root 用戶的登錄請求,並對其
它登錄用戶顯示此文件的內容
此文件常由系統在停機前自動生成.有時系統管理員也會手工生成它,用以禁止
其它用戶登錄,方便進行一些管理工作.
etc/passwd
1.文件格式
/etc/passwd 存儲了系統中所有用戶的基本信息.可以說這是系統中最重要的一
個配置文件.對它作任何修改一定要小心謹慎.同時要經常檢察這個文件,包括
它的內容和許可權設置.
使用 vi 編輯程序打開此文件,可以看到這個文件由許多行記錄組成.每一行記
錄對應著一個用戶.我們以第一行為例.第一行一般是 root 用戶的記錄,盡管這
不是必需的.實際上用戶記錄出現的順序並沒有任何的意義.
在我的系統中,/etc/passwd 的第一行看起來是這樣的:
root:x:0:0:root:/root:/bin/bash
每一條記錄都由 7 個欄位組成,每個欄位之間用冒號隔開.第一個欄位是用戶
名,示例中是 root.第二個欄位是用戶口令,示例中是一個字元 x,但這並不表示root 的口令是單個字元 x,而是說用戶口令被加密了,並且加密口令也沒有放在
本文件中,而是放到了/etc/shadow(參考 /etc/shadow).假如刪除這個 x,那麼
root 的口令就清空了.第三個欄位是用戶的用戶 ID,即 uid.第四個欄位是用戶
的組 ID,即 gid. 這里要注意,系統分辨兩個用戶是看他們的 uid 是否相同而不
是看他們的用戶名是否相同.用戶名不同但 uid 相同的兩個用戶實際上是同一
個用戶.對組來說也有類似的規則.所以這兩個欄位大家一定要注意.第五個字
段是用戶全稱,沒有什麼實際用途,相當於注釋,這里是 root.第六個欄位是用戶
的主目錄 (home),即登錄系統後默認所處目錄,這里是/root.最後一個欄位是
用戶的登錄 shell,可以是系統擁有的任何一個 shell 的完整路徑,這里是
/bin/bash.注意,這個欄位可以有一個特殊的值,即/sbin/nologin.如果把一個
用戶的登錄 shell 設置為 /sbin/nologin 的話,系統將禁止此用戶的本地登錄.
請參閱「man passwd」。它包含一些用戶帳號信息,包括密碼(如果未被 shadow
程序加密過)。
2.安全性
/etc/passwd 的默認許可權為 644,所有者和所有組均為 root.切記,在任何情況下
都不要更改它.
3.相關命令
passwd
useradd
userdel
adser
usermod
users
/etc/rpmrc
rpm 命令配置。所有的 rpm 命令行選項都可以在這個文件中一起設置,這樣,
當任何 rpm 命令在該系統中運行時,所有的選項都會全局適用。
/etc/securetty
包含設備名稱,由 tty 行組成(每行一個名稱,不包括前面的 /dev/),root
用戶在這里被允許登錄。
1.文件格式
這是一個設備文件的列表.文件名取相對於/dev 的相對路徑.如,/dev/tty1 記
為 tty1
root 只有從這個列表中列出的設備上才可以登錄系統.
例如:
代碼:
$cat /etc/securretty
tty1
tty2
tty3
這里 root 被限定只能從/dev/tty1, /dev/tty2, /dev/tty3 這三個設備上登錄
系統
如果/etc/securretty 不存在的話,那麼 root 將可以從任何設備登錄系統.
2.安全性
/etc/securetty 的默認許可權是 600,所有者和所有組都是 root
/etc/shadow
包含加密後的用戶帳號密碼信息,還可以包括密碼時效信息。包括的欄位有:• 登錄名
• 加密後的密碼
• 從 1970 年 1 月 1 日到密碼最後一次被更改的天數
• 距密碼可以更改之前的天數
• 距密碼必須更改之前的天數
• 密碼到期前用戶被警告的天數
• 密碼到期後帳戶被禁用的天數
• 從 1970 年 1 月 1 日到帳號被禁用的天數
1.文件格式
/etc/shadow 文件保存的是用戶名,密碼,用戶賬號設置相關信息。
例:
root:$1$6UviCNvh$WTR0zPMek41KmzD0Z1DdV1:12264:3:4:5:6:12267:
第一段: root----- 用戶注冊名
第二段: $1$6UviCNvh$WTR0zPMek41KmzD0Z1DdV1 ----加密口令
第三段: 12264-----上次更動密碼的日期,以 1970 年 1 月 1 日為 1,1 天加 1
第四段: 3---------密碼將被允許修改之前的天數(0 表示「可在任何時間修
改」)
第五段: 4---------系統將強制用戶修改為新密碼之前的天數(1 表示「永遠
都不能修改」)
第六段: 5---------密碼過期之前,用戶將被警告過期的天數(-1 表示「沒有
警告」)
第七段: 6---------密碼過期之後,系統自動禁用帳戶的天數(-1 表示「永遠
不會禁用」)
第八段: 12267-----該帳戶被禁用的天數(-1 表示「該帳戶被啟用」).以 1970
年 1 月 1 日為 1,1 月 2 日為 2
第九段 ------ 保留供將來使用
注:第 2 段中為*表示帳號不可登錄,如密碼前為 !! 或只有 !! 表示帳號被鎖
2.安全性/etc/shadow 的默認所有者和所有組均為 root.
建議運行# chattr +i /etc/shadow 來保護文件使其不被意外地刪除或重寫
3.相關命令
passwd
useradd
userdel
usermod
/ect/gshadow
1.文件格式
/ect/gshadow 文件保存的是用戶和組群設置的信息
例:
root:!!::root,wa1
第一段:組名
第四段:該組包含用戶列表
2.安全性
/etc/gshadow 的默認所有者和所有組均為 root.
建議運行# chattr +i /etc/shadow 來保護文件使其不被意外地刪除或重寫
3.相關命令
groupadd
groupdel
groupmod
groups
/etc/sysctl.conf
1.文件格式
/etc/sysctl.conf 是 sysctl 程序的配置文件.sysctl 可以在系統運行時更改內
核參數./etc/sysctl.conf 中的配置將在系統起動時執行.
以 # 和 ; 開始的行是注釋,將和空白行一起被忽略.
配置項的格式為:
token = value
token 是一個鍵名,value 是對應的鍵值.token 和 value 前後的空格將被忽略
token 不能是隨意的字元串.他和/proc/sys 下的文件有一一對應的關系:
.h2 NEWS_PROXY
.h2 NNTP_PROXY
# Lynx version 2.2 and beyond supports the use of proxy servers that can act as
# firewall gateways and caching servers. They are preferable to the older
# gateway servers. Each protocol used by Lynx can be mapped separately using
# PROTOCOL_proxy environment variables (see Lynx Users Guide). If you have
# not set them externally, you can set them at run time via this configuration file.
# They will not override external settings. The no_proxy variable can be used
# to inhibit proxying to selected regions of the Web (see below). Note that on
# VMS these proxy variables are set as process logicals rather than symbols, to
# preserve lowercasing, and will outlive the Lynx image.
#
.ex 15
http_proxy:http://proxy3.in.ibm.com:80/
ftp_proxy:http://proxy3.in.ibm.com:80/
#http_proxy:http://penguin.in.ibm.com:8080
#ftp_proxy:http://penguin.in.ibm.com:8080/
.h2 NO_PROXY
# The no_proxy variable can be a comma-separated list of strings defining
# no-proxy zones in the DNS domain name space. If a tail substring of the
# domain-path for a host matches one of these strings, transactions with that# node will not be proxied.
.ex
no_proxy:demiurge.in.ibm.com, demiurge
更改配置文件
在更改配置文件時,如果程序不是由系統管理員或內核控制的,就要確保重新啟動過使用該配置的程
序。普通用戶通常沒有啟動或停止系統程序和/或守護進程的許可權。
內核
更改內核中的配置文件會立即影響到系統。例如,更改 passwd 文件以增加用戶將立即使該用戶變為
可用。而且任何 Linux 系統的 /proc/sys 目錄中都有一些內核可調參數。只有超級用戶可以得到對
所有這些文件的寫訪問權力;其它用戶只有隻讀訪問權力。此目錄中文件的分類的方式和 Linux 內
核源代碼的分類方式一樣。此目錄中的每個文件都代表一個內核數據結構,這些數據結構可以被動態
地修改,從而改變系統性能。
注意:在更改其中任何文件的任何值之前,您應該確保自己全面了解該文件,以避免對系統造成不可
修復的損害。
/proc/sys/kernel/ 目錄中的文件
文件名
描述
threads-max
內核可運行的最大任務數。
ctrl-alt-del
如果值為 1,那麼順序按下這幾個鍵將「徹底地」重新引
導系統。
sysrq
如果值為 1,Alt-SysRq 則為激活狀態。
osrelease
顯示操作系統的發行版版本號
ostype
顯示操作系統的類型。
hostname
系統的主機名。
domainname
網路域,系統是該網路域的一部分。
modprobe
指定 modprobe 是否應該在啟動時自動運行並載入必需
的模塊。
守護進程和系統程序
守護進程是永遠運行在後台的程序,它默默地執行自己的任務。常見的守護進程有 in.ftpd(ftp 服
務器守護進程)、in.telnetd(telnet 伺服器守護進程)和 syslogd(系統日誌記錄守護進程)。
有些守護進程在運行時會嚴密監視配置文件,在配置文件改變時就會自動重新載入它。但是大多數守
護進程並不會自動重新載入配置文件。我們需要以某種方式「告訴」這些守護進程配置文件已經被發
生了改變並應該重新載入。可以通過使用服務命令重新啟動服務來達到這個目的(在 Red Hat Linux
系統上)。
例如,如果我們更改了網路配置,就需要發出:
service network restart 。
注意:這些服務最常見的是 /etc/rc.d/init.d/* 目錄中存在的腳本,在系統被引導時由 init 啟動。
所以,您也可以執行如下操作來重新啟動服務:
/etc/rc.d/init.d/<script-for-the-service> start | stop | status
start、stop 和 status 是這些腳本接受的輸入值,用來執行操作。
用戶程序用戶或系統程序在每次啟動時都會讀取其配置文件。盡管如此,請記住,有些系統程序在計算機打開
時情況不一樣,它們的行為依賴於在 /etc/ 中的配置文件中讀到的內容。所以,用戶程序第一次啟
動時將從 /etc/ 目錄中存在的文件讀取預設配置。然後,用戶可以通過使用 rc 和 .(點)文件來
定製程序,正如下面一節所示。
用戶配置文件:.(點)文件和 rc 文件
我們已經看到怎樣容易地配置程序。但是如果有的人不喜歡在 /etc/ 中配置程序的方式該怎麼辦呢?
「普通」用戶不能簡單地進入 /etc 然後更改配置文件;從文件系統的角度來看,配置文件的所有者
是 root 用戶!這就是大多數用戶程序都定義兩個配置文件的原因:第一個是「系統」級別的,位於
/etc/;另一個屬於用戶「專用」,可以在他或她的主目錄中找到。
例如,我在我的系統中安裝了非常有用的 wget 實用程序。/etc/ 中有一個 /etc/wgetrc 文件。在
我的主目錄中,有一個名為 .wgetrc 的文件,它描述了我定製的配置(只有在我,也就是用戶運行
wget 命令時,才會載入這個配置文件)。其它用戶在他們自己的主目錄(/home/other)中也可以
有 .wgetrc 文件;當然,只有這些用戶運行 wget 命令時,才會讀取這個文件。換句話說,/etc/wgetrc
文件為 wget 提供了「預設」值,而 /home/xxx/.wgetrc 文件列舉了某個用戶的「定製項」。重要
的是這只是「一般規則」,並非所有情況都如此。例如,一個象 pine 一樣的程序,在 /etc/ 中並
沒有任何文件,它只在用戶主目錄中有一個定製配置文件,名為 .pinerc。其它程序可能只有 /etc/
中的預設配置文件,而且可能不允許用戶「定製」這些配置文件(/etc 目錄中只有少數 config. 文
件是這種情況)。
通常使用的 rc 和 .(點)文件
文件名
描述
~/.bash_login
請參考「man bash」。如果
~/.bash_profile 不存在,bash 則將
~/.bash_login 作為
~/.bash_profile 處理。
~/.bash_logout
請參考「man bash」。在退出時由
bash 登錄 shell 引用。
~/.bash_profile
由 bash 登錄 shell 引用
/etc/profile 之後引用。
~/.bash_history
先前執行的命令的列表。
~/.bashrc
請參考「man bash」。由 bash 非登
錄互動式 shell 引用(沒有其它文
件)。除非設置了 BASH_ENV 或 ENV,
非互動式 shell 不引用任何文件。
~/.emacs
啟動時由 emac 讀取。
~/.forward
如果這里包含一個電子郵件地址,那
么所有發往 ~ 的所有者的郵件都會
被轉發到這個電子郵件地址。
~/.fvwmrc ~/.fvwm2rc
fvwm 和 fvwm2(基本的 X Window 管
理器)的配置文件。
~/.hushlogin
請參考「man login」。引起「無提
示」登錄(沒有郵件通知、上次登錄
信息或者 MOD 信息)。~/.mail.rc
郵件程序的用戶初始化文件。
~/.ncftp/
ncftp 程序的目錄;包含書簽、日誌、
宏、首選項和跟蹤信息。請參閱 man
ncftp。ncftp 的目的是為網際網路標准
文件傳輸協議(Internet standard
File Transfer Protocol)提供一個
強大而靈活的介面。它旨在替換系統
所使用的標準的 ftp 程序。
~/.profile
請參考「man bash」。如果
~/.bash_profile 和 ~/.bash_login
文件不存在,bash 則將 ~/.profile
作為 ~/.bash_profile 處理,並被其
它繼承 Bourn 的 shell 使用。
~/.pinerc
Pine 配置
~/.muttrc
Mutt 配置
~/.exrc
這個文件可以控制 vi 的配置。
示例:set ai sm ruler
在此文件中寫入上面一行會讓 vi 設
置自動縮進、匹配括弧、顯示行號和
行-列這幾個選項。
~/.vimrc
預設的「Vim」配置文件。和 .exrc
一樣。
~/.gtkrc
GNOME 工具包(GNOME Toolkit)。
~/.kderc
KDE 配置。
~/.netrc
ftp 預設登錄名和密碼。
~/.rhosts
由 r- 工具(如 rsh、rlogin 等等)
使用。因為冒充主機很容易,所以安
全性非常低。
1. 必須由用戶(~/ 的所有者)或超
級用戶擁有。
2. 列出一些主機,用戶可以從這些主
機訪問該帳號。
3. 如果是符號鏈接則被忽略。
~/.rpmrc
請參閱「man rpm」。如果 /etc/rpmrc
不存在則由 rpm 讀取。
~/.signature
消息文本,將自動附加在從此帳號發
出的郵件末尾。
~/.twmrc
twm( The Window Manager)的配置
文件。~/.xinitrc
啟動時由 X 讀取(而不是由 xinit
腳本讀取)。通常會啟動一些程序。
示例:exec /usr/sbin/startkde
如果該文件中存在上面這行內容,那
么在從這個帳號發出 startx 命令
時,這一行就會啟動「KDE 視窗管理
器」(KDE Window Manager)。
~/.xmodmaprc
此文件被傳送到 xmodmap 程序,而且
可以被命名為任何文件(例如
~/.Xmodmap 和 ~/.keymap.km)。
~/.xserverrc
如果 xinit 可以找到要執行的 X,
xinit 就會將該文件作為 X 伺服器
運行。
~/News/Sent-Message-IDs
gnus 的預設郵件歷史文件。
~/.Xauthority
由 xdm 程序讀和寫,以處理許可權。請
參閱 X、xdm 和 xauth 聯機幫助頁。
~/.Xdefaults,
~/.Xdefaults-hostname
在主機 hostname 的啟動過程中由 X
應用程序讀取。如果找不到
-hostname 文件,則查找 .Xdefaults
文件。
~/.Xmodmap
指向 .xmodmaprc;Red Hat 有使用這
個名稱的 .xinitrc 文件。
~/.Xresources
通常是傳送到 xrdb 以載入 X 資源
資料庫的文件的名稱,旨在避免應用
程序需要讀取一個很長
的 .Xdefaults 文件這樣的情況。(有
些情況曾經使用了 ~/.Xres。)
~/mbox
用戶的舊郵件。
3、重要的配置文件列表:
啟動引導程序配置文件
LILO /etc/lilo.conf
GRUB /boot/grub/menu.lst
系統啟動文件核腳本
主啟動控制文件 /etc/inittab
SysV 啟動腳本的位置 /etc/init.d、/etc/rc.d/init.d 或/etc/rc.d
SysV 啟動腳本鏈接的位置 /etc/init.d/rc?.d、/etc/rc.d/rc?.d 或/etc/rc?.d
本地啟動腳本 /etc/rc.d/rc.local、/etc/init.d/boot.local 或/etc/rc.boot 里的文件
網路配置文件
建立網路介面的腳本 /sbin/ifup
保存網路配置數據文件的目錄 /etc/network、/etc/sysconfig/network 和
/etc/sysconfig/network-scripts保存解析 DNS 服務的文件 /etc/resolv.conf
DHCP 客戶端的配置文件 /etc/dhclient.conf
超級服務程序配置文件和目錄
inetd 配置文件 /etc/inetd.conf
TCP Wrappers 配置文件 /etc/hosts.allow 和/etc/hosts.deny
xinetd 配置文件 /etc/xinetd.conf 和/etc/xinetd.d 目錄里的文件
硬體配置
內核模塊配置文件 /etc/moles.conf
硬體訪問文件
Linux 設備文件 /dev 目錄里
保存硬體和驅動程序數據的文件 /proc 目錄里
掃描儀配置文件
SANE 主配置 /etc/sane.d/dll.conf
特定掃描儀的配置文件 /etc/sane.d 目錄里以掃描儀型號命名的文件
列印機配置文件
BSD LPD 核 LPRng 的本地列印機主配置文件 /etc/printcap
CUPS 本地列印機主配置和遠程訪問受權文件 /etc/cups/cupsd.conf
BSD LPD 遠程訪問受權文件 /etc/hosts.lpd
LPRng 遠程訪問受權文件 /etc/lpd.perms
文件系統
文件系統表 /etc/fstab
軟碟機裝配點 /floppy、/mnt/floppy 或/media/floppy
光碟機裝配點 /cdrom、/mnt/cdrom 或/media/cdrom
shell 配置文件
bash 系統非登錄配置文件 /etc/bashrc、/etc/bash.bashrc 或/etc/bash.bashrc.local
bash 系統登錄文件 /etc/profile 和/etc/profile.d 里的文件
bash 用戶非登錄配置文件 ~/.bashrc
bash 用戶登錄配置文件 ~/.profile
XFree86 配置文件核目錄
XFree86 主配置文件 /etc/XF86config、/etc/X11/XF86Config 或/etc/X11/XF86Config-4
字體服務程序配置文件 /etc/X11/fs/config
Xft 1.x 配置文件 /etcX11/XftConfig
Xft 2.0 配置文件 /etc/fonts/fonts.conf
字體目錄 /usr/X11R6/lib/X11/fonts 和/usr/share/fonts
Web 服務程序配置文件
Apache 主配置文件 /etc/apache、/etc/httpd 或/httpd/conf 里的 httpd.conf 或 httpd2.conf 文
件
MIME 類型文件 與 Apache 主配置文件在同一目錄里的 mime.types 或 apache-mime.types
文件服務程序配置文件
ProFTPd 配置文件 /etc/proftpd.conf
vsftpd 配置文件 /etc/vsftpd.conf
NFS 服務程序的輸出定義文件 /etc/exports
NFS 客戶端裝配的 NFS 輸出 /etc/fstab
Samba 配置文件 /etc/samba/smb.confSamba 用戶配置文件 /etc/samba/smbpasswd
郵件服務程序配置文件
sendmail 主配置文件 /etc/mail/sendmail.cf
sendmail 源配置文件 /etc/mail/sendmail.mc 或/usr/share/sendmail/cf/cf/linux.smtp.mc 或
其他文件
Postfix 主配置文件 /etc/postfix/main.cf
Exim 主配置文件 /etc/exim/exim.cf
Procmail 配置文件 /etc/procmailrc 或~/.procmailrc
Fetchmail 配置文件 ~/.fetchmailrc
遠程登錄配置文件
SSH 服務程序配置文件 /etc/ssh/sshd_config
SSH 客戶端配置文件 /etc/ssh/ssh_config
XDM 配置文件 /etc/X11/xdm 目錄下
GDM 配置文件 /etc/X11/gdm 目錄下
VNC 服務程序配置文件 /usr/X11R6/bin/vncserver 啟動腳本和~/.vnc 目錄里的文件
其他服務程序配置文件
DHCP 服務程序配置文件 /etc/dhcpd.conf
BIND 服務程序配置文件 /etc/named.conf 和/var/named/
NTP 服務程序配置文件 /etc/ntp.conf
❽ 如何修改配置文件
1. 引言
OpenWRT中採用LuCI作為它的Web interface界面框架,採用Lua語言。在本文中將以一個簡單的示例詳細描述如何自定義開發一個界面,對一個配置文件進行操作。
2.Model與Controler
MVC的設計理念是進行LuCI開發的一個關鍵
在LuCI中Controller的文件定義在固件中的/usr/lib/lua/luci/controller目錄中,模版目錄在/usr/lib/lua/luci/view目錄下,而model則是在/usr/lib/lua/luci/model中。而model中有一個特殊的模塊叫做CBI,被稱為LuCI中最酷的功能,該模塊的功能是方便的對一個配置文件進行修改。
3.示例
本文中的頁面建立在LuCI界面的network下,不單獨創建頁面,因此無需寫view,只用些controller和model就可以了。
1)首先創建一個controller
ccontroller/mycbi.lua
mole("LUCI.controller.mycbi", package.seeall)
function index()
entry({"admin", "network", "mycbi_change"}, cbi("mycbi-model/mycbimole"), "Change My Conf", 30).dependent=false
end
解釋一下關鍵代碼:
在index()函數中,使用entry函數來完成每個模塊函數的注冊,官方說明文檔如下:
entry(path, target, title=nil, order=nil)
path is a table that describes the position in the dispatching tree: For example a path of {"foo", "bar", "baz"} would insert your node in foo.bar.baz.
target describes the action that will be taken when a user requests the node. There are several predefined ones of which the 3 most important (call, template, cbi) are described later on on this page
title defines the title that will be visible to the user in the menu (optional)
order is a number with which nodes on the same level will be sorted in the menu (optional)
其中target主要分為三類:call,template和cbi。call用來調用函數,template用來調用已有的htm模版,而CBI模塊則是使用非常頻繁也非常方便的模塊,包含的一系列lua文件構成界面元素的組合,所有cbi模塊中的控制項都需要寫在luci.cbi.Map中,在cbi模塊中定義各種控制項,Luci系統會自動執行大部分處理工作。在cbi.lua文件中封裝了所有的控制項元素,例如復選框,下拉列表等。
2)創建model
#mkdir /usr/lib/lua/luci/model/cbi/mycbi-model
#vim /usr/lib/lua/luci/model/cbi/mycbi-model/mycbimole.lua
m = Map("mycbi", "mycbi conf change interface")
s = m:section(TypedSection, "MySection")
s.addremove = true
s:option(Value, "username", "Name:")
key=s:option(Value, "password", "Password")
key.password=true;
return m
解釋一下關鍵代碼:
3)創建配置文件
#vim /etc/config/mycbi
config 'MySection' 'mycbi'
option 'username' 'youruser'
option 'password' 'yourpass'
4. 測試
進入OpenWRT界面,登陸後就可以點擊「網路」,如果是英文就點擊network,可以看到我們添加的子頁面入口:
點擊後進入頁面如下:
輸入用戶名密碼:root/test,點擊保存,後台查看配置文件已經被更改:
5. 問題記錄
1)首先,配置文件不能有任何後綴,否則頁面載入後是空頁面
2)如果出現500 錯誤,說明lua文件寫的有問題,要麼是路徑錯誤,要麼是語法錯誤,暫時沒找到寫日誌的方法,可以用wireshark抓包看錯誤
❾ 命令行設置ubuntu18.04 中文
安裝必要包:
修改配置文件:
將原始內容注釋掉或刪掉,替換為如下內容:
修改環境文件:
在原內容下面新開一行加入下列內容:
重啟