Linux的加密认证功能以及openssl详解

一、详细介绍加密、解密技术

现在的加密/解密技术主要有三种:对称加密,非对称加密,和单向加密

这三种加密解密技术的组合就是现在电子商务的基础,它们三个有各自最适合的领域,而且所要完成的功能也是不同的,大家都知道,只要我们连上互联网,那么我们就相当于大门洞开,我们的一些隐私,跟其他人对话内容等都有可能会被人窃听,最常见的比如man in the middle(中间人),它主要是因为双方身份无法验证的时候回话被劫持造成的,就是说通信双方都以为是在跟对方交流,其实内容都可能已经被这个“中间人”修改过,一些重要的信息也被这个“中间人”所获得,这对于现在的电子商务来说是致命的,所有我们必须找到一种解决方案来解决这个问题

对称加密:指的是加密方和解密方使用的是同一个密钥

优点:加密解密的速度很快

缺点:如果两个从未通信过的用户要进行通信的时候,该如何把解密的密钥传输给对方呢(密钥仍然要在网络上传输,所以密钥还是可能会被“中间人”截获),这是对称加密最大的缺点;

常见的对称加密算法有:

DES:使用56位的密钥,2000年的时候被人破解了,所以现在基本不再使用

AES:高级加密标准,可以使用128,129,256三种长度密钥

其他的还有blowfish,Twofish和RC6,IDEA(商业算法),CAST5等

非对称加密:非对称加密方式解决了对称加密的缺陷,它的加密和解密密钥是不同的,比如对一组数字加密,我们可以用公钥对其加密,然后我们想要将其还原,就必须用私钥进行解密,公钥和私钥是配对使用的,常见的非对称加密算法有:

RSA:既可以用来加密解密,又可以用来实现用户认证

DSA:只能用来加密解密,所以使用范围没有RSA广

非对称加密长度通常有512,1024,2048,4096位,最常用的就是2048位,长度固然可以增加安全性但是需要花费很长时间来进行加密/解密,和对称加密相比,加密/解密的时间差不多是对称加密的1000倍,所以我们通常用其作为用户认证,用对称加密来实现数据的加密/解密

单项加密:单向加密就是用来计算一段数据的特征码的,为了防止用户通过“暴力破解”的方式解密,所以单向加密一般具有“雪崩效应”就是说:只要被加密内容有一点点的不同,加密所得结果就会有很大的变化。单项加密还有一个特点就是无论被加密的内容多长/短,加密的结果(就是提取特征码)是定长的,用途:用于验证数据的完整性,常用的单项加密算法

MD5:这种加密算法固定长度为128位

SHA1:这种加密算法固定长度是160位

下图是帮助我们理解加密算法在Internet上的使用所作的说明:

解释如下,先说BOB和ALICE通信阶段

黑框A:表示要传输的数据
黑框B:就是单项加密对这段数据提取的特征码,这段特征码同时运用了非对称加密,具体过程是用BOB的私钥加密,传输给ALICE,只要到达后ALICE能解密,表明对方确实是BOB。这一过程同时起到了用户认证和数据完整性的校验。黑框B又称为数字签名
红框A:这一阶段会生成一段很长的随机数(密钥)然后配合对称加密算法对黑框A和黑框B加密,但是我们如何把加密的密钥传输给ALICE呢?这就要用到红框B了
红框B:这一阶段是用ALICE的公钥加密这串随机数(对称加密阶段的密钥),ALICE接受到数据后如果能用自己私钥解密,那就证明接受者确实ALICE

加密过程:
第一步:用单向加密算法提取数据(黑框A)的特征值
第二步:用自己的私钥加密这段特征值形成黑框B
第三步:用对称加密算法,对黑框A和黑框B来加密,得到红框A
第四步:用ALICE的公钥来加密第三步所用的密钥,得到红框B

解密过程:
第一步:ALICE用自己的私钥解密红框B得到对称加密的密钥
第二步:用这个密钥解密红框A内容
第三步:用BOB的公钥解密黑框B,如果能成功,说明发送方确实是BOB,这就完成了身份验证(解密后会得到一串数据的特征值)
第四步:用同样的单项加密算法来对这段数据提取特征值,如果和第三步的特征值一样,说明这段数据是完整的,这就完成了数据完整性的校验

进行完上述内容厉害的读者会发现一个问题就是BOB和ALICE如何获得对方的公钥,或者说如何证明获得的公钥就是对方,这就需要引入另一方证书颁发机构CA,下面是对证书颁发机构跟BOB/ALICE之间的解释

黑框C:代表要颁发给BOB/ALICE的公钥,组织,地址等信息
黑框D:是对黑框C进行单向加密后得到的数字签名,然后用自己的私钥对其加密,传输给BOB和ALICE,拿着这个证书颁发机构的公钥(这些证书颁发机构的公钥一般已经被microsoft事先放在windows里面,当然其他操作系统也是一样的)的BOB和ALICE如果能对这个证书进行解密,说明这个证书颁发机构不是冒充的
红框E:表示颁发给BOB和ALICE的证书

二、openssl使用详解

在讲述之前首先要知道openssl中有如下后缀名的文件

.key格式:私有的密钥

.crt格式:证书文件,certificate的缩写

.csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写

.crl格式:证书吊销列表,Certificate Revocation List的缩写

.pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式

常用证书协议

x509v3:IETF的证书标准

x.500:目录的标准

SCEP:  简单证书申请协议,用http来进行申请,数据有PKCS#7封装,数据其实格式也是PKCS#10的

PKCS#7:  是封装数据的标准,可以放置证书和一些请求信息

PKCS#10:  用于离线证书申请的证书申请的数据格式,注意数据包是使用PKCS#7封装这个数据

PKCS#12:  用于一个单一文件中交换公共和私有对象,就是公钥,私钥和证书,这些信息进行打包,加密放在存储目录中,CISCO放在NVRAM中,用户可以导出,以防证书服务器挂掉可以进行相应恢复。思科是.p12,微软是.pfx


openssl主要组成部分


1

2

3

4

5

6

7

OpenSSL:主要有三个部分组成

[[email protected]~]# rpm -ql openssl

/usr/lib64/libcrypto.so.10        #libcrypto主要实现加密解密的工具

/usr/lib64/libssl.so.10           #主要实现ssl功能的

/usr/bin/openssl                  #多用途的命令行程序

[[email protected]~]# openssl version     #查看openssl的版本号

OpenSSL1.0.0-fips 29 Mar 2010

对文件进行加密测试:


1

2

3

4

5

6

7

8

9

10

11

[[email protected]~]# cp /etc/fstab ./                     #复制文件到当前目录下

[[email protected]~]# ls

anaconda-ks.cfg  boot fstab  install.log  install.log.syslog  ks.cfg

[[email protected]~]# openssl enc -des3 -in fstab -e -out fstab.des3    #对文件进行加密测试输出到fstab.des3

enterdes-ede3-cbc encryption password:              #输入密码

Verifying- enter des-ede3-cbc encryption password:  #再次输入相同密码

[[email protected]~]# ls                                    #查看

anaconda-ks.cfg  fstab      install.log         ks.cfg

boot             fstab.des3  install.log.syslog

[[email protected]~]# cat fstab.des3

Salted__)申.2t~?..??                                #后面的省略掉了

说明: openssl enc指定加密的类型,des3表示使用对称加密, -in指定要加密的文件,-e表示加密,-out指定加密后要保存的位置

对文件进行解密测试


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[[email protected]~]# ls

anaconda-ks.cfg  fstab      install.log         ks.cfg

boot             fstab.des3  install.log.syslog

[[email protected]~]# rm -f fstab                   #删除原文件

[[email protected]~]# ls

anaconda-ks.cfg  boot fstab.des3  install.log  install.log.syslog  ks.cfg

[[email protected]~]# openssl enc -des3 -in fstab.des3 -d -out fstab

enterdes-ede3-cbc decryption password:      #输入加密时的密码

[[email protected]~]# ls

anaconda-ks.cfg  fstab      install.log         ks.cfg

boot             fstab.des3  install.log.syslog

[[email protected]~]# cat fstab                    #查看文件明文的列出了一部分

#

#/etc/fstab

#Created by anaconda on Sat Aug 10 08:33:02 2013

说明: openssl enc指定加密的类型,des3表示对称加密,-in 表示加密后的文件, -d表示解密, -out表示解密后要保存的位置,实验中为当前目录

用单向加密算法获取文件的特征码


1

2

3

4

5

6

7

8

9

10

[[email protected]~]# rm -f fstab.des3

[[email protected]~]# ls

anaconda-ks.cfg  boot fstab  install.log  install.log.syslog  ks.cfg

[[email protected]~]# openssl dgst -md5 fstab #用md5单向加密算法获取文件的特征码

MD5(fstab)=70adea925c86b2fa91e6a4900b31508a

[[email protected]~]# openssl dgst -md5 -hex fstab #获取16进制的特征码,默认就是16进制的可以省略

MD5(fstab)=70adea925c86b2fa91e6a4900b31508a

[[email protected]~]# vim fstab #在文件第一行添加一个#

[[email protected]~]# openssl dgst -md5 -hex fstab #重新获取文件的特征码

MD5(fstab)=f8bd8f3c19697c85d4d683b0c4f0169b#和之前的特征码几乎完全不同,这就是所谓的雪崩效应

需要知道的是除了用上述命令获取文件的特征码之外,还可以通过md5sum fstal来获取,结果是相同的,


1

2

3

4

[[email protected]~]# openssl dgst -md5 -hex fstab

MD5(fstab)=f8bd8f3c19697c85d4d683b0c4f0169b

[[email protected]~]# md5sum fstab

f8bd8f3c19697c85d4d683b0c4f0169b  fstab

测试当前主机所支持的加密算法的速率的


1

2

3

4

5

6

7

8

9

10

11

12

13

[[email protected]~]# openssl speed des-ede3

Doingdes ede3 for 3s on 16 size blocks: 3298403 des ede3‘s in 2.99s

Doingdes ede3 for 3s on 64 size blocks: 828631 des ede3‘s in 2.99s

Doingdes ede3 for 3s on 256 size blocks: 209735 des ede3‘s in 2.99s

Doingdes ede3 for 3s on 1024 size blocks: 52521 des ede3‘s in 3.00s

Doingdes ede3 for 3s on 8192 size blocks: 6691 des ede3‘s in 2.98s

OpenSSL1.0.0-fips 29 Mar 2010

builton: Thu Feb 21 23:42:57 UTC 2013

options:bn(64,64)md2(int) rc4(16x,int) des(idx,cisc,16,int) aes(partial) blowfish(idx)

compiler:gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN-DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector--param=ssp-buffer-size=4 -m64 -mtune=generic -Wa,--noexecstack-DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM-DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM

The‘numbers‘ are in 1000s of bytes per second processed.

type             16 bytes     64 bytes   256 bytes   1024 bytes   8192 bytes

desede3         17650.32k    17736.58k   17957.24k    17927.17k    18393.51

计算密码值openssl passwd


1

2

3

4

5

6

7

8

9

10

11

[[email protected]~]# openssl passwd -1 -salt 12345678

Password:

$1$12345678$85L2ohc0YJ4r/l1LAa6co1

说明:其中-1表示基于md5的加密算法,-salt添加一些额外数(一般为8位),当前最好使用无规律的随机数,通过帮助文档可以进行查看man sslpasswd

[[email protected]~]# openssl rand -hex 4 #随机生产8位随机数

2c58639e

[[email protected]~]# openssl passwd -1 -salt `openssl rand -hex 4`#通过salt后加密计算密码值

Password:       #输入密码

$1$ca64684d$tQyI7a.yLwbQRMulUBMCI/       #生成的密码值

         # man sslpasswd

         # openssl passwd -1 -salt

生成RSA算法的私钥:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

[[email protected]~]# openssl genrsa;

GeneratingRSA private key, 512 bit long modulus

.++++++++++++

................++++++++++++

eis 65537 (0x10001)

-----BEGINRSA PRIVATE KEY-----

MIIBOQIBAAJBAJnZzY3oIvGIG8CJFoXp0QHd1VvyFGmSvIvDMAfFgmuzfL8E3uk0

joZDq6HEnNxiAl+KFdheZeB2qluD2lZy9dUCAwEAAQJAEjnvVCRwH1UUlJapCGxO

yn3RTPc829T6aURSaFlJviByWdgKLnOsr/HpBaF4/LGJXKcRdCRLC33CGBrSNFmc

8QIhAMskRtZ0xls0fjmCo8EnYOJBjmGjT5e8in19Ekc0KSy3AiEAweIl9k25q53J

XuFz/rf0ZWtjkH2sC72MgI7iIiGAvdMCIDz9Gzdvv83KKMtjaX6oL/I99F1kBpVr

ybh7QG2YP3RpAiAGRA7CBQUJHNJTNKoRA1TsqinPk6ApyPhvdy6rt7V3bQIgDqQ7

ZquRPTo8QGCGrevqZBUowjeqczOzQaWup9nMlNg=

-----ENDRSA PRIVATE KEY-----

[[email protected]~]# openssl genrsa 2048 > lian.key #可以指定生成私钥的位数,并重定向文件中

GeneratingRSA private key, 2048 bit long modulus

.............................................+++

.....+++

eis 65537 (0x10001)

[[email protected]~]# cat lian.key #可以进行查看

需要注意的是,私钥文件是至关重要的,不能让人们轻易的查看,因此我们可以对生成的私钥文件进行加密


1

2

3

4

5

6

7

8

9

10

11

[[email protected]~]# openssl genrsa -des3 2048 > lian.key #对生成的私钥文件进行单向加密

GeneratingRSA private key, 2048 bit long modulus

......................................................................................................................................+++

............................................+++

eis 65537 (0x10001)

Enterpass phrase:

Verifying- Enter pass phrase:

[[email protected]~]# cat lian.key #查看加密后的私钥文件

-----BEGINRSA PRIVATE KEY-----

Proc-Type:4,ENCRYPTED   #表示该私钥已经被加密

DEK-Info:DES-EDE3-CBC,3E3043F0CDBAA02E

对私钥进行加密,虽然相对比较安全,但是对用户也带来了一定的麻烦,因为用户每次使用私钥时都需要输入密码,因此对私钥文件权限的设置是非常必要的


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[[email protected]~]# (umask 077;openssl genrsa -out lian2.key 2048)

GeneratingRSA private key, 2048 bit long modulus

..........................................................+++

..+++

eis 65537 (0x10001)

[[email protected]~]# ll

total84

-rw-------.1 root root  2801 Aug 10 08:44anaconda-ks.cfg

drwxr-xr-x  3 root root 4096 Aug 11 12:32 boot

-rw-r--r--  1 root root 1051 Aug 21 15:34 fstab

-rw-r--r--.1 root root 43809 Aug 10 08:44 install.log

-rw-r--r--.1 root root  9963 Aug 10 08:41install.log.syslog

-rw-r--r--  1 root root 1388 Aug 11 12:32 ks.cfg

-rw-------  1 root root  1679 Aug 21 16:14 lian2.key

-rw-r--r--  1 root root  1743 Aug 21 16:06 lian.key

需要注意的是:这里的umask设置权限一定要加上括号不然后面创建所有的文件都会变成此权限的,因为它是一直生效的;使用括号表示此命令在一个子shell中执行,完成子shell退出

从私钥文件中提出公钥:


1

2

3

4

5

6

7

8

9

10

11

[[email protected]~]# openssl rsa -in lian2.key -pubout

writingRSA key

-----BEGINPUBLIC KEY-----

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuRr/Yy9xPDYowj2Cf+vS

apaSvOHmj33tpm80NAzB7IOvkC8oiulj6oUoowWT1xHEuGbyOJILQEBwN4/Jgm+S

IN6/r8gLssY4UBUj34T9ZHnAD0jEgPxRrQTiWSe1SlCStwkCR3RPlBUNXUAySa7X

St70Fg9gKIlz4HNMZRrXFgxgFSVE0i4sWFCwrDeIbAzTx2/cGJVtQcYSMrdaKDAH

NdgcqKNI0aQSwX9HvTxRtX4sfl7XbqXiyUUJVyuZ4jIxI7yKyii68y/Pk3mIz6mL

g5XOa15Jw9ggKHY5gd7g+nr4iioHMQQ/WI8Bargs1ftwESw5lKddQBnLgn2aTpxe

1QIDAQAB

-----ENDPUBLIC KEY-----

三、讲述如何申请证书:

1)首先要生成一个私钥文件

2)制作一个证书签署请求

3)有CA负责签署证书


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

[[email protected]~]# openssl req -new -key lan.key -out lan.csr

Youare about to be asked to enter information that will be incorporated

intoyour certificate request.

Whatyou are about to enter is what is called a Distinguished Name or a DN.

Thereare quite a few fields but you can leave some blank

Forsome fields there will be a default value,

Ifyou enter ‘.‘, the field will be left blank.

-----

CountryName (2 letter code) [XX]:CN   #国家名

Stateor Province Name (full name) []:henan        #省份名称

LocalityName (eg, city) [Default City]:Zhengzhou         #城市名称

OrganizationName (eg, company) [Default Company Ltd]:lanlian   #公司名称

OrganizationalUnit Name (eg, section) []:tech     #部分名称

CommonName (eg, your name or your server‘s hostname) []:www.lanlian.com      #证书拥有者的名称,若使用域名访问这里使用域名,如用ip地址访问这里一定是Ip地址

EmailAddress []:  #邮箱地址,可以省略不写

Pleaseenter the following ‘extra‘ attributes

tobe sent with your certificate request

Achallenge password []: #将请求加密起来输入密码,不想直接回车即可

Anoptional company name []:

说明:openssl req 证书签署请求和证书生成工具,-key指定私钥文件的存放路径,-new指定证书申请,当前命令的后面可以加-days明确指定证书申请有效使用期限,-out 指定证书申请保存的位置通常以.csr结尾,要了解更多信息可以通过man req进行查看

详解自建CA过程:

首先查看解析配置文件

#cd/etc/pki/tls

#vimopenssl.cnf

列出了重要的一部分:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

####################################################################

[ca ]

default_ca      = CA_default            # The default ca section

####################################################################

[CA_default ] #默认CA的配置

dir             /etc/pki/CA           # Where everything is kept自建CA的工作目录

certs           = $dir/certs            # Where the issued certs are kept指定当前CA的证书存放位置

crl_dir         = $dir/crl              # Where the issued crl are kept指定证书撤销列表所在的工作目录

database        = $dir/index.txt        # database index file.将签署的证书制作成索引保存下来也就是数据库文件

#unique_subject= no                    # Set to ‘no‘ toallow creation of

                                        #several ctificates with same subject.

new_certs_dir   = $dir/newcerts         # default place for new certs.新签证书的位置

certificate     = $dir/cacert.pem       # The CA certificate  CA自己证书位置

serial          = $dir/serial           # The current serial number已签署的证书,序列号

crlnumber       = $dir/crlnumber        # the current crl number已吊销证书的个数

                                        # mustbe commented out to leave a V1 CRL

crl             = $dir/crl.pem          # The current CRL当前的证书吊销文件

private_key     = $dir/private/cakey.pem# The private key证书颁发机构自己的私钥文件

RANDFILE        = $dir/private/.rand    # private random number file

#cd/etc/pki/CA


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

[[email protected]]# (umask 077;openssl genrsa -out private/cakey.pem 2048) #为CA生成一个私钥

[[email protected]]# ls private/

cakey.pem

 [[email protected] CA]# openssl req -new -x509 -keyprivate/cakey.pem -out cacert.pem -days 3656

Youare about to be asked to enter information that will be incorporated

intoyour certificate request.

Whatyou are about to enter is what is called a Distinguished Name or a DN.

Thereare quite a few fields but you can leave some blank

Forsome fields there will be a default value,

Ifyou enter ‘.‘, the field will be left blank.

-----

CountryName (2 letter code) [XX]:CN

Stateor Province Name (full name) []:henan

LocalityName (eg, city) [Default City]:zhengzhou

OrganizationName (eg, company) [Default Company Ltd]:lanlian

OrganizationalUnit Name (eg, section) []:tech

CommonName (eg, your name or your server‘s hostname) []:www.magedu.com

EmailAddress []:

[[email protected]]# ls

cacert.pem  certs crl  newcerts  private

[[email protected]]# touch serial index.txt

[[email protected]]# echo 01 > serial

[[email protected]]# ls

cacert.pem  certs crl  index.txt  newcerts private  serial

进行证书签署:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

[[email protected]~]# openssl ca -in lan.csr -out lan.crt -days 3656

Usingconfiguration from /etc/pki/tls/openssl.cnf

Checkthat the request matches the signature

Signatureok

CertificateDetails:

        Serial Number: 1 (0x1)

        Validity

            Not Before: Aug 21 09:20:01 2013GMT

            Not After : Aug 25 09:20:01 2023GMT

        Subject:

            countryName               = CN

            stateOrProvinceName       = henan

            organizationName          = lanlian

            organizationalUnitName    = tech

            commonName                = www.lanlian.com

        X509v3 extensions:

            X509v3 Basic Constraints:

                CA:FALSE

            Netscape Comment:

                OpenSSL Generated Certificate

            X509v3 Subject Key Identifier:

               6C:0F:54:43:9A:73:B2:74:FF:2E:59:16:E6:FD:D7:EE:C3:7D:0A:0B

            X509v3 Authority Key Identifier:

                keyid:59:56:89:9D:46:10:65:8B:F0:B4:EB:ED:C2:21:A0:CC:E4:9F:F4:FE

Certificateis to be certified until Aug 25 09:20:01 2023 GMT (3656 days)

Signthe certificate? [y/n]:y

1out of 1 certificate requests certified, commit? [y/n]y

Writeout database with 1 new entries

DataBase Updated

总结:上述介绍加密认证技术等相关介绍在网络通信等各方面都有很重要的作用,若有不足之处,希望大家多多提醒,具体应用在上篇的ftps已经详细介绍,这里就不再赘述,希望对大家有所帮助!

本文出自 “时光的印记” 博客,请务必保留此出处http://lanlian.blog.51cto.com/6790106/1281720

时间: 2024-10-14 18:16:46

Linux的加密认证功能以及openssl详解的相关文章

Linux内核模块编程与内核模块LICENSE -《详解(第3版)》预读

Linux内核模块简介 Linux内核的整体结构已经非常庞大,而其包含的组件也非常多.我们怎样把需要的部分都包含在内核中呢?一种方法是把所有需要的功能都编译到Linux内核.这会导致两个问题,一是生成的内核会很大,二是如果我们要在现有的内核中新增或删除功能,将不得不重新编译内核. 有没有一种机制使得编译出的内核本身并不需要包含所有功能,而在这些功能需要被使用的时候,其对应的代码被动态地加载到内核中呢?Linux提供了这样的一种机制,这种机制被称为模块(Module).模块具有这样的特点. 模块本

Linux系统根文件以及命名规则详解

一.Linux系统根文件详解 Linux的重要哲学思想其实就是:将程序的配置文件保存为纯文本格式. 1./boot:系统启动文件,如:内核文件,iniyrd以及gurb(bootloarder) 2./dev:目录下为设备文件,设备文件又分为块设备和字符设备: 块设备:按数据块随机访问,没有顺序. 字符设备:线性访问,按字符为单位进行. 注:其中背景为黑色,字体为***的文件,为特殊文件,"1,   0"分别为文件的主设备号和次设备号 [[email protected] ~]# ls

Linux下同步工具inotify+rsync使用详解

Linux下同步工具inotify+rsync使用详解 Posted on 2014-12-12 |  In Linux|  9|  Visitors 438 1. rsync 1.1 什么是rsync rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.它使用所谓的"Rsync演算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.所以通常可以作为备份工具来使用. 运行Rsync serve

linux 之用户和组及权限详解

linux之用户和组及权限详解 权限有三种 r:可读,w:可写,x:可执行 针对文件: r:可读, 表示可使用cat等命令查看 w:可写,  表示可写或删除指定文件 x:可执行,表示在bash下可当作命令使用执行 针对目录: r:可读,可使用ls命令显示内部的所有文件 w:可写, 可以在此目录中创建文件或子目录 x:可执行,可使用cd命令切换此目录,也可使用ls -l查看内部文件 权限的表现形式: 0 000 ---:无权限 1 001 --x: 执行 2 010 -w-: 可写 3 011 -

Linux(centos)系统各个目录的作用详解

Linux(centos)系统各个目录的作用详解 文件系统的类型 LINUX有四种基本文件系统类型:普通文件.目录文件.连接文件和特殊文件,可用file命令来识别. 普通文件:如文本文件.C语言元代码.SHELL脚本.二进制的可执行文件等,可用cat.less.more.vi.emacs来察看内容,用mv来改名. 目录文件:包括文件名.子目录名及其指针.它是LINUX储存文件名的唯一地方,可用ls列出目录文件. 连接文件:是指向同一索引节点的那些目录条目.用ls来查看是,连接文件的标志用l开头,

Linux文本处理必杀技之awk应用详解

AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯.彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识.awk经过改进生成的新的版本nawk,gawk,现在默认linux系统下日常使用的是gawk,用命令可以查看正在应用的awk的来源(ls -l /bin/awk) awk是一款强大的报告日志生成处理工具,不同于sed和grep,它的侧重点是如何把文本信息更好的展

转:Linux中find命令-path -prune用法详解

在Windows中可以在某些路径中查找文件,也可以设定不在某些路径中查找文件,下面用Linux中的find的命令结合其-path -prune参数来看看在Linux中怎么实现此功能. 假如在当前目录下查找文件,且当前目录下有很多文件及目录(多层目录),包括dir0.dir1和dir2 ...等目录及dir00.dir01...dir10.dir11...等子目录. 1. 在当前目录下查找所有txt后缀文件 find ./ -name *.txt 2.在当前目录下的dir0目录及子目录下查找txt

linux Mysql 主从复制 原理介绍和步骤详解

大家好,我是霸王卸甲,今天我给大家带来的是linux数据库中的主从复制的简单介绍和步骤详解. 主从复制 mysql主从复制 灵活 一主一从 主主复制 一主多从---扩展系统读取的性能,因为读是在从库读取的: 多主一从---5.7开始支持 联级复制--- 用途及条件 mysql主从复制用途 实时灾备,用于故障切换 读写分离,提供查询服务 备份,避免影响业务 主从部署必要条件: 主库开启binlog日志(设置log-bin参数) 主从server-id不同 从库服务器能连通主库 主从原理mysql主

mysql数据库分区功能及实例详解

分区听起来怎么感觉是硬盘呀,对没错除了硬盘可以分区数据库现在也支持分区了,分区可以解决大数据量的处理问题,下面一起来看一个mysql数据库分区功能及实例详解 一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例.mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存