[内容] Linux 路由转发的设置

注意:

openSUSE&SUSE 搭配 docker 环境可能只能使用永久路由转发才会实现路由转发

内容目录:

内容一:临时路由转发的设置
1.1 临时开启路由转发
1.2 临时停止路由转发

内容二:永久路由转发的设置
2.1 永久开启路由转发
2.2 永久关闭路由转发
2.3 让路由转发的永久设置立刻生效的方法

内容三:查看当前路由转发的状态

具体的内容:

内容一:临时路由转发的设置
1.1 临时开启路由转发

# echo 1 > /proc/sys/net/ipv4/ip_forward

或者:

# sysctl -w net.ipv4.ip_forward=1

1.2 临时停止路由转发

# echo 0 > /proc/sys/net/ipv4/ip_forward

或者:

# sysctl -w net.ipv4.ip_forward=0

内容二:永久路由转发的设置
2.1 永久开启路由转发

# vim /etc/sysctl.conf

添加以下内容:

......
net.ipv4.ip_forward = 1

(注意:对路由转发进行了永久设置了以后它不会立刻生效,只会在重启后生效)

2.2 永久关闭路由转发

# vim /etc/sysctl.conf

添加以下内容:

......
net.ipv4.ip_forward = 0

(注意:对路由转发进行了永久设置了以后它不会立刻生效,只会在重启后生效)

2.3 让路由转发的永久设置立刻生效的方法

# sysctl -p /etc/sysctl.conf

内容三:查看当前路由转发的状态

# cat /proc/sys/net/ipv4/ip_forward


补充:
如果返回的结果是 1 则代表已经生效
如果返回的结果是 0 则代表没有生效

(注意:此种方法可能不能检验 openSUSE&SUSE 搭配 docker 的环境)

[内容] CentOS&RHEL yum 的使用 (设置代理)

内容一:设置所有 yum 源网络代理的方法

# vim /etc/yum.conf

添加以下内容:

......
proxy=http://<user>:<password>@<IP address>:<port>/


注意:
1) 如果没有用户和密码就写成 proxy=http://<IP address>:<port>/
2) 如果密码中也有一个 “@” 符号,则需要把 “@” 符号转义一下,转义成 %40

或者:

# vim /etc/yum.conf

添加以下内容:

......
proxy=http:<IP address>:<port>
proxy_username=<user>
proxy_password=<password>

(注意:如果没有用户和密码就不写后面两行)

内容二:单独设置某个 yum 源网络代理的方法

# vim /etc/yum.repos.d/<yum source file name prefix>.repo

添加以下内容:

......
proxy=http://<user>:<password>@<IP address>:<port>/
......


注意:
1) 如果没有用户和密码就写成 proxy=http://<IP address>:<port>/
2) 如果密码中也有一个 “@” 符号,则需要把 “@” 符号转义一下,转义成 %40

或者:

# vim /etc/yum.repos.d/<yum source file name prefix>.repo

添加以下内容:

......
proxy=http://<IP address>:<port>
proxy_username=<user>
proxy_password=<password>

(注意:如果没有用户和密码就不写后面两行)

[命令] Linux 命令 firewall-cmd (设置防火墙)

内容目录:

内容一:防火墙信息查询
1.1 防火墙运行状态查询
1.2 防火墙默认信息查询
1.2.1 查看防火墙的所有区域
1.2.2 查看防火墙支持的所有服务
1.2.3 查看防火墙支持的所有 icmp 协议
1.3 查看防火墙当前所在的区域
1.4 查看防火墙的策略
1.4.1 查看防火墙当前所在的区域的所有策略
1.4.2 查看所有区域的所有策略
1.4.3 查看某一个区域的策略
1.4.3.1 查看某一个区域的策略的格式
1.4.3.2 查看某一个区域的策略的案例

内容二: 区域的网卡管理
2.1 查看网卡所在的区域
2.1.1 查看哪些区域处于激活状态
2.1.2 查看某一个网卡所属的区域
2.1.2.1 查看某一个网卡所属的区域的格式
2.1.2.2 查看某一个网卡所属的区域的案例
2.2 将某一个网卡放入某一个区域
2.2.1 将某一个网卡放入某一个区域的格式
2.2.2 将某一个网卡放入某一个区域的案例
2.3 将某一个网卡从某一个区域删除
2.3.1 将某一个网卡从某一个区域删除的格式
2.3.2 将某一个网卡从某一个区域删除的案例

内容三:防火墙区域设置
3.1 查看防火墙目前所在的区域
3.2 指定防火墙的区域
3.2.1 指定防火墙的区域的格式
3.2.2 指定防火墙的区域的案例

内容四:防火墙暂时策略设置(防火墙重启后失效)
4.1 开放策略相关
4.1.1 暂时开放端口
4.1.1.1 暂时在防火墙当前所在区域里开放某一个端口
4.1.1.1.1 暂时在防火墙当前所在区域里开放某一个端口的格式
4.1.1.1.2 暂时在防火墙当前所在区域里开放某一个端口的案例
4.1.1.2 暂时在防火墙当前所在区域里开放某一个服务的所有端口
4.1.1.2.1 暂时在防火墙当前所在区域里开放某一个服务的所有端口的格式
4.1.1.2.2 暂时在防火墙当前所在区域里开放某一个服务的所有端口的案例
4.1.1.3 暂时在防火墙当前所在区域里对某个网段开放某一个端口
4.1.1.3.1 暂时在防火墙当前所在区域里对某个网段开放某一个端口的格式
4.1.1.3.2 暂时在防火墙当前所在区域里对某个网段开放某一个端口的案例
4.1.1.4 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口
4.1.1.4.1 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口的格式
4.1.1.4.2 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口的案例
4.1.1.5 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口
4.1.1.5.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口的格式
4.1.1.5.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口的案例
4.1.2 暂时关闭已开放的端口
4.1.2.1 暂时在防火墙当前所在区域里关闭已开放的某一个端口
4.1.2.1.1 暂时在防火墙当前所在区域里关闭已开放的某一个端口的格式
4.1.2.1.2 暂时在防火墙当前所在区域里关闭已开放的某一个端口的案例
4.1.2.2 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口
4.1.2.2.1 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口的格式
4.1.2.2.2 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口的案例
4.1.2.3 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口
4.1.2.3.1 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口的格式
4.1.2.3.2 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放的某一个端口的案例
4.1.2.4 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口
4.1.2.4.1 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口的格式
4.1.2.4.2 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口的案例
4.1.2.5 暂时在防火墙当前所在区域里关闭对除了某一个 IP 地址外的 IP 地址开放多个端口
4.1.2.5.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口的格式
4.1.2.5.2 暂时在防火墙当前所在区域里关闭对除了某一个 IP 地址外的 IP 地址开放多个端口的案例
4.2 拒绝策略相关
4.2.1 暂时拒绝端口
4.2.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口
4.2.1.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式
4.2.1.1.2 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的案例
4.2.1.2 暂时在防火墙当前所在区域里对某一个 IP 地址拒绝多个端口
4.2.1.2.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式
4.2.1.2.2 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的案例
4.2.1.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口
4.2.1.2.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口的格式
4.2.1.2.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口的案例
4.2.2 暂时撤销已拒绝端口
4.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口
4.2.2.1.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式
4.2.2.1.2 暂时在防火墙当前所在区域里撤销撤销已设置的对某个网段拒绝某一个端口的案例
4.2.2.2 暂时在防火墙当前所在区域里撤销已设置的对某一个 IP 地址拒绝多个端口
4.2.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式
4.2.2.1.2 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的案例
4.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口
4.2.3.2.1 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口的格式
4.2.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口的案例
4.3 转发策略相关
4.3.1 开启防火墙转发策略
4.3.2 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口
4.3.2.1 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口的格式
4.3.2.2 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口的案例
4.3.3 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口
4.3.3.1 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口的格式
4.3.3.2 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口的案例

内容五:防火墙暂时禁止 icmp 的设置
5.1 防火墙暂时禁止 icmp
5.2 防火墙暂时取消禁止 icmp

内容六:防火墙暂时禁止所有网络的设置
6.1 让防火墙暂时进入拒绝模式
6.2 取消防火墙的拒绝模式
6.3 查看防火墙目前的状态

内容七:将防火墙暂时策略的设置方法转换成永久策略和限时策略的设置方法
7.1 防火墙暂时策略的设置方法
7.2 防火墙永久策略的设置
7.3 防火墙限时策略的设置

内容八:防火墙策略的加载
8.1 使用防火墙命令加载策略
8.2 在系统层面上重启防火墙以加载策略

相关链接:与 firewall-cmd 相关的 shell 脚本

具体的内容:

内容一:防火墙信息查询
1.1 防火墙运行状态查询

# firewall-cmd –state

1.2 防火墙默认信息查询
1.2.1 查看防火墙的所有区域

# firewall-cmd --get-zones

1.2.2 查看防火墙支持的所有服务

# firewall-cmd --get-services

1.2.3 查看防火墙支持的所有 icmp 协议

# firewall-cmd --get-icmptypes

1.3 查看防火墙当前所在的区域

# firewall-cmd --get-default-zone

1.4 查看防火墙的策略
1.4.1 查看防火墙当前所在的区域的所有策略

# firewall-cmd --list-all

1.4.2 查看所有区域的所有策略

# firewall-cmd --list-all-zones

1.4.3 查看某一个区域的策略
1.4.3.1 查看某一个区域的策略的格式

# firewall-cmd --zone=<zone> --list-all

1.4.3.2 查看某一个区域的策略的案例

# firewall-cmd --zone=public --list-all

内容二: 区域的网卡管理
2.1 查看网卡所在的区域
2.1.1 查看哪些区域处于激活状态

# firewall-cmd --get-active-zones

(注意:只有放入了显卡的区域才会处于激活状态)

2.1.2 查看某一个网卡所属的区域
2.1.2.1 查看某一个网卡所属的区域的格式

# firewall-cmd –get-zone-of-interface=<network card>

2.1.2.2 查看某一个网卡所属的区域的案例

# firewall-cmd --get-zone-of-interface=eth0

(补充:这里以往区域里加入 eth0 网卡为例)

2.2 将某一个网卡放入某一个区域
2.2.1 将某一个网卡放入某一个区域的格式

# firewall-cmd --zone=<zone> --add-interface=<network card>

2.2.2 将某一个网卡放入某一个区域的案例

# firewall-cmd --zone=public --add-interface=eth0

(补充:这里以往 public 区域里加入 eth0 网卡为例)

2.3 将某一个网卡从某一个区域删除
2.3.1 将某一个网卡从某一个区域删除的格式

# firewall-cmd --zone=<zone> --remove-interface=<network card>

2.3.2 将某一个网卡从某一个区域删除的案例

# firewall-cmd --zone=public --remove-interface=eth0

(补充:这里以从 public 区域删除 eth0 网卡为例)

内容三:防火墙区域设置
3.1 查看防火墙目前所在的区域

# firewall-cmd --get-default

3.2 指定防火墙的区域
3.2.1 指定防火墙的区域的格式

# firewall-cmd --set-default=<zone>

3.2.2 指定防火墙的区域的案例

# firewall-cmd --set-default=public

(补充:这里以将默认区域设置为 public 为例)

内容四:防火墙暂时策略设置(防火墙重启后失效)

(注意:防火墙的规则没有现后之分,但是拒绝规则永远高于允许规则)

4.1 开放策略相关
4.1.1 暂时开放端口
4.1.1.1 暂时在防火墙当前所在区域里开放某一个端口
4.1.1.1.1 暂时在防火墙当前所在区域里开放某一个端口的格式

# firewall-cmd --add-port=<port>/tcp

4.1.1.1.2 暂时在防火墙当前所在区域里开放某一个端口的案例

# firewall-cmd --add-port=80/tcp

(补充:这里以暂时添加 80/TCP 端口为例)

4.1.1.2 暂时在防火墙当前所在区域里开放某一个服务的所有端口
4.1.1.2.1 暂时在防火墙当前所在区域里开放某一个服务的所有端口的格式

# firewall-cmd --add-service=<service>

4.1.1.2.2 暂时在防火墙当前所在区域里开放某一个服务的所有端口号的案例

# firewall-cmd --add-service=http

(补充:这里以暂时添加 http 服务为例)

4.1.1.3 暂时在防火墙当前所在区域里对某个网段开放某一个端口
4.1.1.3.1 暂时在防火墙当前所在区域里对某个网段开放某一个端口的格式

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" accept"

4.1.1.3.2 暂时在防火墙当前所在区域里对某个网段开放某一个端口的案例

# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"

(补充:这里以暂时对 192.168.1.0/24 开放 80/tcp 端口为例)

4.1.1.4 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口
4.1.1.4.1 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口的格式

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

4.1.1.4.2 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口的案例

# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里以暂时对 192.168.1.1 开放 0/tcp 到 65535/tcp 端口为例)

4.1.1.5 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口
4.1.1.5.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口的格式

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

4.1.1.5.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口的案例

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里以暂时对非 192.168.1.1 开放 0/tcp 到 65535/tcp 端口为例)

4.1.2 暂时关闭已开放的端口
4.1.2.1 暂时在防火墙当前所在区域里关闭已开放的某一个端口
4.1.2.1.1 暂时在防火墙当前所在区域里关闭已开放的某一个端口的格式

# firewall-cmd --remove-port=<port>/tcp

4.1.2.1.2 暂时在防火墙当前所在区域里关闭已开放的某一个端口的案例

# firewall-cmd --remove-port=80/tcp

(补充:这里以暂时关闭 80/TCP 端口为例)

4.1.2.2 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口
4.1.2.2.1 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口的格式

# firewall-cmd --remove-service=<service>

4.1.2.2.2 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口号的案例

# firewall-cmd --remove-service=http

(补充:这里以暂时关闭 http 服务为例)

4.1.2.3 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口
4.1.2.3.1 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口的格式

# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" accept"

4.1.2.3.2 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放的某一个端口的案例

# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"

(补充:这里以暂时对 192.168.1.0/24 关闭 80/tcp 端口为例)

4.1.2.4 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口
4.1.2.4.1 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口的格式

# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

4.1.2.4.2 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口的案例

# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里以暂时对 192.168.1.1 关闭 0/tcp 到 65535/tcp 端口为例)

4.1.2.5 暂时在防火墙当前所在区域里关闭对除了某一个 IP 地址外的 IP 地址开放多个端口
4.1.2.5.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口的格式

# firewall-cmd --remove-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

4.1.2.5.2 暂时在防火墙当前所在区域里关闭对除了某一个 IP 地址外的 IP 地址开放多个端口的案例

# firewall-cmd --remove-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里以暂时对非 192.168.1.1 关闭 0/tcp 到 65535/tcp 端口为例)

4.2 拒绝策略相关
4.2.1 暂时拒绝端口
4.2.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口
4.2.1.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.1.2 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的案例

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 reject"


补充:
1) 这里以在 public 区域拒绝 192.168.1.0/24 访问 80/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应

4.2.1.2 暂时在防火墙当前所在区域里对某一个 IP 地址拒绝多个端口
4.2.1.2.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.2.2 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的案例

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" reject"


补充:
1) 这里以在 public 区域拒绝 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应

4.2.1.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口
4.2.1.2.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口的格式

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.2.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口的案例

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"


补充:
1) 这里以拒绝非 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应

4.2.2 暂时撤销已拒绝端口
4.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口
4.2.2.1.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.1.2 暂时在防火墙当前所在区域里撤销撤销已设置的对某个网段拒绝某一个端口的案例

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 reject"


补充:
1) 这里以取消在 public 区域拒绝 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应

4.2.2.2 暂时在防火墙当前所在区域里撤销已设置的对某一个 IP 地址拒绝多个端口
4.2.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.1.2 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的案例

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" reject"


补充:
1) 这里以取消拒绝 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应

4.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口
4.2.3.2.1 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口的格式

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口的案例

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"


补充:
1) 这里以取消拒绝非 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应

4.3 转发策略相关
4.3.1 开启防火墙转发策略

# firewall-cmd --add-masquerade --permanent

(注意:只有开启了防火墙转发策略之后防火墙才能转发端口)

4.3.2 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口
4.3.2.1 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口的格式

# firewall-cmd --add-forward-port=port=<port>:proto=<port protocol>:toport=<port>:toaddr=<IP address>

4.3.2.2 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口的案例

# firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1

(补充:这里以将本地的 80 端口转向 192.168.1.1 的 8080 端口为例)

4.3.3 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口
4.3.3.1 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口的格式

# firewall-cmd --remove-forward-port=port=<port>:proto=<port protocol>:toport=<port>:toaddr=<IP address>

4.3.3.2 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口的案例

# firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1

(补充:这里以取消将本地的 80 端口转向 192.168.1.1 的 8080 端口为例)

内容五:防火墙暂时禁止 icmp 的设置
5.1 防火墙暂时禁止 icmp

# firewall-cmd --add-rich-rule='rule protocol value=icmp drop'

5.2 防火墙暂时取消禁止 icmp

# firewall-cmd --remove-rich-rule='rule protocol value=icmp drop'

内容六:防火墙暂时禁止所有网络的设置
6.1 让防火墙暂时进入拒绝模式

# firewall-cmd –panic-on

6.2 取消防火墙的拒绝模式

# firewall-cmd –panic-off

6.3 查看防火墙目前的状态

# firewall-cmd –query-panic

内容七:将防火墙暂时策略的设置方法转换成永久策略和限时策略的设置方法
7.1 防火墙暂时策略的设置方法

和内容一、内容二、内容三、内容四里的大部分设置命令一样,例

# firewall-cmd --add-port=80/tcp

(补充:这里以临时添加 80/tcp 端口为例)

7.2 防火墙永久策略的设置

和内容一、内容二、内容三、内容四里的大部分设置命令一样,但是需要在后面添加 –permanent 参数,例

# firewall-cmd --add-port=80/tcp --permanent

(补充:这里以永久添加 80/tcp 端口为例)

(注意:永久策略设置后,防火墙要重新加载才会生效)

7.3 防火墙限时策略的设置

和内容一、内容二、内容三、内容四的大部分设置命令一样,但是需要在后面添加 –timeout=<秒> 参数,列

# firewall-cmd --add-port=80/tcp --timeout=3600

(补充:这里以在 3600 秒期间添加 80/tcp 端口为例)

(注意:此策略会在 3600 秒后失效)

内容八:防火墙策略的加载
8.1 使用防火墙命令加载策略

# firewall-cmd --reload

(注意:此时暂时策略会失效,永久策略会生效)

8.2 在系统层面上重启防火墙以加载策略

# systemctl retart firewalld

(注意:此时暂时策略会失效,永久策略会生效)

相关链接:与 firewall-cmd 相关的 shell 脚本

Shell 在 firewalld 防火墙上批量对多个 IP 地址开发多个端口号

Shell 在 firewalld 防火墙上开放所有正在处于监听状态的端口号

Shell 在 firewalld 防火墙上取消所有已设置的复杂端口号策略

Shell 在 firewalld 防火墙上取消所有已开放的端口号

[命令] Linux 命令 iptables (设置防火墙) (转载)

一、iptables命令

    iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。

1.1 语法

iptables(选项)(参数)

    1

1.2 选项
选项 	描述
-t<表> 	指定要操纵的表;
-A 	向规则链中添加条目;
-D 	从规则链中删除条目;
-i 	向规则链中插入条目;
-R 	替换规则链中的条目;
-L 	显示规则链中已有的条目;
-F 	清楚规则链中已有的条目;
-Z 	清空规则链中的数据包计算器和字节计数器;
-N 	创建新的用户自定义规则链;
-P 	定义规则链中的默认目标;
-h 	显示帮助信息;
-p 	指定要匹配的数据包协议类型;
-s 	指定要匹配的数据包源ip地址;
-j<目标> 	指定要跳转的目标;
-i<网络接口> 	指定数据包进入本机的网络接口;
-o<网络接口> 	指定数据包要离开本机所使用的网络接口。

1.3 iptables命令选项输入顺序

    iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

1.3.1 表名包括:

    raw:高级功能,如:网址过滤。
    mangle:数据包修改(QOS),用于实现服务质量。
    net:地址转换,用于网关路由器。
    filter:包过滤,用于防火墙规则。

1.3.2 规则链名包括

    INPUT链:处理输入数据包。
    OUTPUT链:处理输出数据包。
    PORWARD链:处理转发数据包。
    PREROUTING链:用于目标地址转换(DNAT)。
    POSTOUTING链:用于源地址转换(SNAT

1.3.3 动作包括

    accept:接收数据包。
    DROP:丢弃数据包。
    REDIRECT:重定向、映射、透明代理。
    SNAT:源地址转换。
    DNAT:目标地址转换。
    MASQUERADE:IP伪装(NAT),用于ADSL。
    LOG:日志记录。

二、示列

# 清除已有iptables规则
iptables -F
iptables -X
iptables -Z

# 开放指定的端口
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT               #允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    #允许已建立的或相关连的通行
iptables -A OUTPUT -j ACCEPT         #允许所有本机向外的访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT    #允许访问22端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    #允许访问80端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT    #允许ftp服务的21端口
iptables -A INPUT -p tcp --dport 20 -j ACCEPT    #允许FTP服务的20端口
iptables -A INPUT -j reject       #禁止其他未允许的规则访问
iptables -A FORWARD -j REJECT     #禁止其他未允许的规则访问

# 屏蔽IP
iptables -I INPUT -s 123.45.6.7 -j DROP       #屏蔽单个IP的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP    #封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 123.45.6.0/24 -j DROP    #封IP段即从123.45.6.1到123.45.6.254的命令是

# 查看已添加的iptables规则
iptables -L -n -v
Chain INPUT (policy DROP 48106 packets, 2690K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 5075  589K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
 191K   90M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
1499K  133M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
4364K 6351M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
 6256  327K ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 3382K packets, 1819M bytes)
 pkts bytes target     prot opt in     out     source               destination         
 5075  589K ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0  

# 删除已添加的iptables规则
iptables -L -n --line-numbers # 将所有iptables以序号标记显示
iptables -D INPUT 8 #比如要删除INPUT里序号为8的规则
————————————————
版权声明:本文为CSDN博主「书香水墨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_27870421/article/details/93166786

注明:所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来

CC 4.0 BY-SA 版权协议网址:https://creativecommons.org/licenses/by-sa/4.0/deed.z
站主补充:
站主补充一:iptables 保证现有连接不会被禁止的防火墙规则
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

站主补充二:iptables 保证本地环路不会被禁止的防火墙规则
# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# iptables -A INPUT -i lo -j ACCEPT

站主补充三:iptables 清空某一张表的规则
3.1 iptables 清空 filter 表的规则
# iptables -t filter -F

3.2 iptables 清空 nat 表的规则
# iptables -t nat -F

站主补充四:iptables 设置某一个链的默认规则
4.1 将某一个默认规则设置成允许
4.1.1 iptables 将 OUTPUT 链的默认规则设置为允许
# iptables -P OUTPUT ACCEPT

(补充:这里以将 OUTPUT 链设置为允许为例)

4.1.2 iptables 将 INPUT 链的默认规则设置为允许
# iptables -P INPUT ACCEPT

(补充:这里以将 INPUT 链设置为允许为例)

4.1.3 iptables 将 FORWAED 链的默认规则设置为允许
# iptables -P FORWARD ACCEPT

(补充:这里以将 FORWARD 链设置为允许为例)

4.2 将某一个默认规则设置成丢掉
4.2.1 iptables 将 OUTPUT 链的默认规则设置为丢掉
# iptables -P OUTPUT DROP

(补充:这里以将 OUTPUT 链设置为丢掉为例)

4.2.2 iptables 将 INPUT 链的默认规则设置为丢掉
# iptables -P INPUT DROP

(补充:这里以将 INPUT 链设置为丢掉为例)

4.2.3 iptables 将 FORWAED 链的默认规则设置为丢掉
# iptables -P FORWARD DROP

(补充:这里以将 FORWAED 链设置为丢掉为例)

站主补充五:iptables 一次性添加多个不连续端口的策略
# iptables -I INPUT -p tcp -m multiport --dport 22:30,80,3306 -j DROP

(补充:这里以将 INPUT 链里添加丢掉 22 到 30、80、3306 端口为例)

站住补充六:iptables 一次性添加多个连续端口的策略
# iptables -I INPUT -p tcp -m multiport --dport 22:30 -j DROP

(补充:这里以将 INPUT 链里添加丢掉 22 到 30 端口为例)

站住补充七:iptables 一次性添加多个连续和不连续端口的策略
# iptables -I INPUT -p TCP -m multiport --dport 22:30,80,3301:3306 -j DROP

(补充:这里以将 INPUT 链里添加丢掉 22 到 30、80、3301 到 3306 端口为例)

站主补充八:iptables 一次性给多个 IP 地址添加多个端口的策略
# iptables -I INPUT -s 192.168.1.1,192.168.1.5,192.168.1.100-110 -p TCP -m multiport --dport 22:30,80,3306 -j ACCEPT

(补充:这里以将 INPUT 链里添加允许 192.168.1.1、192.168.1.5、192.168.1.100 到 192.168.1.110 的 22 到 30、80、3301 到 3306 端口为例)

站主补充九:iptables icmp 也就是 ping 的管理
# iptables -t filter -A INPUT -j ACCEPT -p icmp -m icmp --icmp-type 8 #允许 icmp 进去
# iptables -t filter -A INPUT -j ACCEPT -p icmp -m icmp --icmp-type 0 #允许 icmp 出去

站主补充十:iptables 的规则保存
# iptables-save

或者:

# service iptables save

(注意:此方法只在 CentOS 7 & RHEL 7 有用)

站主补充十一:iptables 查看所有规则
11.1 iptables 查看所有规则
# iptables -nL

11.2 iptables 查看所有规则并显示编号
# iptables --list --line-numbers

11.3 iptables 查看某一张表里的所有规则
# iptables -L -v -t filter -n --line-numbers

[命令] Linux 命令 chmod (管理权限)

内容目录:

内容一:普通权限的管理
1.1 普通权限的介绍
1.1.1 对于文件而言
1.1.2 对于目录而言
1.1.3 用数字代替权限的方法
1.2 管理权限案例
1.2.1 给一个文件或目录添加权限的案例
1.2.1.1 案例一
1.2.1.2 案例二
1.2.1.3 案例三
1.2.1.4 案例四
1.2.2 给一个文件或目录撤销权限的案例
1.2.2.1 案例一
1.2.2.2 案例二
1.2.2.3 案例三
1.2.2.4 案例四
1.2.3 设定某一个文件或目录的权限的案例
1.2.3.1 案例一
1.2.3.2 案例二
1.2.3.3 案例三
1.2.3.4 案例四
1.2.3.5 案例五
1.2.3.6 案例六
1.2.3.7 案例七

内容二:特殊权限的管理
2.1 特殊权限 SUID
2.1.1 SUID 介绍
2.1.2 SUID 权限的添加的案例
2.1.2.1 添加 SUID 权限的案例
2.1.2.2 查看 SUID 权限的添加情况的案例
2.1.2.2.1 查看有 SUID 权限,但是所属主没有执行权限的文件的案例
2.1.2.2.2 查看有 SUID 权限,并且所属主有执行权限的文件的案例
2.2 特殊权限 SGID
2.2.1 SGID 介绍
2.2.2 SGID 权限的添加的案例
2.2.2.1 添加 SGID 权限的案例
2.2.2.2 查看 SGID 权限的添加情况的案例
2.2.2.2.1 查看有 SGID 权限,但是所属组没有执行权限的目录的案例
2.2.2.2.2 查看有 SGID 权限,并且所属组有执行权限的目录的案例
2.3 特殊权限 SBIT
2.3.1 SBIT 介绍
2.3.2 SBIT 权限的添加的案例
2.3.2.1 添加 SBIT 权限的案例
2.3.2.2 查看 SBIT 权限的添加情况的案例
2.3.2.2.1 查看有 SBIT 权限,但是所属主没有执行权限的目录的案例
2.3.2.2.2 查看有 SBIT 权限,并且所属主有执行权限的目录的案例

具体的内容:

内容一:普通权限的管理
1.1 普通权限的介绍
1.1.1 对于文件而言

1) r 代表读权限
2) w 代表写权限
3) x 代表执行权限

1.1.2 对于目录而言

1) r 代表可以看到目录
2) w 代表可以对目录进行增、删、改、查和在里面创建文件和目录
3) x 代表可以进入目录

1.1.3 用数字代替权限的方法

1) 0 代表 —
2) 1 代表 –x
3) 2 代表 -w-
4) 3 代表 -wx
5) 4 代表 r–
6) 5 代表 r-x
7) 6 代表 rw-
8) 7 代表 rwx

1.2 管理权限案例
1.2.1 给一个文件或目录添加权限的案例
1.2.1.1 案例一

# chmod u+x test.txt

(补充:这里以给 test.txt 文件的所属主添加执行权限为例)

1.2.1.2 案例二

# chmod u+r,g+w test.txt

(补充:这里以给 test.txt 文件的所属主添加执行权限,给文件的所属组添加写权限)

1.2.1.3 案例三

# chmod +x test.txt

(补充:这里以给 test.txt 文件的所属主、所属组和其他用户添加执行权限)

1.2.1.4 案例四

# chmod a+x test.txt

(补充:这里以给 test.txt 文件的所属主、所属组和其他用户添加执行权限)

1.2.2 给一个文件或目录撤销权限的案例
1.2.2.1 案例一

# chmod u-x test.txt

(补充:这里以给 test.txt 文件的所属主撤销执行权限)

1.2.2.2 案例二

# chmod u-r,g-w test.txt

(补充:这里以给 test.txt 文件的所属主撤销执行权限,给文件的所属组撤销写权限)

1.2.2.3 案例三

# chmod -x test.txt

(补充:这里以给 test.txt 文件的所属主、所属组和其他用户撤销执行权限)

1.2.2.4 案例四

# chmod a-x test.txt

(补充:这里以给 test.txt 文件的所属主、所属组和其他用户撤销执行权限)

1.2.3 设定某一个文件或目录的权限的案例
1.2.3.1 案例一

# chmod u=rwx test.txt 

(补充:这里以设置 test.txt 文件的所属主拥有读、写和执行的权限)

1.2.3.2 案例二

# chmod u=rw- test.txt

(补充:这里以设置 test.txt 文件的所属主拥有读和写的权限,但是没有执行的权限)

1.2.3.3 案例三

# chmod u=--- test.txt

(补充:这里以设置 test.txt 文件的所属主没有任何权限)

1.2.3.4 案例四

# chmod u=

(补充:这里以设置 test.txt 文件的所属主没有任何权限)

1.2.3.5 案例五

# chmod u=rw,g=, test.txt

(补充:这里以设置 test.txt 文件的所属主拥有读和写的权限,但是没有执行的权限。设置文件的所属组没有任何权限)

1.2.3.6 案例六

# chmod u=rw,g=---,0= test.txt

(补充:这里以设置 test.txt 文件的所属主拥有读和写的权限,但是没有执行的权限。设置文件的所属组没有任何权限。设置文件的其他用户没有任何权限)

1.2.3.7 案例七

# chmod 755 test.txt

(补充:这里以设置 test.txt 文件的所属主拥有读、写和执行的权限。设置文件的所属组有读和执行的权限。设置文件的其他用户有读和执行的权限)

内容二:特殊权限的管理
2.1 特殊权限 SUID
2.1.1 SUID 介绍

1) SUID:全名 Set UID
2) SUID 的作用:让没有此文件执行权限的用户,可以执行这个文件
3) SUID 的权限数字 4000

2.1.2 SUID 权限的添加的案例
2.1.2.1 添加 SUID 权限的案例

# chmod u+s test.txt

或者:

# chmod 4644 test.txt

(补充:这里以对 test.txt 文件进行操作为例)

2.1.2.2 查看 SUID 权限的添加情况的案例
2.1.2.2.1 查看有 SUID 权限,但是所属主没有执行权限的文件的案例

# ls -l test.txt 
-rwSr--r-- 1 root root 0 12月  8 05:27 test.txt

(补充:这里以对 test.txt 文件进行操作为例)

2.1.2.2.2 查看有 SUID 权限,并且所属主有执行权限的文件的案例

# ls -l test.txt 
-rwsr--r-- 1 root root 0 12月  8 05:27 test.txt

(补充:这里以对 test.txt 文件进行操作为例)

2.2 特殊权限 SGID
2.2.1 SGID 介绍

1) SGID:全名 Set GID
2) SGID 的作用:在此目录下创建的文件,将都和此目录的所属组一样
3) SGID 的权限数字 2000

2.2.2 SGID 权限的添加的案例
2.2.2.1 添加 SGID 权限的案例

# chmod g+s test

或者:

# chmod 2644 test

(补充:这里以对 test.txt 文件进行操作为例)

2.2.2.2 查看 SGID 权限的添加情况的案例
2.2.2.2.1 查看有 SGID 权限,但是所属组没有执行权限的目录的案例

# ls -l test
-rw-r-Sr-- 1 root root 0 12月  8 05:27 test

(补充:这里以对 test.txt 文件进行操作为例)

2.2.2.2.2 查看有 SGID 权限,并且所属组有执行权限的目录的案例

# ls -l test
-rw-r-sr-- 1 root root 0 12月  8 05:27 test

(补充:这里以对 test.txt 文件进行操作为例)

2.3 特殊权限 SBIT
2.3.1 SBIT 介绍

1) SBIT:全名 Sticky Bit
2) SBIT 的作用:在此目录下创建的文件,只有创建此文件的用户和 root 用户可以删除
3) SBIT 的权限数字 1000

2.3.2 SBIT 权限的添加的案例
2.3.2.1 添加 SBIT 权限的案例

# chmod o+t test

或者:

# chmod 1644 test

(补充:这里以对 test.txt 文件进行操作为例)

2.3.2.2 查看 SBIT 权限的添加情况的案例
2.3.2.2.1 查看有 SBIT 权限,但是所属主没有执行权限的目录的案例

# ls -l test
-rw-r--r-T 1 root root 0 12月  8 05:27 test

(补充:这里以对 test.txt 文件进行操作为例)

2.3.2.2.2 查看有 SBIT 权限,并且所属主有执行权限的目录的案例

# ls -l test
-rw-r--r-t 1 root root 0 12月  8 05:27 test

(补充:这里以对 test.txt 文件进行操作为例)