分类目录归档:linux

centos7设置输入密码三次错误锁定账号

1、限制用户远程登录

在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!

# vim /etc/pam.d/sshd

#%PAM-1.0  

auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10


各参数解释

even_deny_root 也限制root用户;

deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户

unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;

root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;

此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。


2、限制用户从tty登录

在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!

# vim /etc/pam.d/login

#%PAM-1.0  

 auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10


同样是增加在第2行!

3、查看用户登录失败次数

#cd /etc/pam.d/

[root@node100 pam.d]# pam_tally2 –user root    

Login Failures Latest failure From  

root 7 07/16/12 15:18:22 tty1


4、解锁指定用户

[root@node100 pam.d]# pam_tally2 -r -u root  

Login Failures Latest failure From  

LINUX新建和增加SWAP分区

我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后(在运行中)如何建立或调整swap分区呢?

在装完Linux系统之后,建立Swap分区有两种方法。

1.新建磁盘分区作为swap分区

2.用文件作为swap分区 

下面介绍这两种方法:(都必须用root权限,操作过程应该小心谨慎。)

 

一、新建磁盘分区作为swap分区

1.以root身份进入控制台(登录系统),输入

# swapoff -a      停止所有的swap分区

 

2. 用fdisk命令(例:# fdisk /dev/sdb)对磁盘进行分区,添加swap分区,新建分区,在fdisk中用“t”命令将新添的分区id改为82(Linux swap类型),最后用w将操作实际写入硬盘(没用w之前的操作是无效的)。

 

3. # mkswap /dev/sdb2    格式化swap分区,这里的sdb2要看您加完后p命令显示的实际分区设备名

 

4. # swapon /dev/sdb2    启动新的swap分区

 

5. 为了让系统启动时能自动启用这个交换分区,可以编辑/etc/fstab,加入下面一行

/dev/sdb2 swap swap defaults 0 0

 

 

二、用文件作为Swap分区

 

1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。

# dd if=/dev/zero of=/root/swapfile bs=1M count=1024

 

2.格式化为交换分区文件:

# mkswap /root/swapfile     建立swap的文件系统

 

3.启用交换分区文件:

# swapon /root/swapfile     启用swap文件

 

4.使系统开机时自启用,在文件/etc/fstab中添加一行:

/root/swapfile swap swap defaults 0 0

 

新建和增加交换分区用到的命令为:mkswap、swapon等,而想关闭掉某个交换分区则用“swapon /dev/sdb2”这样的命令即可

CentOS7安装xrdp(远程)

前提:

CentOS安装桌面,如果无桌面,请执行:

#yum -y groups install "GNOME Desktop"

#startx

方法一

配置源

#yum install  epel* -y

安装xrdp

#yum –enablerepo=epel -y install xrdp

 

方法二

1、安装xrdp

更具自己的系统位数选择对应的包(如果是32位使用则选择i386,如果是64位,请选择x86_64),查找的方法是到镜像网站http://mirrors.ustc.edu.cn/fedora/epel/7上进入到对应的目录,查找以epel-release-开头的RPM包)

#wget http://mirrors.ustc.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm

#rpm -Uvh epel-release-7-11.noarch.rpm

#yum install xrdp

2、安装 tigervnc

#yum install tigervnc tigervnc-server

3、配置SELinux , 否则可能无法启动xrdp服务,或者启动出错

chcon -t bin_t /usr/sbin/xrdp

chcon -t bin_t /usr/sbin/xrdp-sesman

 

下面的内容都是一样的

启动xrdp并设置开机启动

#systemctl start xrdp

#systemctl enable xrdp

安装好了之后将防火墙关闭,或者开放3389端口

//开放3389端口

firewall-cmd –permanent –zone=public –add-port=3389/tcp

firewall-cmd –reload

======================或者关闭防火墙

//临时关闭

systemctl stop firewalld

//禁止开机启动

systemctl disable firewalld

image.png

centos查看流量

脚本下载

wget http://f.oktcl.com/NetTest/speedometer.py


视图需要安装python扩展支持

centos类系统安装命令

yum install python-urwid -y


Ubuntu类安装安装命令

apt-get install python-urwid


给予脚本权限

chmod 755 speedometer.py

执行脚本即可出现带宽视图

python speedometer.py -r eth0 -c -t eth0

注意:eth0为网卡名称

其它命令:

watch more /proc/net/dev    # 实时监控流量文件系统 累计值

iptraf                      # 网卡流量查看工具

nethogs -d 5 eth0 eth1      # 按进程实时统计网络流量 epel源nethogs

如何理解理解/tmp/crontab.iszoSK”:2: bad command

1.在添加定时任务的时候出现如下图错误,这是由于您在crontab -e添加定时任务的语法错误,重新检查后在保存退出.如果语法正确会出现: new crontab installed
   image.png

2.crond配置文件中的格式

* * * * * 命令

1.)注意每个星号之间是有空格的。

2.)第一个星号表示:分钟,每个小时的第几分钟0-59。

3.)第二个星号表示:小时,每天中的第几个小时0-23。

4.)第三个星号表示:天,每个月的第几天1-31。

5.)第四个星号表示:月,每年的第几个月1-12。

6.)第五个星号表示:周,表示每周的第几天执行,范围从0-6,0和7是星期天。

7.)最后一个就是命令了,写入要执行的命令和参数。

3.例如:在每3小时执行一个php文件

* 3 * * * /www/server/php/55/bin/php /www/wwwroot/myweb /app/autorun/controller/autorun.php

 

Linux系统信息收集命令

系统

# uname -a # 查看内核/操作系?/CPU信息

# head -n 1 /etc/issue # 查看操作系统版本

# cat /proc/cpuinfo # 查看CPU信息

# hostname # 查看计算机名

# lspci -tv # 列出所有PCI设备

# lsusb -tv # 列出所有USB设备

# lsmod # 列出加载的内核模块

# env # 查看环境变量

资源

# free -m # 查看内存使用量和交换区使用量

# df -h # 查看各分区使用情况

# du -sh <目录名> # 查看指定目录的大小

# grep MemTotal /proc/meminfo # 查看内存总量

# grep MemFree /proc/meminfo # 查看空闲内存量

# uptime # 查看系统运行时间、用户数、负载

# cat /proc/loadavg # 查看系统负载

磁盘和分区

# mount | column -t # 查看挂接的分区状态

# fdisk -l # 查看所有分区

# swapon -s # 查看所有交换分区

# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)

# dmesg | grep IDE # 查看启动时IDE设备检测状况

网络

# ifconfig # 查看所有网络接口的属性

# iptables -L # 查看防火墙设置

# route -n # 查看路由表

# netstat -lntp # 查看所有监听端口

# netstat -antp # 查看所有已经建立的连接

# netstat -s # 查看网络统计信息

进程

# ps -ef # 查看所有进程

# top # 实时显示进程状态

用户

# w # 查看活动用户

# id <用户名> # 查看指定用户信息

# last # 查看用户登录日志

# cut -d: -f1 /etc/passwd # 查看系统所有用户

# cut -d: -f1 /etc/group # 查看系统所有组

# crontab -l # 查看当前用户的计划任务

服务

# chkconfig –list # 列出所有系统服务

# chkconfig –list | grep on # 列出所有启动的系统服务

程序

# rpm -qa # 查看所有安装的软件包

linux删除乱码的文件

当发现linux 里有中文命名文件,乱码文件想删除时,请使用inode 删除。

[root@localhost tmp]# ls -l

total 1024
-r--r--r-- 1 root  root  624541 May  3 09:33 mkisofs-2.01-10.7.el5.x86_64.rpm
srwxrwxrwx 1 mysql mysql      0 Jul  2 12:26 mysql.sock
--rw-r--r-- 1 root  root       0 Jul 27 08:27 乱码file
-rw-r--r-- 1 root  root       0 Jul 27 08:26 嘎儿

我的系统里有2个中文命名的文件,查找2个文件的inode

[root@localhost tmp]# ls -il
total 1024
917852 -r--r--r-- 1 root  root  624541 May  3 09:33 mkisofs-2.01-10.7.el5.x86_64.rpm
919797 srwxrwxrwx 1 mysql mysql      0 Jul  2 12:26 mysql.sock
920533 -rw-r--r-- 1 root  root       0 Jul 27 08:27 乱码file
918587 -rw-r--r-- 1 root  root       0 Jul 27 08:26 嘎儿

乱码文件的 inode 为920533  我们就来先删除它,用find 命令来找到这个inode 接着删除

[root@localhost tmp]# find . -inum 920533
./乱码file
[root@localhost tmp]# find . -inum 920533 -exec rm -f {} \;
[root@localhost tmp]# ls -l
total 1024
-r--r--r-- 1 root  root  624541 May  3 09:33 mkisofs-2.01-10.7.el5.x86_64.rpm
srwxrwxrwx 1 mysql mysql      0 Jul  2 12:26 mysql.sock
-rw-r--r-- 1 root  root       0 Jul 27 08:26 嘎儿

名为乱码file 的文件已经删除了。

find的26个用法示例

Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。在这篇文章中,我们将学习如何使用 find命令以及它所提供的选项来查找文件。

在绝大多数Linux发行版中,你都可以直接使用 find 命令而无需进行任何安装操作。如果你想在linux系统的命令行中变得特别高效,那么 find 是你必须掌握的命令之一。

find 命令的基本语法如下:

$ find [path] [option] [expression]

基本用法

1. 列出当前目录和子目录下的所有文件

这个命令会列出当前目录以及子目录下的所有文件。

$ find

.

./abc.txt

./subdir

./subdir/how.php

./cool.php

该命令与以下命令效果相同

$ find .

$ find . -print

2. 查找特殊的目录或路径

下面的命令会查找当前目录下 test 文件夹中的文件,默认列出所有文件。

$ find ./test

./test

./test/abc.txt

./test/subdir

./test/subdir/how.php

./test/cool.php

下面的命令用于查找指定名称的文件。

$ find ./test -name “abc.txt”

./test/abc.txt

也可以使用通配符

$ find ./test -name “*.php”

./test/subdir/how.php

./test/cool.php

请注意,所有的文件夹都会被递归地查找。所以,这是用于查找指定扩展名文件的一种非常强大的方式。

如果我们尝试搜索 / 文件夹,也就是根目录,就会搜索整个文件系统,包括挂载的设备以及网络存储设备。所以请小心使用。当然,你随时可以通过按 Ctrl + C 来终止命令。

注意:当指定文件夹的时候(例如示例中的”./test”文件夹),忽略末尾的斜杠是没有问题的。但是,如果文件夹是一个指向其它位置的链接(symlink)时,你必须在末尾写上斜杠才能使find命令正常工作(find ./test/)。

忽略大小写

在查找文件名时,忽略大小写往往非常有用。要忽略大小写,只需要使用 iname 选项,而不是name 选项。

 

$ find ./test -iname “*.Php”

./test/subdir/how.php

./test/cool.php

总是用双引号或单引号来包围匹配模式(文件名参数),这非常有用。不这样做的话有时也能正常工作,有时也可能会产生奇怪的结果。

3. 限制目录查找的深度

find 命令默认会递归查找整个目录树,而这非常消耗时间和资源。好在目录查找的深度可以手动指定。例如我们只想查找一到两层以内的子目录,可以通过 maxdepth 选项来指定。

$ find ./test -maxdepth 2 -name “*.php”

./test/subdir/how.php

./test/cool.php

$ find ./test -maxdepth 1 -name *.php

./test/cool.php

第二个示例中指定了 maxdepth 为1,表明最多只查找一层内的子目录,也就是只查找当前文件夹。

当我们只想在当前目录下查找,而不是查找整个目录树的时候,这个选项会特别有用。

与 maxdepth 选项相似,还有一个选项叫做 mindepth ,正如名字所表示的那样,它会至少到达第 N 层子目录后才开始查找文件。

4. 反向查找

除了查找满足条件的文件之外,我们还可以查找不满足条件的所有文件。当我们知道要在查找中排除哪些文件时,这个选项就能发挥作用了。

$ find ./test -not -name “*.php”

./test

./test/abc.txt

./test/subdir

在上面的示例中我们找到了所有扩展名不是 php 的文件和文件夹。我们也可以使用感叹号 ! 来代替 -not。

find ./test ! -name “*.php”

5. 结合多个查找条件

我们可以同时使用多个查找条件来指定文件名并排除某些文件。

$ find ./test -name ‘abc*’ ! -name ‘*.php’

./test/abc.txt

./test/abc

上面的命令查找所有以 abc 开头并且不含 .php 扩展名的文件。这个示例展现了 find 命令自带的查找表达式是多么的强大。

OR 操作符

当我们使用多个查找条件时, find 命令会将它们通过 AND 操作符结合起来,也就是说,只有满足所有条件的文件才会被列出。不过,如果我们需要进行基于 OR 运算的查找时,可以加上 -o开关。

$ find -name ‘*.php’ -o -name ‘*.txt’

./abc.txt

./subdir/how.php

./abc.php

./cool.php

上面的命令查找所有以 .php 结尾或者以 .txt 结尾的文件。

 

6. 只查找文件或目录

有时我们只想通过某个名字查找对应的文件或对应的目录,我们可以很容易实现这个要求。

$ find ./test -name abc*

./test/abc.txt

./test/abc

只查找文件

$ find ./test -type f -name “abc*”./test/abc.txt

只查找目录

$ find ./test -type d -name “abc*”./test/abc

非常有用而且方便!

7. 同时在多个目录下查找

如果你想要在两个不同的目录内进行查找,命令非常简单。

$ find ./test ./dir2 -type f -name “abc*”

./test/abc.txt

./dir2/abcdefg.txt

检查一下,它确实列出了来自给定的两个目录的文件。

8. 查找隐藏文件

在Linux系统中,隐藏文件的名字以英文的句号开头,即 . 。所以要列出隐藏文件,只需加上简单的文件名过滤条件就行了。

$ find ~ -type f -name “.*”

基于文件权限和属性的查找

9. 查找指定权限的文件

通过指定 perm 选项,我们可以查找具有特定权限的文件。下面的示例中查找了所有具有 0664 权限的文件。

$ find . -type f -perm 0664

./abc.txt

./subdir/how.php

./abc.php

./cool.php

我们可以用这个命令来查找带有错误权限的文件,这些文件可能会产生安全问题。

可以结合 反向查找 来进行权限检查。

$ find . -type f ! -perm 0777

./abc.txt

./subdir/how.php

./abc.php

./cool.php

10. 查找具有 SGID/SUID 属性的文件

下面的命令查找所有具有 644 权限和 SGID 属性的文件。

# find / -perm 2644

我们同样可以使用 1664 来查找设置了 粘滞位 (sticky bit)的文件。

# find / -perm 1644

perm 选项除了接受数值型参数外,同样接受 chmod 命令中的模式串。在下面的查找中,我们用另一种语法来代替数字。

$ find / -maxdepth 2 -perm /u=s 2>/dev/null

/bin/mount

/bin/su

/bin/ping6

/bin/fusermount

/bin/ping

/bin/umount

/sbin/mount.ecryptfs_private

注意:由于权限不足,某些目录会拒接访问。命令中的 2>/dev/null 正是用于清除输出中的错误访问结果。

11. 查找只读文件

$ find /etc -maxdepth 1 -perm /u=r

/etc

/etc/thunderbird

/etc/brltty

/etc/dkms

/etc/phpmyadmin… output truncated …

12. 查找可执行文件

$ find /bin -maxdepth 2 -perm /a=x

/bin

/bin/preseed_command

/bin/mount

/bin/zfgrep

/bin/tempfile… output truncated …

基于文件拥有者和用户组的查找

13. 查找属于特定用户的文件

查找当前目录下,属于 bob 的文件。

$ find . -user bob../abc.txt

./abc

./subdir

./subdir/how.php

./abc.php

在指定所属用户的同时,我们同样可以指定文件名。

$ find . -user bob -name ‘*.php’

很容易看出,我们可以通过增加过滤条件来缩小查找文件的范围。

14. 查找属于特定用户组的文件

# find /var/www -group developer

基于日期与时间的查找

除了上面介绍的查找条件外,另外一个非常棒的查找条件就是文件的修改和访问时间(日期)。当我们想要找出哪些文件在某段时间内被修改的时候,这个查找条件将会非常方便。我们来看几个例子。

15. 查找过去的第 N 天被修改过的文件

# find / -mtime 50

16. 查找过去的 N 天内被访问过的文件

# find / -atime -50

17. 查找某段时间范围内被修改过内容的文件

# find / -mtime +50 -mtime -100

18. 查找过去的 N 分钟内状态发生改变的文件

$ find /home/bob -cmin -60

19. 查找过去的 1 小时内被修改过内容的文件

# find / -mmin -60

20. 查找过去的 1 小时内被访问过的文件

# find / -amin -60

基于文件大小的查找

21. 查找指定大小的文件

$ find / -size 50M

22. 查找大小在一定范围内的文件

$ find / -size +50M -size -100M

23. 查找最大和最小的文件

我们可以将 find 命令与 ls 和 sort命令结合,从而找出最大或最小的文件。

下面的命令使用了 sort 命令的 -r 选项,也就是从大到小降序排列。经过 head 命令的过滤之后,会显示当前目录和子目录下最大的5个文件。命令的执行过程需要一段时间,查找的速度取决于文件的总数。

$ find . -type f -exec ls -s {} ; | sort -n -r | head 5

同样,我们可以去掉 sort 命令的 -r 选项来进行升序排列,从而显示出最小的5个文件。

$ find . -type f -exec ls -s {} ; | sort -n | head 5

24. 查找空文件和空目录

查找空文件:

# find /tmp -type f -empty

查找空目录:

$ find ~/ -type d -empty

非常简单!

高级操作

find 命令不仅可以通过特定条件来查找文件,还可以对查找到的文件使用任意linux命令进行操作。下面给出两个例子。

25. 使用 ls 命令列出文件信息

我们使用 find 命令找到文件后,只能看到文件路径。如果想进一步查看文件信息,可以结合 ls命令来实现。

$ find . -exec ls -ld {} ;

drwxrwxr-x 4 enlightened enlightened 4096 Aug 11 19:01 .

-rw-rw-r– 1 enlightened enlightened 0 Aug 11 16:25 ./abc.txt

drwxrwxr-x 2 enlightened enlightened 4096 Aug 11 16:48 ./abc

drwxrwxr-x 2 enlightened enlightened 4096 Aug 11 16:26 ./subdir

-rw-rw-r– 1 enlightened enlightened 0 Aug 11 16:26 ./subdir/how.php

-rw-rw-r– 1 enlightened enlightened 29 Aug 11 19:13 ./abc.php

-rw-rw-r– 1 enlightened enlightened 0 Aug 11 16:25 ./cool.php

26. 删除找到的文件

 

下面的命令会删除 tmp 目录下扩展名为 .txt 的文件。

$ find /tmp -type f -name “*.txt” -exec rm -f {} ;

我们同样可以删除目录,只要把 -type 后面的 f 改为 d ,并且在 rm 命令后面加上 -r 即可。

$ find /tmp -type d -name “dirToRemove” -exec rm -r -f {} ;

文章来源:http://codebay.cn/post/6026.html