chroot命令_Linux chroot 命令用法详解:把根目录换成指定的目的目录 系统安全

chroot命令_Linux chroot 命令用法详解:把根目录换成指定的目的目录

chroot命令用来在指定的根目录下运行指令。chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以/,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为/位置。 在经过 chroot 命令之后,系统读取到的目录和文件将不在是旧系统根下的而是新根下(即被指定的新的位置)的目录结构和文件,因此它带来的好处大致有以下3个: 增加了系统的安全性,限制了用户的权力: 在经过 chroot 之后,在新根下将访问不到旧系统的根目录结构和文件,这样就增强了系统的安全性。这个一般是在登录 (login) 前使用 chroot,以此达到用户不能访问一些特定的文件。 建立一个与原系统隔离的系统目录结构,方便用户的开发: 使用 chroot 后,系统读取的是新根下的目录和文件,这是一个与原系统根下文件不相关的目录结构。在这个新的环境中,可以用来测试软件的静态编译以及一些与系统不相关的独立开发。 切换系统的根目录位置,引导 Linux 系统启动以及急救系统等: chroot 的作用就是切换系统的根位置,而这个作用最为明显的是在系统初始引导磁盘的处理过程中使用,从初始 RAM 磁盘 (initrd) 切换系统的根位置并执行真正的 init。另外,当系统出现一些问题时,我们也可以使用 chroot 来切换到一个临时的系统。 语法 chroot(选项)(参数) 选项 --help:在线帮助; --version:显示版本信息。 参数 目录:指定新的根目录; 指令:指定要执行的指令。 实例 将target作为根目录(运行其中的/bin/sh): chroot target /bin/sh 这里,target是busybox安装好的路径,类似一个文件系统包含了许多工具。这样,将会进入一个shell界面,这个shell以target为根。运行exit退出该shell又返回原来的本机环境了,也可以使用Ctrl+D。 注意: 根用户才行 如果直接chroot target默认寻找target的/bin/bash.这会以target作为根目录 将target作为根目录(运行其中的/bin/ls): chroot target /bin/ls 这里,target是busybox安装好的路径,类似一个文件系统包含了许多工具。这样运行的是target中的ls(不是本机的/bin/ls),然后返回立即本机的目录环境。 注意,自己在本地编译一个程序生成a.out之后,拷进target/bin/中这样运行却不行,因为它包含了动态连接的库,需要用ldd查看a.out需要那些动态库,将这些库拷贝到新根的对应路径下才能执行。 用chroot运行自己编译的一个程序: 准备chroot的根目录: mkdir newRoot 编译自己的程序: gcc main.c 这里main.c生成a.out,功能是输出hello。 查看程序需要的库: ldd a.out 输入之后,输出如下: linux-gate.so.1 = > (0xb8034000) libc.so.6 = >...
阅读全文
logrotate命令_Linux logrotate 命令用法详解:统日志进行轮转、压缩和删除 系统安全

logrotate命令_Linux logrotate 命令用法详解:统日志进行轮转、压缩和删除

logrotate命令用于对系统日志进行轮转、压缩和删除,也可以将日志发送到指定邮箱。使用logrotate指令,可让你轻松管理系统所产生的记录文件。每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc/logrotate.conf文件中。 语法 logrotate(选项)(参数) 选项 -?或--help:在线帮助; -d或--debug:详细显示指令执行过程,便于排错或了解程序执行的情况; -f或--force :强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然; -s<状态文件>或--state=<状态文件>:使用指定的状态文件; -v或--version:显示指令执行过程; -usage:显示指令基本用法。 参数 配置文件:指定lograote指令的配置文件。
阅读全文
lastlog命令_Linux lastlog 命令用法详解:显示系统中所有用户最近一次登录信息 系统安全

lastlog命令_Linux lastlog 命令用法详解:显示系统中所有用户最近一次登录信息

lastlog命令用于显示系统中所有用户最近一次登录信息。 lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示**Never logged**。注意需要以root身份运行该命令。 语法 lastlog(选项) 选项 -b<天数>:显示指定天数前的登录信息; -h:显示召集令的帮助信息; -t<天数>:显示指定天数以来的登录信息; -u<用户名>:显示指定用户的最近登录信息。 实例 lastlog Username Port From Latest root pts/0 221.6.45.34 Tue Dec 17 09:40:48 +0800 2013 bin **Never logged in** daemon **Never logged in** adm **Never logged in** lp **Never logged in** sync **Never logged in** shutdown **Never logged in** halt **Never logged in** mail **Never logged in** news **Never logged in** uucp **Never logged in** operator **Never logged in** games **Never logged in** gopher **Never logged in** ftp **Never logged in** nobody...
阅读全文
sudo命令_Linux sudo 命令用法详解:以其他身份来执行命令 系统安全

sudo命令_Linux sudo 命令用法详解:以其他身份来执行命令

sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。 语法 sudo(选项)(参数) 选项 -b:在后台执行指令; -h:显示帮助; -H:将HOME环境变量设为新身份的HOME环境变量; -k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。 -l:列出目前用户可执行与无法执行的指令; -p:改变询问密码的提示符号; -s<shell>:执行指定的shell; -u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份; -v:延长密码有效期限5分钟; -V :显示版本信息。 参数 指令:需要运行的指令和对应的参数。 实例 配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。 visudo默认的是在vi里打开配置文件,用vi来修改文件。我们可以在编译时修改这个默认项。visudo不会擅自保存带有语法错误的配置文件,它会提示你出现的问题,并询问该如何处理,就像: >>> sudoers file: syntax error, line 22 << 此时我们有三种选择:键入“e”是重新编辑,键入“x”是不保存退出,键入“Q”是退出并保存。如果真选择Q,那么sudo将不会再运行,直到错误被纠正。 现在,我们一起来看一下神秘的配置文件,学一下如何编写它。让我们从一个简单的例子开始:让用户Foobar可以通过sudo执行所有root可执行的命令。以root身份用visudo打开配置文件,可以看到类似下面几行: # Runas alias specification # User privilege specificationroot ALL=(ALL)ALL 我们一看就明白个差不多了,root有所有权限,只要仿照现有root的例子就行,我们在下面加一行(最好用tab作为空白): foobar ALL=(ALL) ALL 保存退出后,切换到foobar用户,我们用它的身份执行命令: [[email protected] ~]$ ls /root ls: /root: 权限不够 [[email protected] ~]$ sudo ls /root PassWord: anaconda-ks.cfg Desktop install.log install.log.syslog 好了,我们限制一下foobar的权利,不让他为所欲为。比如我们只想让他像root那样使用ls和ifconfig,把那一行改为: foobar localhost= /sbin/ifconfig, /bin/ls 再来执行命令: [[email protected] ~]$ sudo head -5 /etc/shadow Password: Sorry, user foobar is not allowed to execute...
阅读全文
lastb命令_Linux lastb 命令用法详解:列出登入系统失败的用户相关信息 系统安全

lastb命令_Linux lastb 命令用法详解:列出登入系统失败的用户相关信息

lastb命令用于显示用户错误的登录列表,此指令可以发现系统的登录异常。单独执行lastb命令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,全部显示出来。 语法 lastb(选项)(参数) 选项 -a:把从何处登入系统的主机名称或ip地址显示在最后一行; -d:将IP地址转换成主机名称; -f<记录文件>:指定记录文件; -n<显示列数>或-<显示列数>:设置列出名单的显示列数; -R:不显示登入系统的主机名称或IP地址; -x:显示系统关机,重新开机,以及执行等级的改变等信息。 参数 用户名:显示中的用户的登录列表; 终端:显示从指定终端的登录列表。 实例 首次运行lastb命令会报下的错误: lastb: /var/log/btmp: No such file or directory Perhaps this file was removed by the operator to prevent logging lastb info. 只需建立这个不存在的文件即可。 touch /var/log/btmp 使用ssh的登录失败不会记录在btmp文件中。 lastb | head root ssh:notty 110.84.129.3 Tue Dec 17 06:19 - 06:19 (00:00) root ssh:notty 110.84.129.3 Tue Dec 17 04:05 - 04:05 (00:00) root ssh:notty 110.84.129.3 Tue Dec 17 01:52 - 01:52 (00:00) root ssh:notty 110.84.129.3 Mon Dec 16 23:38 - 23:38 (00:00)...
阅读全文
logwatch命令_Linux logwatch 命令用法详解:可定制和可插入式的日志监视系统 系统安全

logwatch命令_Linux logwatch 命令用法详解:可定制和可插入式的日志监视系统

logwatch命令是一个可定制和可插入式的日志监视系统,它通过遍历给定时间范围内的系统日志文件而产生日志报告。logwatch默认每天执行一次,可以从/etc/cron.daily里看到。 语法 logwatch(选项) 选项 --detail<报告详细程度>:指定日志报告的详细程度; --logfile<日志文件>:仅处理指定的日志文件; --service<服务名>:仅处理指定服务的日志文件; --print:打印结果到标准输出; --mailto<邮件地址>:将结果发送到指定邮箱; --range<日期范围>:指定处理日志的日期范围; --archives:处理归档日志文件; --debug<调试等级>:调试模式; --save<文件名>:将结果保存到指定文件中,而不显示或者发送到指定邮箱; --logdir<目录>:指定查找日志文件的目录,而不使用默认的日志目录; --hostname<主机名>:指定在日志报告中使用的主机名,不使用系统默认的主机名; --numeric:在报告中显示ip地址而不是主机名; --help:显示指令的帮助信息。 实例 检查你的主机上是否已经存在Logwatch(Redhat默认已经安装了Logwatch,不过版本比较旧): rpm -qa logwatch 如果主机上没有logwatch,则执行: rpm -Ivh logwatch***.rpm 如果有老版本的logwatch,则执行: rpm -Uvh logwatch***.rpm 安装完毕后,开始配置: 可以修改和添加它的logfiles、services和其他配置,但默认已经有很多脚本了,只要在1)里设置Detail = High就可以了。 可以添加新的配置到/etc/logwatch/conf/logwatch.conf 也可以修改/usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/会自动覆盖/usr/share/logwatch/default.conf/下的同名文件。 如果没有设置logwatch.conf也没关系,可以直接在命令行下设置。 logwatch --detail High --Service All --range All --print 基本就可以显示出所有日志的情况了 logwatch --service sshd --detail High 只看sshd的日志情况
阅读全文
openssl命令_Linux openssl 命令用法详解:强大的安全套接字层密码库 系统安全

openssl命令_Linux openssl 命令用法详解:强大的安全套接字层密码库

OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。在OpenSSL被曝出现严重安全漏洞后,发现多数通过SSL协议加密的网站使用名为OpenSSL的开源软件包。由于这是互联网应用最广泛的安全传输方法,被网银、在线支付、电商网站、门户网站、电子邮件等重要网站广泛使用,所以该漏洞影响范围广大。 OpenSSL有两种运行模式:交互模式和批处理模式。 直接输入openssl回车进入交互模式,输入带命令选项的openssl进入批处理模式。 OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。  对称加密算法 OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。  非对称加密算法 OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般用户密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,当然,如果你能够忍受其缓慢的速度,那么也可以用于数据加密。DSA算法则一般只用于数字签名。  信息摘要算法 OpenSSL实现了5种信息摘要算法,分别是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA算法事实上包括了SHA和SHA1两种信息摘要算法,此外,OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSS和DSS1。  密钥和证书管理 密钥和证书管理是PKI的一个重要组成部分,OpenSSL为之提供了丰富的功能,支持多种标准。  首先,OpenSSL实现了ASN.1的证书和密钥相关标准,提供了对证书、公钥、私钥、证书请求以及CRL等数据对象的DER、PEM和BASE64的编解码功能。OpenSSL提供了产生各种公开密钥对和对称密钥的方法、函数和应用程序,同时提供了对公钥和私钥的DER编解码功能。并实现了私钥的PKCS#12和PKCS#8的编解码功能。OpenSSL在标准中提供了对私钥的加密保护功能,使得密钥可以安全地进行存储和分发。  在此基础上,OpenSSL实现了对证书的X.509标准编解码、PKCS#12格式的编解码以及PKCS#7的编解码功能。并提供了一种文本数据库,支持证书的管理功能,包括证书密钥产生、请求产生、证书签发、吊销和验证等功能。  事实上,OpenSSL提供的CA应用程序就是一个小型的证书管理中心(CA),实现了证书签发的整个流程和证书管理的大部分机制。 实例 1、消息摘要算法应用例子 用SHA1算法计算文件file.txt的哈西值,输出到stdout: # openssl dgst -sha1 file.txt 用SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt: # openssl sha1 -out digest.txt file.txt 用DSS1(SHA1)算法为文件file.txt签名,输出到文件dsasign.bin。签名的private key必须为DSA算法产生的,保存在文件dsakey.pem中。 # openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt 用dss1算法验证file.txt的数字签名dsasign.bin,验证的private key为DSA算法产生的文件dsakey.pem。 # openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt 用sha1算法为文件file.txt签名,输出到文件rsasign.bin,签名的private key为RSA算法产生的文件rsaprivate.pem。 # openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt # 用sha1算法验证file.txt的数字签名rsasign.bin,验证的public key为RSA算法生成的rsapublic.pem。 # openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt 2、对称加密应用例子 对称加密应用例子,用DES3算法的CBC模式加密文件plaintext.doc,加密结果输出到文件ciphertext.bin。 # openssl enc -des3 -salt -in plaintext.doc...
阅读全文
last命令_Linux last 命令用法详解:列出目前与过去登入系统的用户相关信息 系统安全

last命令_Linux last 命令用法详解:列出目前与过去登入系统的用户相关信息

last命令用于显示用户最近登录信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。 语法 last(选项)(参数) 选项 -a:把从何处登入系统的主机名称或ip地址,显示在最后一行; -d:将IP地址转换成主机名称; -f <记录文件>:指定记录文件。 -n <显示列数>或-<显示列数>:设置列出名单的显示列数; -R:不显示登入系统的主机名称或IP地址; -x:显示系统关机,重新开机,以及执行等级的改变等信息。 参数 用户名:显示用户登录列表; 终端:显示从指定终端的登录列表。 实例 last命令用了显示用户登录情况,以下是直接显示固定行数的记录: last -10 root pts/0 221.6.45.34 Tue Dec 17 09:40 still logged in root pts/0 221.6.45.34 Mon Dec 16 09:00 - 11:57 (02:56) root pts/0 222.94.97.122 Sun Dec 15 20:39 - 23:28 (02:48) root pts/0 222.95.209.80 Sat Dec 14 14:39 - 14:58 (00:18) root pts/0 221.6.45.34 Thu Dec 12 16:55 - 17:37 (00:41) root pts/0 49.65.139.195 Wed Dec 11 20:40 - 21:16 (00:35) root pts/0 49.65.139.195...
阅读全文
syslog命令_Linux syslog 命令用法详解:系统默认的日志守护进程 系统安全

syslog命令_Linux syslog 命令用法详解:系统默认的日志守护进程

syslog是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。程序,守护进程和内核提供了访问系统的日志信息。因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息。 几乎所有的网络设备都可以通过syslog协议,将日志信息以用户数据报协议(UDP)方式传送到远端服务器,远端接收日志服务器必须通过syslogd监听UDP 端口514,并根据 syslog.conf配置文件中的配置处理本机,接收访问系统的日志信息,把指定的事件写入特定文件中,供后台数据库管理和响应之用。意味着可以让任何事件都登录到一台或多台服务器上,以备后台数据库用off-line(离线) 方法分析远端设备的事件。 通常,syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。/etc/syslog.conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息。 使用方法 在/var/log中创建并写入日志信息是由syslog协议处理的,是由守护进程sylogd负责执行。每个标准的进程都可以用syslog记录日志。可以使用logger命令通过syslogd记录日志。 要向syslog文件/var/log/messages中记录日志信息: logger this is a test log line 输出: tail -n 1 messages Jan 5 10:07:03 localhost root: this is a test log line 如果要记录特定的标记(tag)可以使用: logger -t TAG this is a test log line 输出: tail -n 1 messages Jan 5 10:37:14 localhost TAG: this is a test log line
阅读全文