分类 Linux 下的文章

Centos6.8 升级Python到版本2.7.13

wget https://www.python.org/ftp/python/2.7.12/Python-2.7.13.tgz
tar zxvf Python-2.7.13.tgz
cd Python-2.7.13
./configure
make all
make install
make clean
make distclean

查看版本信息

/usr/local/bin/python2.7 -V

建立软连接,使系统默认的 python指向 python2.7

mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python

重新检验Python 版本

python -V

- 阅读剩余部分 -

Linux rootkit的检测

1、chkrootkit

wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar -zxvf chkrootkit.tar.gz
cd chkrootkit-0.52/
make sense
./chkrootkit

chkrootkit参数说明

Usage: ./chkrootkit [options] [test ...]
Options:
  -h                显示帮助信息
  -V                显示版本信息
  -l                显示测试内容
  -d                debug模式,显示检测过程的相关指令程序
  -q                安静模式,只显示有问题部分,
  -x                高级模式,显示所有检测结果
  -r dir            设定指定的目录为根目录
  -p dir1:dir2:dirN 检测指定目录
  -n                跳过NFS连接的目录

- 阅读剩余部分 -

tar命令常用参数

常用选项

-z --gzip:使用gzip工具(解)压缩,后缀一般为.gz
-c --create:tar打包,后缀一般为.tar
-f --file=:后面立刻接打包或压缩后得到的文件名
-x --extract:解包命令,与-c对应
-p 保留备份数据的原本权限和属性
-g 后接增量备份的快照文件
-C 指定解压缩的目录
--exclude 排除不打包的目录或文件,支持正则匹配

辅助选项

-X --exclude-from:在一个文件中列出要排除的目录或文件(在--exclude=较多时使用)
-t --list:列出备份档案中的文件列表,不与-c、-x同时出现
-j --bzip2:使用bzip2工具(解)压缩,后缀一般为.bz2
-P 保留绝对路径,解压时同样会自动解压到绝对路径下
-v (解)压缩过程显示文件处理过程,常用但不建议对大型文件使用

Centos只更新安全补丁

1、安装yum插件:

yum install yum-security

2、检查安全更新

yum --security check-update

3、只安装安全更新

yum update --security

4、检查特定软件有无安全更新

yum list-security software_name

5、列出更新的详细信息

yum info-security software_name

Let's Encrypt_openssl.so: undefined symbol: OPENSSL_sk_num错误解决

Let's Encrypt会自动安装在用户宿主目录~/.local/下,今天在续期证书时报错:

Creating virtual environment...
Installing Python packages...
Installation succeeded.
Traceback (most recent call last):
  File "/root/.local/share/letsencrypt/bin/letsencrypt", line 7, in <module>
    from certbot.main import main
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/main.py", line 13, in <module>
    from acme import jose
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/acme/jose/__init__.py", line 37, in <module>
    from acme.jose.interfaces import JSONDeSerializable
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/acme/jose/interfaces.py", line 9, in <module>
    from acme.jose import util
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/acme/jose/util.py", line 5, in <module>
    import OpenSSL
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/OpenSSL/rand.py", line 12, in <module>
    from OpenSSL._util import (
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: /root/.local/share/letsencrypt/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so: undefined symbol: OPENSSL_sk_num

原因是pip编译安装相应模块时调用到系统的openssl库,而系统openssl不支持OPENSSL_sk_num

由于我之前已经编译过新版的openssl放在/usr/local/openssl下,将第一步自动安装上的openssl-devel包删除,然后pip重新安装cryptographypyopenssl即可。注意:需先清除安装缓存目录,否则安装时不会重新编译。

yum remove openssl-devel
cd ~/.local/share/letsencrypt/bin/
pip uninstall cryptography pyopenssl -y
pip install --upgrade pip
rm -rf ~/.cache/
pip install cryptography pyopenssl
ldd ~/.local/share/letsencrypt/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so

此时已经链接到编译的openssl库上,这样再执行命令便不会报错。