原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2664.html https://www.myzhenai.com/thread-18006-1-1.html
关键词: Linux 服务器 安全 系统 配置 端口 权限 漏洞
最近,Windows系统下发生了一个WannaCry勒索者病毒,弄得世界各国政府和商业机构心神不定, 这个就是因为使用了Windows下的漏洞来实现攻击的, 所以说现在社会对电脑的依赖, 同时也会因电脑受到很大的影响, 这就需要我们提高系统安全意识. 尽管Linux的安全系数要比Windows高, 但是因为现在很多商业公司, 大型网站和企业都在使用Linux系统部署商业环境和服务器环境, 对于这一些也需要我们提高意识, 更加重视.
一般来说, 服务器受到的攻击最多的是Ddos(洪水)攻击, 还有就是CC(Challenge Collapsar)对于这两种攻击, 我们除了增强物理防火墙外,好像没有其他更好的办法了, 但是今天我们说的不是抵抗这两种攻击,我们主要说的是针对扫描和入侵的抵抗攻击. 这个除了能保护我们数据安全之外, 同时也能更好的为用户负责, 因为很多针对服务器的入侵, 最多的是挂马,向外发包,垃圾邮件,窃取用户密码数据等……. 以下的方法照样适用于使用Linux系统的个人用户.
服务器被入侵一般都是以下几种情况
一: 漏洞, 又分为服务器环境漏洞和使用程序的漏洞
二: 弱口令, 服务器账号或管理员账号的密码承在简单的弱口令, 被黑客猜解出来了, 如果经常看服务器系统日志的朋友可能会知道, 经常会有陌生的ip在扫描服务器指定的端口,比如21端口
三: 权限设置不合理, 如果权限设置不合理的话, 黑客很容易就能通过一个简单的脚本或几行代码就能进行提权,进行破坏.
以下我们就将这几项一一的进行说明和演示, 虽然说不能将我们的系统设置得固若金汤, 但起码可以增强被坡解的难度. 起到一定的保护作用.
漏洞: 根据自己的系统环境,将以下这些代码保存为.sh文件,然后设置crond(crontabe)定时器里, 就能实现无人值守自动更新系统. 定时之前请手动执行一次脚本,查看有无错误.
请参考: https://www.myzhenai.com.cn/post/2610.html
系统自动更新脚本
RedHat派系,包含 fedora centos
e=`yum update -y | grep -e "kernel"`
# !/bin/bash
e=`yum update -y | grep -e "kernel"`
if [ $e == "" ];then
echo "no update"
else
reboot
fi
# !/bin/bash
e=`yum update -y | grep -e "kernel"`
if [ $e == "" ];then
echo "no update"
else
reboot
fi
命令注释
e=`yum update -y | grep -e "kernel"`
#更新系统,并检测更新的包里有没有包含kernel字样的包,包含这个字样的包就是内核更新, 我们就需要重新启动服务器来更换新的内核
#如果变量里是空的,即是没有找到包含有kernel的更新包, if [];then是判断语句
#else是否则跳转, 即是变量里是有内容的,不为空,那么这里我们就要执行相应的条件,即下边的reboot来重新启动系统
# !/bin/bash
e=`yum update -y | grep -e "kernel"`
#更新系统,并检测更新的包里有没有包含kernel字样的包,包含这个字样的包就是内核更新, 我们就需要重新启动服务器来更换新的内核
if [ $e == "" ];then
#如果变量里是空的,即是没有找到包含有kernel的更新包, if [];then是判断语句
echo "no update"
else
#else是否则跳转, 即是变量里是有内容的,不为空,那么这里我们就要执行相应的条件,即下边的reboot来重新启动系统
reboot
#reboot是重新启动系统命令
fi
#fi是判断结束语句
# !/bin/bash
e=`yum update -y | grep -e "kernel"`
#更新系统,并检测更新的包里有没有包含kernel字样的包,包含这个字样的包就是内核更新, 我们就需要重新启动服务器来更换新的内核
if [ $e == "" ];then
#如果变量里是空的,即是没有找到包含有kernel的更新包, if [];then是判断语句
echo "no update"
else
#else是否则跳转, 即是变量里是有内容的,不为空,那么这里我们就要执行相应的条件,即下边的reboot来重新启动系统
reboot
#reboot是重新启动系统命令
fi
#fi是判断结束语句


Debian派系 包含 debian ubuntu
e=`apt-get upgrade -y | grep -e "kernel"`
# !/bin/bash
apt-get update -y
e=`apt-get upgrade -y | grep -e "kernel"`
if [ $e == "" ];then
echo "no update"
else
reboot
fi
# !/bin/bash
apt-get update -y
e=`apt-get upgrade -y | grep -e "kernel"`
if [ $e == "" ];then
echo "no update"
else
reboot
fi
命令注释
e=`apt-get upgrade -y | grep -e "kernel"`
#更新系统,并检测更新的包里有没有包含kernel字样的包,包含这个字样的包就是内核更新, 我们就需要重新启动服务器来更换新的内核
#如果变量里是空的,即是没有找到包含有kernel的更新包, if [];then是判断语句
#else是否则跳转, 即是变量里是有内容的,不为空,那么这里我们就要执行相应的条件,即下边的reboot来重新启动系统
# !/bin/bash
apt-get update -y
e=`apt-get upgrade -y | grep -e "kernel"`
#更新系统,并检测更新的包里有没有包含kernel字样的包,包含这个字样的包就是内核更新, 我们就需要重新启动服务器来更换新的内核
if [ $e == "" ];then
#如果变量里是空的,即是没有找到包含有kernel的更新包, if [];then是判断语句
echo "no update"
else
#else是否则跳转, 即是变量里是有内容的,不为空,那么这里我们就要执行相应的条件,即下边的reboot来重新启动系统
reboot
#reboot是重新启动系统命令
fi
#fi是判断结束语句
# !/bin/bash
apt-get update -y
e=`apt-get upgrade -y | grep -e "kernel"`
#更新系统,并检测更新的包里有没有包含kernel字样的包,包含这个字样的包就是内核更新, 我们就需要重新启动服务器来更换新的内核
if [ $e == "" ];then
#如果变量里是空的,即是没有找到包含有kernel的更新包, if [];then是判断语句
echo "no update"
else
#else是否则跳转, 即是变量里是有内容的,不为空,那么这里我们就要执行相应的条件,即下边的reboot来重新启动系统
reboot
#reboot是重新启动系统命令
fi
#fi是判断结束语句

弱口令:这一块牵扯的有点多, 分账户密码更改和端口更改,我一步一步来解释, 为什么更改了账户密码后还需要更改默认的端口呢, 因为服务器上很多服务或者我们安装的服务都有一个默认的端口,而黑客很多时候就是通过扫描这些端口来实现入侵, 我们通过更改端口后,那么黑客扫描的端口就是不存在的了,即使扫描了也是不会扫描出什么来的.
密码更改:
先输入旧密码,再输入两次相同的新密码,输入的密码不可见, user是用户名,即账户, 比如 passwd root 即是更改root账户的密码,
#passwd user
先输入旧密码,再输入两次相同的新密码,输入的密码不可见, user是用户名,即账户, 比如 passwd root 即是更改root账户的密码,
#passwd user
先输入旧密码,再输入两次相同的新密码,输入的密码不可见, user是用户名,即账户, 比如 passwd root 即是更改root账户的密码,
[RucLinux@localhost ~]$ passwd --help
用法: passwd [选项...] < 帐号名称>
-k, --keep-tokens 保持身份验证令牌不过期
-d, --delete 删除已命名帐号的密码(只有根用户才能进行此操作)
-l, --lock lock the password for the named account (root only)
-u, --unlock unlock the password for the named account (root only)
-e, --expire expire the password for the named account (root only)
-x, --maximum=DAYS 密码的最长有效时限(只有根用户才能进行此操作)
-n, --minimum=DAYS 密码的最短有效时限(只有根用户才能进行此操作)
-w, --warning=DAYS 在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)
-i, --inactive=DAYS 当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
-S, --status 报告已命名帐号的密码状态(只有根用户才能进行此操作)
--stdin 从标准输入读取令牌(只有根用户才能进行此操作)
-?, --help Show this help message
--usage Display brief usage message
[RucLinux@localhost ~]$ passwd --help
用法: passwd [选项...] < 帐号名称>
-k, --keep-tokens 保持身份验证令牌不过期
-d, --delete 删除已命名帐号的密码(只有根用户才能进行此操作)
-l, --lock lock the password for the named account (root only)
-u, --unlock unlock the password for the named account (root only)
-e, --expire expire the password for the named account (root only)
-f, --force 强制执行操作
-x, --maximum=DAYS 密码的最长有效时限(只有根用户才能进行此操作)
-n, --minimum=DAYS 密码的最短有效时限(只有根用户才能进行此操作)
-w, --warning=DAYS 在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)
-i, --inactive=DAYS 当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
-S, --status 报告已命名帐号的密码状态(只有根用户才能进行此操作)
--stdin 从标准输入读取令牌(只有根用户才能进行此操作)
Help options:
-?, --help Show this help message
--usage Display brief usage message
[RucLinux@localhost ~]$ passwd --help
用法: passwd [选项...] < 帐号名称>
-k, --keep-tokens 保持身份验证令牌不过期
-d, --delete 删除已命名帐号的密码(只有根用户才能进行此操作)
-l, --lock lock the password for the named account (root only)
-u, --unlock unlock the password for the named account (root only)
-e, --expire expire the password for the named account (root only)
-f, --force 强制执行操作
-x, --maximum=DAYS 密码的最长有效时限(只有根用户才能进行此操作)
-n, --minimum=DAYS 密码的最短有效时限(只有根用户才能进行此操作)
-w, --warning=DAYS 在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)
-i, --inactive=DAYS 当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
-S, --status 报告已命名帐号的密码状态(只有根用户才能进行此操作)
--stdin 从标准输入读取令牌(只有根用户才能进行此操作)
Help options:
-?, --help Show this help message
--usage Display brief usage message

端口更改涉及到的端口有很多, 分别代表着不同的服务, 比如 21 22 23 25 80 110 443 445 3306等Linux下常见的端口
请参考: https://www.myzhenai.com.cn/post/1783.html
21端口 FTP服务端口
22端口 Ssh连接端口
23端口 Telnet服务端口
25端口 Smtp邮件发送端口
80端口 Http传输协议端口,这端口最好不要改
110端口 Pop3邮件收取端口
443端口 Https安全超文本传输协议端口
445端口 Linux下这个端口好像没有开启
3306端口 Mysql数据库默认端口
21端口 FTP服务端口
22端口 Ssh连接端口
23端口 Telnet服务端口
25端口 Smtp邮件发送端口
80端口 Http传输协议端口,这端口最好不要改
110端口 Pop3邮件收取端口
443端口 Https安全超文本传输协议端口
445端口 Linux下这个端口好像没有开启
3306端口 Mysql数据库默认端口
查看端口命令 netstat lsof
[RucLinux@localhost ~]$ netstat --help
usage: netstat [-veenNcCF] [<af>] -r netstat {-V|--version|-h|--help}
netstat [-vnNcaeol] [<socket> ...]
netstat { [-veenNac] -I[<iface>] | [-veenNac] -i | [-cnNe] -M | -s } [delay]
-r, --route display routing table
-I, --interfaces=</iface><iface> display interface table for </iface><iface>
-i, --interfaces display interface table
-g, --groups display multicast group memberships
-s, --statistics display networking statistics (like SNMP)
-M, --masquerade display masqueraded connections
-n, --numeric don't resolve names
--numeric-hosts don't resolve host names
--numeric-ports don't resolve port names
--numeric-users don't resolve user names
-N, --symbolic resolve hardware names
-e, --extend display other/more information
-p, --programs display PID/Program name for sockets
-c, --continuous continuous listing
-l, --listening display listening server sockets
-a, --all, --listening display all sockets (default: connected)
-o, --timers display timers
-F, --fib display Forwarding Information Base (default)
-C, --cache display routing cache instead of FIB
-T, --notrim stop trimming long addresses
-Z, --context display SELinux security context for sockets
</iface><iface>: Name of interface to monitor/list.
<socket>={-t|--tcp} {-u|--udp} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
<af>=Use '-A </af><af>' or '--</af><af>'; default: inet
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
</af></socket></iface></socket></af>
[RucLinux@localhost ~]$ netstat --help
usage: netstat [-veenNcCF] [<af>] -r netstat {-V|--version|-h|--help}
netstat [-vnNcaeol] [<socket> ...]
netstat { [-veenNac] -I[<iface>] | [-veenNac] -i | [-cnNe] -M | -s } [delay]
-r, --route display routing table
-I, --interfaces=</iface><iface> display interface table for </iface><iface>
-i, --interfaces display interface table
-g, --groups display multicast group memberships
-s, --statistics display networking statistics (like SNMP)
-M, --masquerade display masqueraded connections
-v, --verbose be verbose
-n, --numeric don't resolve names
--numeric-hosts don't resolve host names
--numeric-ports don't resolve port names
--numeric-users don't resolve user names
-N, --symbolic resolve hardware names
-e, --extend display other/more information
-p, --programs display PID/Program name for sockets
-c, --continuous continuous listing
-l, --listening display listening server sockets
-a, --all, --listening display all sockets (default: connected)
-o, --timers display timers
-F, --fib display Forwarding Information Base (default)
-C, --cache display routing cache instead of FIB
-T, --notrim stop trimming long addresses
-Z, --context display SELinux security context for sockets
</iface><iface>: Name of interface to monitor/list.
<socket>={-t|--tcp} {-u|--udp} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
<af>=Use '-A </af><af>' or '--</af><af>'; default: inet
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
</af></socket></iface></socket></af>
[RucLinux@localhost ~]$ netstat --help
usage: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--help}
netstat [-vnNcaeol] [ ...]
netstat { [-veenNac] -I[] | [-veenNac] -i | [-cnNe] -M | -s } [delay]
-r, --route display routing table
-I, --interfaces= display interface table for
-i, --interfaces display interface table
-g, --groups display multicast group memberships
-s, --statistics display networking statistics (like SNMP)
-M, --masquerade display masqueraded connections
-v, --verbose be verbose
-n, --numeric don't resolve names
--numeric-hosts don't resolve host names
--numeric-ports don't resolve port names
--numeric-users don't resolve user names
-N, --symbolic resolve hardware names
-e, --extend display other/more information
-p, --programs display PID/Program name for sockets
-c, --continuous continuous listing
-l, --listening display listening server sockets
-a, --all, --listening display all sockets (default: connected)
-o, --timers display timers
-F, --fib display Forwarding Information Base (default)
-C, --cache display routing cache instead of FIB
-T, --notrim stop trimming long addresses
-Z, --context display SELinux security context for sockets
: Name of interface to monitor/list.
={-t|--tcp} {-u|--udp} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
=Use '-A ' or '--'; default: inet
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)

[RucLinux@localhost ~]$ lsof --help
lsof: illegal option character: -
lsof: -e not followed by a file system path: "lp"
latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
usage: [-?abhlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-f[gG]] [+|-e s]
[-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Defaults in parentheses; comma-separated set (s) items; dash-separated ranges.
-?|-h list help -a AND selections (OR) -b avoid kernel blocks
-c c cmd c ^c /c/[bix] +c w COMMAND width (9)
+d s dir s files -d s select by FD set +D D dir D tree *SLOW?*
+|-e s exempt s *RISKY* -i select IPv[46] files
-l list UID numbers -n no host names -N select NFS files
-o list file offset -O avoid overhead *RISKY* -P no port names
-R list paRent PID -s list file size -t terse listing
-T disable TCP/TPI info -U select Unix socket -v list version info
-V verbose search +|-w Warnings (+) -X skip TCP&UDP* files
+f|-f +filesystem or -file names +|-f[gG] flaGs
-F [f] select fields; -F? for help
+|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0)
+m [m] use|create mount supplement
+|-M portMap registration (-) -o o o 0t offset digits (8)
-p s exclude(^)|select PIDs -S [t] t second stat timeout (15)
-T qs TCP/TPI Q,St (s) info
-g [s] exclude(^)|select and print process group IDs
-i i select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]
+|-r [t[m<fmt>]] repeat every t seconds (15); + until no files, - forever.
An optional suffix to t is m<fmt>; m must separate t from </fmt><fmt> and
</fmt><fmt> is an strftime(3) format for the marker line.
-s p:s exclude(^)|select protocol (p = TCP|UDP) states by name(s).
-u s exclude(^)|select login|UID set s
-x [fl] cross over +d|+D File systems or symbolic Links
names select named files or files on named file systems
Anyone can list all files; /dev warnings disabled; kernel ID check disabled.
[RucLinux@localhost ~]$ lsof --help
lsof: illegal option character: -
lsof: -e not followed by a file system path: "lp"
lsof 4.82
latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
usage: [-?abhlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-f[gG]] [+|-e s]
[-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Defaults in parentheses; comma-separated set (s) items; dash-separated ranges.
-?|-h list help -a AND selections (OR) -b avoid kernel blocks
-c c cmd c ^c /c/[bix] +c w COMMAND width (9)
+d s dir s files -d s select by FD set +D D dir D tree *SLOW?*
+|-e s exempt s *RISKY* -i select IPv[46] files
-l list UID numbers -n no host names -N select NFS files
-o list file offset -O avoid overhead *RISKY* -P no port names
-R list paRent PID -s list file size -t terse listing
-T disable TCP/TPI info -U select Unix socket -v list version info
-V verbose search +|-w Warnings (+) -X skip TCP&UDP* files
-Z Z context [Z]
-- end option scan
+f|-f +filesystem or -file names +|-f[gG] flaGs
-F [f] select fields; -F? for help
+|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0)
+m [m] use|create mount supplement
+|-M portMap registration (-) -o o o 0t offset digits (8)
-p s exclude(^)|select PIDs -S [t] t second stat timeout (15)
-T qs TCP/TPI Q,St (s) info
-g [s] exclude(^)|select and print process group IDs
-i i select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]
+|-r [t[m<fmt>]] repeat every t seconds (15); + until no files, - forever.
An optional suffix to t is m<fmt>; m must separate t from </fmt><fmt> and
</fmt><fmt> is an strftime(3) format for the marker line.
-s p:s exclude(^)|select protocol (p = TCP|UDP) states by name(s).
-u s exclude(^)|select login|UID set s
-x [fl] cross over +d|+D File systems or symbolic Links
names select named files or files on named file systems
Anyone can list all files; /dev warnings disabled; kernel ID check disabled.
</fmt></fmt>
[RucLinux@localhost ~]$ lsof --help
lsof: illegal option character: -
lsof: -e not followed by a file system path: "lp"
lsof 4.82
latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
usage: [-?abhlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-f[gG]] [+|-e s]
[-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Defaults in parentheses; comma-separated set (s) items; dash-separated ranges.
-?|-h list help -a AND selections (OR) -b avoid kernel blocks
-c c cmd c ^c /c/[bix] +c w COMMAND width (9)
+d s dir s files -d s select by FD set +D D dir D tree *SLOW?*
+|-e s exempt s *RISKY* -i select IPv[46] files
-l list UID numbers -n no host names -N select NFS files
-o list file offset -O avoid overhead *RISKY* -P no port names
-R list paRent PID -s list file size -t terse listing
-T disable TCP/TPI info -U select Unix socket -v list version info
-V verbose search +|-w Warnings (+) -X skip TCP&UDP* files
-Z Z context [Z]
-- end option scan
+f|-f +filesystem or -file names +|-f[gG] flaGs
-F [f] select fields; -F? for help
+|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0)
+m [m] use|create mount supplement
+|-M portMap registration (-) -o o o 0t offset digits (8)
-p s exclude(^)|select PIDs -S [t] t second stat timeout (15)
-T qs TCP/TPI Q,St (s) info
-g [s] exclude(^)|select and print process group IDs
-i i select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]
+|-r [t[m]] repeat every t seconds (15); + until no files, - forever.
An optional suffix to t is m; m must separate t from and
is an strftime(3) format for the marker line.
-s p:s exclude(^)|select protocol (p = TCP|UDP) states by name(s).
-u s exclude(^)|select login|UID set s
-x [fl] cross over +d|+D File systems or symbolic Links
names select named files or files on named file systems
Anyone can list all files; /dev warnings disabled; kernel ID check disabled.

演示
netstat -ntlp 查看当前所有tcp端口·
netstat -ntulp | grep 80 查看所有80端口使用情况·
netstat -an | grep 3306 查看所有3306端口使用情况·
lsof -i :22 知道22端口被哪个进程占用
lsof -c abc 显示abc进程现在打开的文件
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -p 12 看进程号为12的进程打开了哪些文件
lsof -u username 查看用户打开哪些文件
lsof -i @192.168.1.111 查看远程已打开的网络连接
netstat -ntlp 查看当前所有tcp端口·
netstat -ntulp | grep 80 查看所有80端口使用情况·
netstat -an | grep 3306 查看所有3306端口使用情况·
lsof -i :22 知道22端口被哪个进程占用
lsof -c abc 显示abc进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -p 12 看进程号为12的进程打开了哪些文件
lsof -u username 查看用户打开哪些文件
lsof -i @192.168.1.111 查看远程已打开的网络连接
netstat -ntlp 查看当前所有tcp端口·
netstat -ntulp | grep 80 查看所有80端口使用情况·
netstat -an | grep 3306 查看所有3306端口使用情况·
lsof -i :22 知道22端口被哪个进程占用
lsof -c abc 显示abc进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -p 12 看进程号为12的进程打开了哪些文件
lsof -u username 查看用户打开哪些文件
lsof -i @192.168.1.111 查看远程已打开的网络连接
编辑器 vi vim
[RucLinux@localhost ~]$ vi --help
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 21 2016 17:06:34)
用法: vim [参数] [文件 ..] 编辑指定的文件
或: vim [参数] - 从标准输入(stdin)读取文本
或: vim [参数] -t tag 编辑 tag 定义处的文件
或: vim [参数] -q [errorfile] 编辑第一个出错处的文件
-s 安静(批处理)模式 (只能与 "ex" 一起使用)
-C 兼容传统的 Vi: 'compatible'
-N 不完全兼容传统的 Vi: 'nocompatible'
-V[N][fname] Be verbose [level N] [log messages to fname]
-T <terminal> 设定终端类型为 </terminal><terminal>
-u <vimrc> 使用 </vimrc><vimrc> 替代任何 .vimrc
-P[N] 打开 N 个标签页 (默认值: 每个文件一个)
-o[N] 打开 N 个窗口 (默认值: 每个文件一个)
+<lnum> 启动后跳到第 </lnum><lnum> 行
--cmd <command></command> 加载任何 vimrc 文件前执行 <command></command>
-c <command></command> 加载第一个文件后执行 <command></command>
-S <session> 加载第一个文件后执行文件 </session><session>
-s <scriptin> 从文件 </scriptin><scriptin> 读入正常模式的命令
-w <scriptout> 将所有输入的命令追加到文件 </scriptout><scriptout>
-W </scriptout><scriptout> 将所有输入的命令写入到文件 </scriptout><scriptout>
--startuptime <file> Write startup timing messages to </file><file>
-i <viminfo> 使用 </viminfo><viminfo> 取代 .viminfo
</viminfo></file></scriptout></scriptin></session></lnum></vimrc></terminal>
[RucLinux@localhost ~]$ vi --help
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 21 2016 17:06:34)
用法: vim [参数] [文件 ..] 编辑指定的文件
或: vim [参数] - 从标准输入(stdin)读取文本
或: vim [参数] -t tag 编辑 tag 定义处的文件
或: vim [参数] -q [errorfile] 编辑第一个出错处的文件
参数:
-- 在这以后只有文件名
-v Vi 模式 (同 "vi")
-e Ex 模式 (同 "ex")
-E Improved Ex mode
-s 安静(批处理)模式 (只能与 "ex" 一起使用)
-d Diff 模式 (同 "vimdiff")
-y 容易模式 (同 "evim",无模式)
-R 只读模式 (同 "view")
-Z 限制模式 (同 "rvim")
-m 不可修改(写入文件)
-M 文本不可修改
-b 二进制模式
-l Lisp 模式
-C 兼容传统的 Vi: 'compatible'
-N 不完全兼容传统的 Vi: 'nocompatible'
-V[N][fname] Be verbose [level N] [log messages to fname]
-D 调试模式
-n 不使用交换文件,只使用内存
-r 列出交换文件并退出
-r (跟文件名) 恢复崩溃的会话
-L 同 -r
-A 以 Arabic 模式启动
-H 以 Hebrew 模式启动
-F 以 Farsi 模式启动
-T <terminal> 设定终端类型为 </terminal><terminal>
-u <vimrc> 使用 </vimrc><vimrc> 替代任何 .vimrc
--noplugin 不加载 plugin 脚本
-P[N] 打开 N 个标签页 (默认值: 每个文件一个)
-o[N] 打开 N 个窗口 (默认值: 每个文件一个)
-O[N] 同 -o 但垂直分割
+ 启动后跳到文件末尾
+<lnum> 启动后跳到第 </lnum><lnum> 行
--cmd <command></command> 加载任何 vimrc 文件前执行 <command></command>
-c <command></command> 加载第一个文件后执行 <command></command>
-S <session> 加载第一个文件后执行文件 </session><session>
-s <scriptin> 从文件 </scriptin><scriptin> 读入正常模式的命令
-w <scriptout> 将所有输入的命令追加到文件 </scriptout><scriptout>
-W </scriptout><scriptout> 将所有输入的命令写入到文件 </scriptout><scriptout>
-x 编辑加密的文件
--startuptime <file> Write startup timing messages to </file><file>
-i <viminfo> 使用 </viminfo><viminfo> 取代 .viminfo
-h 或 --help 打印帮助(本信息)并退出
--version 打印版本信息并退出
</viminfo></file></scriptout></scriptin></session></lnum></vimrc></terminal>
[RucLinux@localhost ~]$ vi --help
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 21 2016 17:06:34)
用法: vim [参数] [文件 ..] 编辑指定的文件
或: vim [参数] - 从标准输入(stdin)读取文本
或: vim [参数] -t tag 编辑 tag 定义处的文件
或: vim [参数] -q [errorfile] 编辑第一个出错处的文件
参数:
-- 在这以后只有文件名
-v Vi 模式 (同 "vi")
-e Ex 模式 (同 "ex")
-E Improved Ex mode
-s 安静(批处理)模式 (只能与 "ex" 一起使用)
-d Diff 模式 (同 "vimdiff")
-y 容易模式 (同 "evim",无模式)
-R 只读模式 (同 "view")
-Z 限制模式 (同 "rvim")
-m 不可修改(写入文件)
-M 文本不可修改
-b 二进制模式
-l Lisp 模式
-C 兼容传统的 Vi: 'compatible'
-N 不完全兼容传统的 Vi: 'nocompatible'
-V[N][fname] Be verbose [level N] [log messages to fname]
-D 调试模式
-n 不使用交换文件,只使用内存
-r 列出交换文件并退出
-r (跟文件名) 恢复崩溃的会话
-L 同 -r
-A 以 Arabic 模式启动
-H 以 Hebrew 模式启动
-F 以 Farsi 模式启动
-T 设定终端类型为
-u 使用 替代任何 .vimrc
--noplugin 不加载 plugin 脚本
-P[N] 打开 N 个标签页 (默认值: 每个文件一个)
-o[N] 打开 N 个窗口 (默认值: 每个文件一个)
-O[N] 同 -o 但垂直分割
+ 启动后跳到文件末尾
+ 启动后跳到第 行
--cmd 加载任何 vimrc 文件前执行
-c 加载第一个文件后执行
-S 加载第一个文件后执行文件
-s 从文件 读入正常模式的命令
-w 将所有输入的命令追加到文件
-W 将所有输入的命令写入到文件
-x 编辑加密的文件
--startuptime Write startup timing messages to
-i 使用 取代 .viminfo
-h 或 --help 打印帮助(本信息)并退出
--version 打印版本信息并退出

[RucLinux@localhost ~]$ vim --help
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 21 2016 17:06:34)
用法: vim [参数] [文件 ..] 编辑指定的文件
或: vim [参数] - 从标准输入(stdin)读取文本
或: vim [参数] -t tag 编辑 tag 定义处的文件
或: vim [参数] -q [errorfile] 编辑第一个出错处的文件
-s 安静(批处理)模式 (只能与 "ex" 一起使用)
-C 兼容传统的 Vi: 'compatible'
-N 不完全兼容传统的 Vi: 'nocompatible'
-V[N][fname] Be verbose [level N] [log messages to fname]
-T <terminal> 设定终端类型为 </terminal><terminal>
-u <vimrc> 使用 </vimrc><vimrc> 替代任何 .vimrc
-P[N] 打开 N 个标签页 (默认值: 每个文件一个)
-o[N] 打开 N 个窗口 (默认值: 每个文件一个)
+<lnum> 启动后跳到第 </lnum><lnum> 行
--cmd <command></command> 加载任何 vimrc 文件前执行 <command></command>
-c <command></command> 加载第一个文件后执行 <command></command>
-S <session> 加载第一个文件后执行文件 </session><session>
-s <scriptin> 从文件 </scriptin><scriptin> 读入正常模式的命令
-w <scriptout> 将所有输入的命令追加到文件 </scriptout><scriptout>
-W </scriptout><scriptout> 将所有输入的命令写入到文件 </scriptout><scriptout>
--startuptime <file> Write startup timing messages to </file><file>
-i <viminfo> 使用 </viminfo><viminfo> 取代 .viminfo
</viminfo></file></scriptout></scriptin></session></lnum></vimrc></terminal>
[RucLinux@localhost ~]$ vim --help
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 21 2016 17:06:34)
用法: vim [参数] [文件 ..] 编辑指定的文件
或: vim [参数] - 从标准输入(stdin)读取文本
或: vim [参数] -t tag 编辑 tag 定义处的文件
或: vim [参数] -q [errorfile] 编辑第一个出错处的文件
参数:
-- 在这以后只有文件名
-v Vi 模式 (同 "vi")
-e Ex 模式 (同 "ex")
-E Improved Ex mode
-s 安静(批处理)模式 (只能与 "ex" 一起使用)
-d Diff 模式 (同 "vimdiff")
-y 容易模式 (同 "evim",无模式)
-R 只读模式 (同 "view")
-Z 限制模式 (同 "rvim")
-m 不可修改(写入文件)
-M 文本不可修改
-b 二进制模式
-l Lisp 模式
-C 兼容传统的 Vi: 'compatible'
-N 不完全兼容传统的 Vi: 'nocompatible'
-V[N][fname] Be verbose [level N] [log messages to fname]
-D 调试模式
-n 不使用交换文件,只使用内存
-r 列出交换文件并退出
-r (跟文件名) 恢复崩溃的会话
-L 同 -r
-A 以 Arabic 模式启动
-H 以 Hebrew 模式启动
-F 以 Farsi 模式启动
-T <terminal> 设定终端类型为 </terminal><terminal>
-u <vimrc> 使用 </vimrc><vimrc> 替代任何 .vimrc
--noplugin 不加载 plugin 脚本
-P[N] 打开 N 个标签页 (默认值: 每个文件一个)
-o[N] 打开 N 个窗口 (默认值: 每个文件一个)
-O[N] 同 -o 但垂直分割
+ 启动后跳到文件末尾
+<lnum> 启动后跳到第 </lnum><lnum> 行
--cmd <command></command> 加载任何 vimrc 文件前执行 <command></command>
-c <command></command> 加载第一个文件后执行 <command></command>
-S <session> 加载第一个文件后执行文件 </session><session>
-s <scriptin> 从文件 </scriptin><scriptin> 读入正常模式的命令
-w <scriptout> 将所有输入的命令追加到文件 </scriptout><scriptout>
-W </scriptout><scriptout> 将所有输入的命令写入到文件 </scriptout><scriptout>
-x 编辑加密的文件
--startuptime <file> Write startup timing messages to </file><file>
-i <viminfo> 使用 </viminfo><viminfo> 取代 .viminfo
-h 或 --help 打印帮助(本信息)并退出
--version 打印版本信息并退出
</viminfo></file></scriptout></scriptin></session></lnum></vimrc></terminal>
[RucLinux@localhost ~]$ vim --help
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 21 2016 17:06:34)
用法: vim [参数] [文件 ..] 编辑指定的文件
或: vim [参数] - 从标准输入(stdin)读取文本
或: vim [参数] -t tag 编辑 tag 定义处的文件
或: vim [参数] -q [errorfile] 编辑第一个出错处的文件
参数:
-- 在这以后只有文件名
-v Vi 模式 (同 "vi")
-e Ex 模式 (同 "ex")
-E Improved Ex mode
-s 安静(批处理)模式 (只能与 "ex" 一起使用)
-d Diff 模式 (同 "vimdiff")
-y 容易模式 (同 "evim",无模式)
-R 只读模式 (同 "view")
-Z 限制模式 (同 "rvim")
-m 不可修改(写入文件)
-M 文本不可修改
-b 二进制模式
-l Lisp 模式
-C 兼容传统的 Vi: 'compatible'
-N 不完全兼容传统的 Vi: 'nocompatible'
-V[N][fname] Be verbose [level N] [log messages to fname]
-D 调试模式
-n 不使用交换文件,只使用内存
-r 列出交换文件并退出
-r (跟文件名) 恢复崩溃的会话
-L 同 -r
-A 以 Arabic 模式启动
-H 以 Hebrew 模式启动
-F 以 Farsi 模式启动
-T 设定终端类型为
-u 使用 替代任何 .vimrc
--noplugin 不加载 plugin 脚本
-P[N] 打开 N 个标签页 (默认值: 每个文件一个)
-o[N] 打开 N 个窗口 (默认值: 每个文件一个)
-O[N] 同 -o 但垂直分割
+ 启动后跳到文件末尾
+ 启动后跳到第 行
--cmd 加载任何 vimrc 文件前执行
-c 加载第一个文件后执行
-S 加载第一个文件后执行文件
-s 从文件 读入正常模式的命令
-w 将所有输入的命令追加到文件
-W 将所有输入的命令写入到文件
-x 编辑加密的文件
--startuptime Write startup timing messages to
-i 使用 取代 .viminfo
-h 或 --help 打印帮助(本信息)并退出
--version 打印版本信息并退出

演示
这里要说一下vi和vim的使用方法, 进入编辑模式请按键盘上的 i 键, 否则无法对文档进行编辑, 退出编辑模式请按Esc键. Shift+ZZ键是保存并退出vi或vim, Shift+ZQ键是不保存并退出vi或vim
vi /etc/ssh/sshd_config 打开文件并编辑, 如果文件不存在,会创建新的文件.所以请确定路径和文件名再保存
这里要说一下vi和vim的使用方法, 进入编辑模式请按键盘上的 i 键, 否则无法对文档进行编辑, 退出编辑模式请按Esc键. Shift+ZZ键是保存并退出vi或vim, Shift+ZQ键是不保存并退出vi或vim
vi /etc/ssh/sshd_config 打开文件并编辑, 如果文件不存在,会创建新的文件.所以请确定路径和文件名再保存
这里要说一下vi和vim的使用方法, 进入编辑模式请按键盘上的 i 键, 否则无法对文档进行编辑, 退出编辑模式请按Esc键. Shift+ZZ键是保存并退出vi或vim, Shift+ZQ键是不保存并退出vi或vim
vi /etc/ssh/sshd_config 打开文件并编辑, 如果文件不存在,会创建新的文件.所以请确定路径和文件名再保存
端口更改:
Port ** 将port前边的#号删除 **即是你需要的端口号,建议修改个大点的端口,以免和其他端口相冲突.
vi /etc/services 22端口都修改成指定的端口,22端口要改成与sshd_config里的端口一致,Tcp和Udp都改成与上边的端口一致
find / -name my.cnf 查找mysql的配置文件,如果你知道mysql的配置文件路径的话,不需要这一步
vi /***/my.cnf /***/是路径,这是打开编辑mysql的配置文件
找到port=这一行,将这一行后边的端口号改成你想要修改为的端口号,必须是维一的,不能和其他服务或端口有冲突.
vi /etc/services 3306端口都修改成指定的端口,3306端口要改成与my.cnf里的端口一致,Tcp和Udp都改成与上边的端口一致
这一个需要看你系统里安装的是什么样的Ftp服务,不同的服务有不同的配置文件. 不过我建议你还是不要安装Ftp,用Scp(Linux)或WinScp(windows)来进行数据上传下载
find / -name vsftpd.conf 查找vsftpd的配置文件,如果你知道vsftpsd的配置文件路径的话,不需要这一步
vi /****/vsftpd.conf /****/是vsftpd.conf所在目录,在vsftpd.conf中增加 listen_port=*** 最后这个星号这里是自定义的端口号.
vi /etc/services 21端口都修改成指定的端口,21端口要改成与vsftpd.conf里的端口一致,Tcp和Udp都改成与上边的端口一致
find / -name proftpd.conf 查找proftpd的配置文件,如果你知道proftpd的配置文件路径的话,不需要这一步
vi /***/proftpd.conf port:21 将21改成你需要的端口
vi /etc/services 21端口都修改成指定的端口,21端口要改成与proftpd.conf里的端口一致,Tcp和Udp都改成与上边的端口一致
find / -name pure-ftpd.conf 查找pure-ftpd的配置文件,如果你知道pure-ftpd的配置文件路径的话,不需要这一步
vi /****/pure-ftpd.conf /****/是pure-ftpd.conf所在目录,Bind 127.0.0.1,21 Bind 0.0.0.0,*** 将# Bind前的#去掉,并将127替换成0 将21改成你指定的端口
vi /etc/services 21端口都修改成指定的端口,21端口要改成与pure-ftpd.conf里的端口一致,Tcp和Udp都改成与上边的端口一致
更改ssh端口
vi /etc/ssh/sshd_config
Port ** 将port前边的#号删除 **即是你需要的端口号,建议修改个大点的端口,以免和其他端口相冲突.
vi /etc/services 22端口都修改成指定的端口,22端口要改成与sshd_config里的端口一致,Tcp和Udp都改成与上边的端口一致
更改Mysql端口
find / -name my.cnf 查找mysql的配置文件,如果你知道mysql的配置文件路径的话,不需要这一步
vi /***/my.cnf /***/是路径,这是打开编辑mysql的配置文件
找到port=这一行,将这一行后边的端口号改成你想要修改为的端口号,必须是维一的,不能和其他服务或端口有冲突.
vi /etc/services 3306端口都修改成指定的端口,3306端口要改成与my.cnf里的端口一致,Tcp和Udp都改成与上边的端口一致
更改Ftp端口
这一个需要看你系统里安装的是什么样的Ftp服务,不同的服务有不同的配置文件. 不过我建议你还是不要安装Ftp,用Scp(Linux)或WinScp(windows)来进行数据上传下载
vsftpd
find / -name vsftpd.conf 查找vsftpd的配置文件,如果你知道vsftpsd的配置文件路径的话,不需要这一步
vi /****/vsftpd.conf /****/是vsftpd.conf所在目录,在vsftpd.conf中增加 listen_port=*** 最后这个星号这里是自定义的端口号.
vi /etc/services 21端口都修改成指定的端口,21端口要改成与vsftpd.conf里的端口一致,Tcp和Udp都改成与上边的端口一致
proftpd
find / -name proftpd.conf 查找proftpd的配置文件,如果你知道proftpd的配置文件路径的话,不需要这一步
vi /***/proftpd.conf port:21 将21改成你需要的端口
vi /etc/services 21端口都修改成指定的端口,21端口要改成与proftpd.conf里的端口一致,Tcp和Udp都改成与上边的端口一致
pure-ftpd
find / -name pure-ftpd.conf 查找pure-ftpd的配置文件,如果你知道pure-ftpd的配置文件路径的话,不需要这一步
vi /****/pure-ftpd.conf /****/是pure-ftpd.conf所在目录,Bind 127.0.0.1,21 Bind 0.0.0.0,*** 将# Bind前的#去掉,并将127替换成0 将21改成你指定的端口
vi /etc/services 21端口都修改成指定的端口,21端口要改成与pure-ftpd.conf里的端口一致,Tcp和Udp都改成与上边的端口一致
更改ssh端口
vi /etc/ssh/sshd_config
Port ** 将port前边的#号删除 **即是你需要的端口号,建议修改个大点的端口,以免和其他端口相冲突.
vi /etc/services 22端口都修改成指定的端口,22端口要改成与sshd_config里的端口一致,Tcp和Udp都改成与上边的端口一致
更改Mysql端口
find / -name my.cnf 查找mysql的配置文件,如果你知道mysql的配置文件路径的话,不需要这一步
vi /***/my.cnf /***/是路径,这是打开编辑mysql的配置文件
找到port=这一行,将这一行后边的端口号改成你想要修改为的端口号,必须是维一的,不能和其他服务或端口有冲突.
vi /etc/services 3306端口都修改成指定的端口,3306端口要改成与my.cnf里的端口一致,Tcp和Udp都改成与上边的端口一致
更改Ftp端口
这一个需要看你系统里安装的是什么样的Ftp服务,不同的服务有不同的配置文件. 不过我建议你还是不要安装Ftp,用Scp(Linux)或WinScp(windows)来进行数据上传下载
vsftpd
find / -name vsftpd.conf 查找vsftpd的配置文件,如果你知道vsftpsd的配置文件路径的话,不需要这一步
vi /****/vsftpd.conf /****/是vsftpd.conf所在目录,在vsftpd.conf中增加 listen_port=*** 最后这个星号这里是自定义的端口号.
vi /etc/services 21端口都修改成指定的端口,21端口要改成与vsftpd.conf里的端口一致,Tcp和Udp都改成与上边的端口一致
proftpd
find / -name proftpd.conf 查找proftpd的配置文件,如果你知道proftpd的配置文件路径的话,不需要这一步
vi /***/proftpd.conf port:21 将21改成你需要的端口
vi /etc/services 21端口都修改成指定的端口,21端口要改成与proftpd.conf里的端口一致,Tcp和Udp都改成与上边的端口一致
pure-ftpd
find / -name pure-ftpd.conf 查找pure-ftpd的配置文件,如果你知道pure-ftpd的配置文件路径的话,不需要这一步
vi /****/pure-ftpd.conf /****/是pure-ftpd.conf所在目录,Bind 127.0.0.1,21 Bind 0.0.0.0,*** 将# Bind前的#去掉,并将127替换成0 将21改成你指定的端口
vi /etc/services 21端口都修改成指定的端口,21端口要改成与pure-ftpd.conf里的端口一致,Tcp和Udp都改成与上边的端口一致


关闭端口和服务操作的方法:
注:Centos7和Centos6的方法是不一样的,请搜索Centos7的使用方法, 我们这里以Centos6演示. 关闭端口有两种方法,因为Linux下的端口开放是以服务的启动并监听来实现端口开放的, 我们停止服务也可以做到端口关闭,也可以利用防火墙来关闭端口, Linux下的防火墙是iptables, 在任何操作之后, 都需要执行 service iptables save和service iptables restart
关闭端口
service iptables save 保存操作
service iptables start 启动防火墙
service iptables restart 重启防火墙
service iptables stop 停止防火墙(只是本次停止,如果关联了服务的话,系统重新启动后还会被启动)
service iptables save 保存操作
service iptables start 启动防火墙
service iptables restart 重启防火墙
service iptables stop 停止防火墙(只是本次停止,如果关联了服务的话,系统重新启动后还会被启动)
service iptables save 保存操作
service iptables start 启动防火墙
service iptables restart 重启防火墙
service iptables stop 停止防火墙(只是本次停止,如果关联了服务的话,系统重新启动后还会被启动)
[root@localhost RucLinux]# iptables --help
Usage: iptables -[ACD] chain rule-specification [options]
iptables -I chain [rulenum] rule-specification [options]
iptables -R chain rulenum rule-specification [options]
iptables -D chain rulenum [options]
iptables -[LS] [chain [rulenum]] [options]
iptables -[FZ] [chain] [options]
iptables -E old-chain-name new-chain-name
iptables -P chain target [options]
iptables -h (print this help information)
Either long or short options are allowed.
--append -A chain Append to chain
--check -C chain Check for the existence of a rule
--delete -D chain Delete matching rule from chain
--delete -D chain rulenum
Delete rule rulenum (1 = first) from chain
--insert -I chain [rulenum]
Insert in chain as rulenum (default 1=first)
--replace -R chain rulenum
Replace rule rulenum (1 = first) in chain
--list -L [chain [rulenum]]
List the rules in a chain or all chains
--list-rules -S [chain [rulenum]]
Print the rules in a chain or all chains
--flush -F [chain] Delete all rules in chain or all chains
--zero -Z [chain [rulenum]]
Zero counters in chain or all chains
--new -N chain Create a new user-defined chain
-X [chain] Delete a user-defined chain
Change policy on chain to target
Change chain name, (moving any references)
[!] --proto -p proto protocol: by number or name, eg. `tcp'
[!] --source -s address[/mask][...]
[!] --destination -d address[/mask][...]
destination specification
[!] --in-interface -i input name[+]
network interface name ([+] for wildcard)
target for rule (may load target extension)
jump to chain with no return
extended match (may load extension)
--numeric -n numeric output of addresses and ports
[!] --out-interface -o output name[+]
network interface name ([+] for wildcard)
--table -t table table to manipulate (default: `filter')
--verbose -v verbose mode
--line-numbers print line numbers when listing
--exact -x expand numbers (display exact values)
[!] --fragment -f match second or further fragments only
--modprobe=<command></command> try to insert modules using this command
--set-counters PKTS BYTES set the counter during insert/append
[!] --version -V print package version.
[root@localhost RucLinux]# iptables --help
iptables v1.4.7
Usage: iptables -[ACD] chain rule-specification [options]
iptables -I chain [rulenum] rule-specification [options]
iptables -R chain rulenum rule-specification [options]
iptables -D chain rulenum [options]
iptables -[LS] [chain [rulenum]] [options]
iptables -[FZ] [chain] [options]
iptables -[NX] chain
iptables -E old-chain-name new-chain-name
iptables -P chain target [options]
iptables -h (print this help information)
Commands:
Either long or short options are allowed.
--append -A chain Append to chain
--check -C chain Check for the existence of a rule
--delete -D chain Delete matching rule from chain
--delete -D chain rulenum
Delete rule rulenum (1 = first) from chain
--insert -I chain [rulenum]
Insert in chain as rulenum (default 1=first)
--replace -R chain rulenum
Replace rule rulenum (1 = first) in chain
--list -L [chain [rulenum]]
List the rules in a chain or all chains
--list-rules -S [chain [rulenum]]
Print the rules in a chain or all chains
--flush -F [chain] Delete all rules in chain or all chains
--zero -Z [chain [rulenum]]
Zero counters in chain or all chains
--new -N chain Create a new user-defined chain
--delete-chain
-X [chain] Delete a user-defined chain
--policy -P chain target
Change policy on chain to target
--rename-chain
-E old-chain new-chain
Change chain name, (moving any references)
Options:
[!] --proto -p proto protocol: by number or name, eg. `tcp'
[!] --source -s address[/mask][...]
source specification
[!] --destination -d address[/mask][...]
destination specification
[!] --in-interface -i input name[+]
network interface name ([+] for wildcard)
--jump -j target
target for rule (may load target extension)
--goto -g chain
jump to chain with no return
--match -m match
extended match (may load extension)
--numeric -n numeric output of addresses and ports
[!] --out-interface -o output name[+]
network interface name ([+] for wildcard)
--table -t table table to manipulate (default: `filter')
--verbose -v verbose mode
--line-numbers print line numbers when listing
--exact -x expand numbers (display exact values)
[!] --fragment -f match second or further fragments only
--modprobe=<command></command> try to insert modules using this command
--set-counters PKTS BYTES set the counter during insert/append
[!] --version -V print package version.
[root@localhost RucLinux]# iptables --help
iptables v1.4.7
Usage: iptables -[ACD] chain rule-specification [options]
iptables -I chain [rulenum] rule-specification [options]
iptables -R chain rulenum rule-specification [options]
iptables -D chain rulenum [options]
iptables -[LS] [chain [rulenum]] [options]
iptables -[FZ] [chain] [options]
iptables -[NX] chain
iptables -E old-chain-name new-chain-name
iptables -P chain target [options]
iptables -h (print this help information)
Commands:
Either long or short options are allowed.
--append -A chain Append to chain
--check -C chain Check for the existence of a rule
--delete -D chain Delete matching rule from chain
--delete -D chain rulenum
Delete rule rulenum (1 = first) from chain
--insert -I chain [rulenum]
Insert in chain as rulenum (default 1=first)
--replace -R chain rulenum
Replace rule rulenum (1 = first) in chain
--list -L [chain [rulenum]]
List the rules in a chain or all chains
--list-rules -S [chain [rulenum]]
Print the rules in a chain or all chains
--flush -F [chain] Delete all rules in chain or all chains
--zero -Z [chain [rulenum]]
Zero counters in chain or all chains
--new -N chain Create a new user-defined chain
--delete-chain
-X [chain] Delete a user-defined chain
--policy -P chain target
Change policy on chain to target
--rename-chain
-E old-chain new-chain
Change chain name, (moving any references)
Options:
[!] --proto -p proto protocol: by number or name, eg. `tcp'
[!] --source -s address[/mask][...]
source specification
[!] --destination -d address[/mask][...]
destination specification
[!] --in-interface -i input name[+]
network interface name ([+] for wildcard)
--jump -j target
target for rule (may load target extension)
--goto -g chain
jump to chain with no return
--match -m match
extended match (may load extension)
--numeric -n numeric output of addresses and ports
[!] --out-interface -o output name[+]
network interface name ([+] for wildcard)
--table -t table table to manipulate (default: `filter')
--verbose -v verbose mode
--line-numbers print line numbers when listing
--exact -x expand numbers (display exact values)
[!] --fragment -f match second or further fragments only
--modprobe= try to insert modules using this command
--set-counters PKTS BYTES set the counter during insert/append
[!] --version -V print package version.

演示
iptables -I INPUT -p tcp --dport 22 -j DROP 关闭TCP协议下的22端口
iptables -I INPUT -p udp --dport 22 -j DROP 关闭UDP协议下的22端口
iptables -I INPUT 1 -p tcp --dport 80 -m string --string "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" --algo bm -j DROP 禁止指定的浏览器UserAgent(UA标识)访问
iptables -I INPUT -s 121.205.215.140 -j DROP---禁止某个IP访问
iptables -I INPUT -p tcp --dport 22 -j DROP 关闭TCP协议下的22端口
iptables -I INPUT -p udp --dport 22 -j DROP 关闭UDP协议下的22端口
iptables -I INPUT 1 -p tcp --dport 80 -m string --string "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" --algo bm -j DROP 禁止指定的浏览器UserAgent(UA标识)访问
iptables -I INPUT -s 121.205.215.140 -j DROP---禁止某个IP访问
service iptables save
service iptables restart
iptables -I INPUT -p tcp --dport 22 -j DROP 关闭TCP协议下的22端口
iptables -I INPUT -p udp --dport 22 -j DROP 关闭UDP协议下的22端口
iptables -I INPUT 1 -p tcp --dport 80 -m string --string "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" --algo bm -j DROP 禁止指定的浏览器UserAgent(UA标识)访问
iptables -I INPUT -s 121.205.215.140 -j DROP---禁止某个IP访问
service iptables save
service iptables restart
服务操作方法:
[root@localhost RucLinux]# chkconfig --help
chkconfig 版本 1.3.49.5 - 版权 (C) 1997-2000 Red Hat, Inc.
在 GNU 公共许可的条款下,本软件可以被自由发行。
用法: chkconfig [--list] [--type <type>] [name]
chkconfig --del </name><name>
chkconfig --override </name><name>
chkconfig [--level <levels>] [--type <type>] <name> <on |off|reset|resetpriorities="">
chkconfig --list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
chkconfig [--level levels] name:设置某一服务在指定的运行级是被启动,停止还是重置。
</on></name></type></levels></name></type>
[root@localhost RucLinux]# chkconfig --help
chkconfig 版本 1.3.49.5 - 版权 (C) 1997-2000 Red Hat, Inc.
在 GNU 公共许可的条款下,本软件可以被自由发行。
用法: chkconfig [--list] [--type <type>] [name]
chkconfig --add <name>
chkconfig --del </name><name>
chkconfig --override </name><name>
chkconfig [--level <levels>] [--type <type>] <name> <on |off|reset|resetpriorities="">
chkconfig --list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
chkconfig [--level levels] name:设置某一服务在指定的运行级是被启动,停止还是重置。
</on></name></type></levels></name></type>
[root@localhost RucLinux]# chkconfig --help
chkconfig 版本 1.3.49.5 - 版权 (C) 1997-2000 Red Hat, Inc.
在 GNU 公共许可的条款下,本软件可以被自由发行。
用法: chkconfig [--list] [--type ] [name]
chkconfig --add
chkconfig --del
chkconfig --override
chkconfig [--level ] [--type ]
chkconfig --list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
chkconfig [--level levels] name:设置某一服务在指定的运行级是被启动,停止还是重置。

演示
chkconfig --list 显示本机所有服务状态
chkconfig --add mysql 将mysql添加为服务
chkconfig --del mysql 将mysql服务删除
chkconfig mysql on 将mysql服务启动
chkconfig mysql off 将mysql服务停止
chkconfig --list 显示本机所有服务状态
chkconfig --add mysql 将mysql添加为服务
chkconfig --del mysql 将mysql服务删除
chkconfig mysql on 将mysql服务启动
chkconfig mysql off 将mysql服务停止
chkconfig --list 显示本机所有服务状态
chkconfig --add mysql 将mysql添加为服务
chkconfig --del mysql 将mysql服务删除
chkconfig mysql on 将mysql服务启动
chkconfig mysql off 将mysql服务停止
进程操作
[root@localhost RucLinux]# killall --help
Usage: killall [-Z 上下文] [-u 用户名] [ -eIgiqrvw ] [ -信号 ] 程序名...
-I,--ignore-case 匹配进程名时忽略大小写
-g,--process-group 杀死进程组而不是进程
-i,--interactive 在杀死进程前要求确认
-r,--regexp 将 "进程名" 视为扩展正则表达式
-s,--signal 信号 发送 "信号" 而不是 SIGTERM
-u,--user 用户 仅杀死 "用户" 的进程
-Z,--context 正则表达式 仅杀死含有指定上下文的进程
[root@localhost RucLinux]# killall --help
Usage: killall [-Z 上下文] [-u 用户名] [ -eIgiqrvw ] [ -信号 ] 程序名...
killall -l, --list
killall -V, --version
-e,--exact 对长名字需要严格匹配
-I,--ignore-case 匹配进程名时忽略大小写
-g,--process-group 杀死进程组而不是进程
-i,--interactive 在杀死进程前要求确认
-l,--list 显示所有的信号名
-q,--quiet 不要打印抱怨信息
-r,--regexp 将 "进程名" 视为扩展正则表达式
-s,--signal 信号 发送 "信号" 而不是 SIGTERM
-u,--user 用户 仅杀死 "用户" 的进程
-v,--verbose 信号成功送出时打印信息
-V,--version 显示版本信息
-w,--wait 等待进程死亡
-Z,--context 正则表达式 仅杀死含有指定上下文的进程
(必须在其他参数前使用)
[root@localhost RucLinux]# killall --help
Usage: killall [-Z 上下文] [-u 用户名] [ -eIgiqrvw ] [ -信号 ] 程序名...
killall -l, --list
killall -V, --version
-e,--exact 对长名字需要严格匹配
-I,--ignore-case 匹配进程名时忽略大小写
-g,--process-group 杀死进程组而不是进程
-i,--interactive 在杀死进程前要求确认
-l,--list 显示所有的信号名
-q,--quiet 不要打印抱怨信息
-r,--regexp 将 "进程名" 视为扩展正则表达式
-s,--signal 信号 发送 "信号" 而不是 SIGTERM
-u,--user 用户 仅杀死 "用户" 的进程
-v,--verbose 信号成功送出时打印信息
-V,--version 显示版本信息
-w,--wait 等待进程死亡
-Z,--context 正则表达式 仅杀死含有指定上下文的进程
(必须在其他参数前使用)

演示
killall -9 mysql 终止mysql进程
killall -9 mysql 终止mysql进程
killall -9 mysql 终止mysql进程
权限设置
Linux下的权限设置又分用户组权限和文件所有者权限,还有文件自身权限, 其中文件自身权限还分有 500 644 666 755 777 等权限
cat /etc/group 查看所有用户组
cat /etc/shadow 查看所有用户名
cat /etc/passwd 同上
cat /etc/group 查看所有用户组
cat /etc/shadow 查看所有用户名
cat /etc/passwd 同上
[root@localhost RucLinux]# adduser --help
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
[root@localhost RucLinux]# adduser --help
用法:adduser [选项] 登录
adduser -D
adduser -D [选项]
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
[root@localhost RucLinux]# adduser --help
用法:adduser [选项] 登录
adduser -D
adduser -D [选项]
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER

[root@localhost RucLinux]# useradd --help
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
[root@localhost RucLinux]# useradd --help
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
[root@localhost RucLinux]# useradd --help
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER

[root@localhost RucLinux]# groupadd --help
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password PASSWORD 为新组使用此加密过的密码
-R, --root CHROOT_DIR chroot 到的目录
[root@localhost RucLinux]# groupadd --help
用法:groupadd [选项] 组
选项:
-f, --force 如果组已经存在则成功退出
并且如果 GID 已经存在则取消 -g
-g, --gid GID 为新组使用 GID
-h, --help 显示此帮助信息并推出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password PASSWORD 为新组使用此加密过的密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
[root@localhost RucLinux]# groupadd --help
用法:groupadd [选项] 组
选项:
-f, --force 如果组已经存在则成功退出
并且如果 GID 已经存在则取消 -g
-g, --gid GID 为新组使用 GID
-h, --help 显示此帮助信息并推出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password PASSWORD 为新组使用此加密过的密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录

[root@localhost RucLinux]# usermod --help
-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR 用户的新主目录
-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使用 GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
[root@localhost RucLinux]# usermod --help
用法:usermod [选项] 登录
选项:
-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR 用户的新主目录
-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使用 GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,
并不从其它组中删除此用户
-h, --help 显示此帮助信息并推出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定用户帐号
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
-u, --uid UID 用户帐号的新 UID
-U, --unlock 解锁用户帐号
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
[root@localhost RucLinux]# usermod --help
用法:usermod [选项] 登录
选项:
-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR 用户的新主目录
-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使用 GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,
并不从其它组中删除此用户
-h, --help 显示此帮助信息并推出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定用户帐号
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
-u, --uid UID 用户帐号的新 UID
-U, --unlock 解锁用户帐号
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射

[root@localhost RucLinux]# groups --help
用法:groups [选项]... [用户名]...
显示每个输入的用户名所在的全部组,如果没有指定用户名则默认为当前进程用户(当用户组数据库发生变更时可能导致差异)。
请向bug-coreutils@gnu.org 报告groups 的错误
[root@localhost RucLinux]# groups --help
用法:groups [选项]... [用户名]...
显示每个输入的用户名所在的全部组,如果没有指定用户名则默认为当前进程用户(当用户组数据库发生变更时可能导致差异)。
--help 显示此帮助信息并退出
--version 显示版本信息并退出
请向bug-coreutils@gnu.org 报告groups 的错误
[root@localhost RucLinux]# groups --help
用法:groups [选项]... [用户名]...
显示每个输入的用户名所在的全部组,如果没有指定用户名则默认为当前进程用户(当用户组数据库发生变更时可能导致差异)。
--help 显示此帮助信息并退出
--version 显示版本信息并退出
请向bug-coreutils@gnu.org 报告groups 的错误

[root@localhost RucLinux]# chown --help
用法:chown [选项]... [所有者][:[组]] 文件...
或:chown [选项]... --reference=参考文件 文件...
当使用 --referebce 参数时,将文件的所有者和所属组更改为与指定参考文件相同。
-c, --changes 类似 verbose,但只在有更改时才显示结果
--dereference 受影响的是符号链接所指示的对象,而非符号链接本身
-h, --no-dereference 会影响符号链接本身,而非符号链接所指示的目的地
(当系统支持更改符号链接的所有者时,此选项才有用)
--no-preserve-root 不特殊对待"/"(默认值)
--preserve-root 不允许在"/"上递归操作
-f, --silent, --quiet 去除大部份的错误信息
--reference=参考文件 使用参考文件的所属组,而非指定值
-R, --recursive 递归处理所有的文件及子目录
-v, --verbose 为处理的所有文件显示诊断信息
以下选项是在指定了 -R 选项时被用于设置如何穿越目录结构体系。
如果您指定了多于一个选项,那么只有最后一个会生效。
-H 如果命令行参数是一个通到目录的符号链接,则遍历符号链接
如果没有指定所有者,则不会更改。 所属组若没有指定也不会更改,但当加上
":"时 GROUP 会更改为指定所有者的主要组。所有者和所属组可以是数字或名称。
chown root /u 将 /u 的属主更改为"root"。
chown root:staff /u 和上面类似,但同时也将其属组更改为"staff"。
chown -hR root /u 将 /u 及其子目录下所有文件的属主更改为"root"。
[root@localhost RucLinux]# chown --help
用法:chown [选项]... [所有者][:[组]] 文件...
或:chown [选项]... --reference=参考文件 文件...
更改每个文件的所有者和/或所属组。
当使用 --referebce 参数时,将文件的所有者和所属组更改为与指定参考文件相同。
-c, --changes 类似 verbose,但只在有更改时才显示结果
--dereference 受影响的是符号链接所指示的对象,而非符号链接本身
-h, --no-dereference 会影响符号链接本身,而非符号链接所指示的目的地
(当系统支持更改符号链接的所有者时,此选项才有用)
--from=当前所有者:当前所属组
只当每个文件的所有者和组符合选项所指定时才更改所
有者和组。其中一个可以省略,这时已省略的属性就不
需要符合原有的属性。
--no-preserve-root 不特殊对待"/"(默认值)
--preserve-root 不允许在"/"上递归操作
-f, --silent, --quiet 去除大部份的错误信息
--reference=参考文件 使用参考文件的所属组,而非指定值
-R, --recursive 递归处理所有的文件及子目录
-v, --verbose 为处理的所有文件显示诊断信息
以下选项是在指定了 -R 选项时被用于设置如何穿越目录结构体系。
如果您指定了多于一个选项,那么只有最后一个会生效。
-H 如果命令行参数是一个通到目录的符号链接,则遍历符号链接
-L 遍历每一个遇到的通到目录的符号链接
-P 不遍历任何符号链接(默认)
--help 显示此帮助信息并退出
--version 显示版本信息并退出
如果没有指定所有者,则不会更改。 所属组若没有指定也不会更改,但当加上
":"时 GROUP 会更改为指定所有者的主要组。所有者和所属组可以是数字或名称。
示例:
chown root /u 将 /u 的属主更改为"root"。
chown root:staff /u 和上面类似,但同时也将其属组更改为"staff"。
chown -hR root /u 将 /u 及其子目录下所有文件的属主更改为"root"。
[root@localhost RucLinux]# chown --help
用法:chown [选项]... [所有者][:[组]] 文件...
或:chown [选项]... --reference=参考文件 文件...
更改每个文件的所有者和/或所属组。
当使用 --referebce 参数时,将文件的所有者和所属组更改为与指定参考文件相同。
-c, --changes 类似 verbose,但只在有更改时才显示结果
--dereference 受影响的是符号链接所指示的对象,而非符号链接本身
-h, --no-dereference 会影响符号链接本身,而非符号链接所指示的目的地
(当系统支持更改符号链接的所有者时,此选项才有用)
--from=当前所有者:当前所属组
只当每个文件的所有者和组符合选项所指定时才更改所
有者和组。其中一个可以省略,这时已省略的属性就不
需要符合原有的属性。
--no-preserve-root 不特殊对待"/"(默认值)
--preserve-root 不允许在"/"上递归操作
-f, --silent, --quiet 去除大部份的错误信息
--reference=参考文件 使用参考文件的所属组,而非指定值
-R, --recursive 递归处理所有的文件及子目录
-v, --verbose 为处理的所有文件显示诊断信息
以下选项是在指定了 -R 选项时被用于设置如何穿越目录结构体系。
如果您指定了多于一个选项,那么只有最后一个会生效。
-H 如果命令行参数是一个通到目录的符号链接,则遍历符号链接
-L 遍历每一个遇到的通到目录的符号链接
-P 不遍历任何符号链接(默认)
--help 显示此帮助信息并退出
--version 显示版本信息并退出
如果没有指定所有者,则不会更改。 所属组若没有指定也不会更改,但当加上
":"时 GROUP 会更改为指定所有者的主要组。所有者和所属组可以是数字或名称。
示例:
chown root /u 将 /u 的属主更改为"root"。
chown root:staff /u 和上面类似,但同时也将其属组更改为"staff"。
chown -hR root /u 将 /u 及其子目录下所有文件的属主更改为"root"。

[root@localhost RucLinux]# chmod --help
用法:chmod [选项]... 模式[,模式]... 文件...
或:chmod [选项]... 八进制模式 文件...
或:chmod [选项]... --reference=参考文件 文件...
-c, --changes 类似 --verbose,但只在有更改时才显示结果
--no-preserve-root 不特殊对待根目录(默认)
--preserve-root 禁止对根目录进行递归操作
-f, --silent, --quiet 去除大部份的错误信息
-v, --verbose 为处理的所有文件显示诊断信息
--reference=参考文件 使用指定参考文件的模式,而非自行指定权限模式
-R, --recursive 以递归方式更改所有的文件及子目录
每种 MODE 都应属于这类形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"。
请向bug-coreutils@gnu.org 报告chmod 的错误
[root@localhost RucLinux]# chmod --help
用法:chmod [选项]... 模式[,模式]... 文件...
或:chmod [选项]... 八进制模式 文件...
或:chmod [选项]... --reference=参考文件 文件...
将每个文件的模式更改为指定值。
-c, --changes 类似 --verbose,但只在有更改时才显示结果
--no-preserve-root 不特殊对待根目录(默认)
--preserve-root 禁止对根目录进行递归操作
-f, --silent, --quiet 去除大部份的错误信息
-v, --verbose 为处理的所有文件显示诊断信息
--reference=参考文件 使用指定参考文件的模式,而非自行指定权限模式
-R, --recursive 以递归方式更改所有的文件及子目录
--help 显示此帮助信息并退出
--version 显示版本信息并退出
每种 MODE 都应属于这类形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"。
请向bug-coreutils@gnu.org 报告chmod 的错误
[root@localhost RucLinux]# chmod --help
用法:chmod [选项]... 模式[,模式]... 文件...
或:chmod [选项]... 八进制模式 文件...
或:chmod [选项]... --reference=参考文件 文件...
将每个文件的模式更改为指定值。
-c, --changes 类似 --verbose,但只在有更改时才显示结果
--no-preserve-root 不特殊对待根目录(默认)
--preserve-root 禁止对根目录进行递归操作
-f, --silent, --quiet 去除大部份的错误信息
-v, --verbose 为处理的所有文件显示诊断信息
--reference=参考文件 使用指定参考文件的模式,而非自行指定权限模式
-R, --recursive 以递归方式更改所有的文件及子目录
--help 显示此帮助信息并退出
--version 显示版本信息并退出
每种 MODE 都应属于这类形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"。
请向bug-coreutils@gnu.org 报告chmod 的错误

演示
adduser toutiao 创建一个叫toutiao的用户
userdel toutiao 删除toutiao用户
groupadd -g 344 toutiao 添加一个ID为344的用户组toutiao
usermod -l toutiao1 toutiao 将用户名toutiao为toutiao1
usermod -G root toutiao 将toutiao添加到root用户组
groups RucLinux 查询用户RucLinux在什么用户组里
chown -R root:root /var/www/* 将/var/www/下的所有目录和文件都设置为root用户和root用户组权限 两个root之间有个半角的冒号
chmod 644 /var/www 将/var/www目录的权限设置为644
chmod -R 644 /var/www/* 将/var/www/下的所有目录和文件都设置为644权限
adduser toutiao 创建一个叫toutiao的用户
useradd toutiao 同上
userdel toutiao 删除toutiao用户
groupadd -g 344 toutiao 添加一个ID为344的用户组toutiao
usermod -l toutiao1 toutiao 将用户名toutiao为toutiao1
usermod -G root toutiao 将toutiao添加到root用户组
groups RucLinux 查询用户RucLinux在什么用户组里
chown -R root:root /var/www/* 将/var/www/下的所有目录和文件都设置为root用户和root用户组权限 两个root之间有个半角的冒号
chmod 644 /var/www 将/var/www目录的权限设置为644
chmod -R 644 /var/www/* 将/var/www/下的所有目录和文件都设置为644权限
adduser toutiao 创建一个叫toutiao的用户
useradd toutiao 同上
userdel toutiao 删除toutiao用户
groupadd -g 344 toutiao 添加一个ID为344的用户组toutiao
usermod -l toutiao1 toutiao 将用户名toutiao为toutiao1
usermod -G root toutiao 将toutiao添加到root用户组
groups RucLinux 查询用户RucLinux在什么用户组里
chown -R root:root /var/www/* 将/var/www/下的所有目录和文件都设置为root用户和root用户组权限 两个root之间有个半角的冒号
chmod 644 /var/www 将/var/www目录的权限设置为644
chmod -R 644 /var/www/* 将/var/www/下的所有目录和文件都设置为644权限
其他安全设置
为自己的系统安装 rootkits和fail2ban
rootkits中文名叫”Rootkit猎手”, 可以发现大约58个已知的rootkits和一些嗅探器和后门程序. 它通过执行一系列的测试脚本来确认你的机器是否已经感染rootkits. 比如检查rootkits使用的基本文件, 可执行二进制文件的错误文件权限, 检测内核模块等等. Rootkit Hunter由Michael Boelen开发, 是开源(GPL)软件.
yum install rkhunter* -y 安装rkhunter
rkhunter -c rkhunter的使用方法
请在我的博客里搜索 rkhunter和fail2ban查阅相关的详细教程
您可能需要的知识点
Linux下生成链条式密码钥匙的脚本 https://www.myzhenai.com.cn/post/2172.html
Linux下使用iptables封锁端口禁止邮件发送 https://www.myzhenai.com.cn/post/2161.html
Linux服务器一键备份脚本解释 https://www.myzhenai.com.cn/post/2636.html
Linux服务器安全之更改默认端口 https://www.myzhenai.com.cn/post/1783.html
Linux下的rootkits检测程序rkhunter https://www.myzhenai.com.cn/post/1763.html
iptables防火墙禁止福建莆田ip地址规则 https://www.myzhenai.com.cn/post/1685.html
Linux下iptables防火墙已停的解决办法 https://www.myzhenai.com.cn/post/1678.html
Linux下使用crontab添加定时任务 https://www.myzhenai.com.cn/post/1628.html
更新clamav病毒库的方法 https://www.myzhenai.com.cn/post/1367.html
Linux下目录无法删除的解决办法 https://www.myzhenai.com.cn/post/1350.html
Centos下删除系统多余旧内核的命令与方法 https://www.myzhenai.com.cn/post/1170.html
Centos6.4编译安装clamav-0.97.8 https://www.myzhenai.com.cn/post/1061.html
Linux VPS服务器管理常用命令 https://www.myzhenai.com.cn/post/815.html
Linux系统编译安装Putty软件 https://www.myzhenai.com.cn/post/802.html
Linux系统使用的远程连接工具 https://www.myzhenai.com.cn/post/793.html
Linux服务器中文文件名无法删除的解决方法 https://www.myzhenai.com.cn/post/787.html
mysql数据库命令行备份方法 https://www.myzhenai.com.cn/post/785.html
Linux命令:改变文件或目录的访问权限 https://www.myzhenai.com.cn/post/658.html
Linux系统根文件系统的目录解释 https://www.myzhenai.com.cn/post/656.html
如何保证Linux系统安全 https://www.myzhenai.com.cn/post/602.html
linux忘记root密码又忘记grub密码的解决方法 https://www.myzhenai.com.cn/post/600.html
Centos6下pure-ftpd1.0.36编译安装和配置 https://www.myzhenai.com.cn/post/1812.html
linux centos 下fail2ban安装与配置 https://www.myzhenai.com.cn/post/1791.html
sicnature ---------------------------------------------------------------------
I P 地 址: 3.148.242.202
区 域 位 置: 美国
系 统 信 息:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普
| 海南乡情论坛 | JiaYu
Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source https://myzhenai.com/post/2664.html
没有评论