------内核配置--------
---swap---
控制swap使用的系统参数:
swappiness,Swappiness为60(100%-60%=40%)表示物理内存使用到40%的时候使用swap空间
默认swappiness:
cat /proc/sys/vm/swappiness
临时调整:
sysctl vm.swappiness=10
永久调整:
vim /etc/sysctl.conf
vm.swappiness=10
sysctl -p
关闭swap
临时生效:
sysctl -w vm.swappiness=0
永久生效:
echo "vm.swappiness = 0">> /etc/sysctl.conf (尽量不使用交换分区,注意不是禁用)
刷新SWAP
swapoff -a && swapon -a
sysctl -p (执行这个使其生效,不用重启)
---共享内存:
shmall/shmmax
kernel.shmall(共享内存页总数)
kernel.shmmax (共享内存段的最大值)
一般来讲,这两个参数的值应该是物理内存的一半,可以通过操作系统的值_PHYS_PAGES和PAGE_SIZE计算得出。
kernel.shmall = ( _PHYS_PAGES / 2)
kernel.shmmax = ( _PHYS_PAGES / 2) * PAGE_SIZE
也可以通过以下两个命令得出这两个参数的值:
$ echo $(expr $(getconf _PHYS_PAGES) / 2)
$ echo $(expr $(getconf _PHYS_PAGES) / 2 \* $(getconf PAGE_SIZE))
如果得出的kernel.shmmax值小于系统的默认值,则引用系统默认值即可
cat /proc/sys/kernel/shmall
cat /proc/sys/kernel/shmmax
信号量:
信号量充当共享内存的标志。信号量可以设置为开或关。当Oracle进程访问SGA(在共享内存中)时,它将检查该内存部分的信号量。如果它发现为该内存部分设置了信号量,则进程将休眠并稍后再次检查。如果没有为内存的那部分设置信号量,它将设置一个并继续操作。当它完成时,它将把信号灯切换回关闭状态。
查看:
[root@zeng ~]# cat /proc/sys/kernel/sem
250 32000 100 128
上面输出的4个值分别对应内核信号量参数:
semmsl 250 每个信号量集中的最大信号量数。对于processes参数设置较大的系统建议设置为processes+10
semmns 32000 整个系统中的最大信号量数。SEMMSL * SEMMNI
semopm 100 每一个semop系统调用操作的最大信号量数。至少100;或者等于SEMMSL
semmni 128 信号量集最大数。
修改:
echo "kernel.sem =250 32000 100 128" >> /etc/sysctl.conf
sysctl -p
---内存分配
(1)vm.overcommit_memory
执行grep -i commit /proc/meminfo
看到CommitLimit和Committed_As参数。
CommitLimit是一个内存分配上限,CommitLimit = 物理内存 * overcommit_ratio(默认50,即50%) + swap大小
Committed_As是已经分配的内存大小。
--------
vm.overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2
0: (默认)表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。0 即是启发式的overcommitting handle,会尽量减少swap的使用,root可以分配比一般用户略多的内存
1: 表示内核允许分配所有的物理内存,而不管当前的内存状态如何,允许超过CommitLimit,直至内存用完为止。在数据库服务器上不建议设置为1,从而尽量避免使用swap.
2: 表示不允许超过CommitLimit值
(2)vm.overcommit_ratio
默认值为:50 (即50%)
这个参数值只有在vm.overcommit_memory=2的情况下,这个参数才会生效。
---网络:
net.ipv4.tcp_tw_recycle & net.ipv4.tcp_timestamps
nat网络下,一定不能配置
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_recycle = 1
TCP协议中有一种机制,缓存了每个主机(即ip)过来的连接最新的timestamp值。这个缓存的值可以用于PAWS(Protect Against Wrapped Sequence numbers,是一个简单的防止重复报文的机制)中,来丢弃当前连接中可能的旧的重复报文。而Linux实现这个机制的方法就是同时启用net.ipv4.tcp_timestamps和net.ipv4.tcp_tw_recycle 这两个选项。
这种机制在 客户端-服务器 一对一的时候,没有任何问题,但是当服务器在负载均衡器后面时,由于负载均衡器不会修改包内部的timestamp值,而互联网上的机器又不可能保持时间的一致性,再加上负载均衡是会重复多次使用同一个tcp端口向内部服务器发起连接的,就会导致什么情况呢:
负载均衡通过某个端口向内部的某台服务器发起连接,源地址为负载均衡的内部地址——同一假如恰巧先后两次连接源端口相同,这台服务器先后收到两个包,第一个包的timestamp被服务器保存着,第二个包又来了,一对比,发现第二个包的timestamp比第一个还老——客户端时间不一致。服务器基于PAWS,判断第二个包是重复报文,丢弃之。
反映出来的情况就是在服务器上抓包,发现有SYN包,但服务器就是不回ACK包,因为SYN包已经被丢弃了。为了验证这一结果,可以执行netstat -s | grep timestamp 命令,看输出里面passive connections rejected by timestamp 一项的数字变化。
解决办法:
tcp_tw_recycle=0 或(和)net.ipv4.tcp_timestamps=0
核心转发:
临时:
echo "1" > /proc/sys/net/ipv4/ip_forward
永久:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
0为关闭
---cpu:
睿频:/sys/devices/system/cpu/intel_pstate/no_turbo #0开启,1关闭
------ipcs/ipcrm--------------
--ipcs
1. 命令格式
ipcs [resource-option] [output-format]
ipcs [resource-option] -i id
2. 命令功能
提供IPC设备的信息
3. 使用方法
resource选项:
ipcs -m 查看系统共享内存信息
ipcs -q 查看系统消息队列信息
ipcs -s 查看系统信号量信息
ipcs [-a] 系统默认输出信息,显示系统内所有的IPC信息
输出格式控制:
ipcs -c 查看IPC的创建者和所有者
ipcs -l 查看IPC资源的限制信息
ipcs -p 查看IPC资源的创建者和使用的进程ID
ipcs -t 查看最新调用IPC资源的详细时间
ipcs -u 查看IPC资源状态汇总信息
额外格式控制:
ipcs -l --human 以人类可以阅读的方式显示size
--ipcrm
1. 命令功能
通过指定ID删除删除IPC资源,同时将与IPC对象关联的数据一并删除,只有超级用户或IPC资源创建者能够删除
2. 使用方法
ipcrm -M shmkey #移除用shmkey创建的共享内存段
ipcrm -m shmid #移除用shmid标识的共享内存段
ipcrm -S semkey #移除用semkey创建的信号量
ipcrm -s semid #移除用semid标识的信号量
ipcrm -Q msgkey #移除用msgkey创建的消息队列
ipcrm -q msgid #移除用msgid标识的消息队列
-----NetworkManager和network-----
network :读取的设定档路径为「/etc/sysconfig/network-scripts/*」下的设定档。
NetworkManager :读取的设定档路径为「/etc/NetworkManager/*」下的设定档。
-----文件权限--
umask :
假设,我们让用户设置754权限则: 777-754= 023 所以,umask =023
而创建文件的时候,666-023 = 643。但是文件的默认权限是不具有x权限的,所以643会自动将其变成642
文件权限属性后面的点的含义:
开启了SELinux功能的Linux系统才会有这个点。
那个点表示文件带有“SELinux的安全上下文”。
CentOS7默认是开启SELinux的,所以会有这个点,
如果关闭SELinux,然后再创建文件,新创建的文件就不会再有这个点了,
但是以前创建的文件本来有这个点的还会显示这个点(虽然SELinux不起作用了)
文件夹可以进入,不能ls:
缺少r权限
---系统模块--
动态加载模块:
modprobe 模块名
例:
modprobe ipmi_msghandler;modprobe ipmi_si;modprobe ipmi_devintf
IPMI(Intelligent Platform Management Interface,智能平台管理接口),许多服务器的远程控制卡,或KVM over IP设备,都使用了这个接口
动态卸载模块:
modprobe -r 模块名
查看模块:
lsmod|less
---ssh----------
/etc/ssh/sshd_config
GSSAPIAuthentication yes --->no 81行左右 是否允许使用基于 GSSAPI 的用户认证
UseDNS yes -->UseDNS no 122行左右
ClientAliveInterval=60 超时
设置超时:~/.bash_profile
export TMOUT=600
unset TMOUT 取消设置
问题:
ssh-copy-id已设置,但无法免密登录
一般和用户的家目录或.ssh目录的权限有关系
仅允许sftp:
Match User xxxsftp_user
ChrootDirectory /xxx
ForceCommand internal-sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
-----关闭mail提示-------------
1 不关闭mail服务
unset MAILCHECK
2 关闭mail服务
systemctl status postfix
systemctl stop postfix && systemctl disable postfix
-----history------------
定义history
export HISTSIZE=8192
export HISTFILESIZE=8192
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
[[ -d "/tmp/.log/${LOGNAME}" ]] || mkdir -p "/tmp/.log/${LOGNAME}"
export HISTFILE="/tmp/.dbasky/${LOGNAME}/${USER_IP}"
export HISTTIMEFORMAT="%F %T " #定义history显示时间
---------ulimit------------
修改系统级配置:
查看:cat /proc/sys/fs/file-max
临时修改:echo 655361 >/proc/sys/fs/file-max
永久修改:vim /etc/sysctl.conf
fs.file-max = 655361
立即生效 sysctl -p
修改登录用户限制:
ulimit命令
-a 显示目前资源限制的设定。
-c <core文件上限> 设定core文件的最大值,单位为区块。
-d <数据节区大小> 程序数据节区的最大值,单位为KB。
-f <文件大小> shell所能建立的最大文件,单位为区块。
-H 设定资源的硬性限制,也就是管理员所设下的限制。
-m <内存大小> 指定可使用内存的上限,单位为KB。
-n <文件数目> 指定同一时间最多可开启的文件数。
-p <缓冲区大小> 指定管道缓冲区的大小,单位512字节。
-s <堆叠大小> 指定堆叠的上限,单位为KB。
-S 设定资源的弹性限制。
-t <CPU时间> 指定CPU使用时间的上限,单位为秒。
-u <程序数目> 用户最多可开启的程序数目。
-v <虚拟内存大小> 指定可使用的虚拟内存上限,单位为KB。
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 2058698
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 2058698
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
例:ulimit -SHn 65535 软硬限制文件数
永久修改---/etc/security/limits.conf #重新登录后生效
例:
vi /etc/security/limits.conf:
* soft core unlimited
* hard core unlimited
* soft fsize unlimited
* hard fsize unlimited
* soft data unlimited
* hard data unlimited
* soft nproc 65535
* hard nproc 63535
* soft stack unlimited
* hard stack unlimited
* soft nofile 409600
* hard nofile 409600
* 代表针对所有用户
noproc 是代表最大进程数
nofile 是代表最大文件打开数
core - 限制内核文件的大小
date - 最大数据大小
fsize - 最大文件大小
memlock - 最大锁定内存地址空间
rss - 最大持久设置大小
stack - 最大栈大小
cpu - 以分钟为单位的最多 CPU 时间
as - 地址空间限制
centos7修改:
在Centos7系统中,使用Systemd替代了之前的SysV。/etc/security/limits.conf文件的配置作用域缩小了。/etc/security/limits.conf的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。因此登录用户的限制,通过/etc/security/limits.conf与/etc/security/limits.d下的文件设置即可。
对于systemd service的资源设置,则需修改全局配置,全局配置文件放在/etc/systemd/system.conf和/etc/systemd/user.conf,同时也会加载两个对应目录中的所有.conf文件/etc/systemd/system.conf.d/*.conf和/etc/systemd/user.conf.d/*.conf。system.conf是系统实例使用的,user.conf是用户实例使用的。
vim /etc/systemd/system.conf
DefaultLimitNOFILE=100000
DefaultLimitNPROC=65535
DefaultLimitMEMLOCK=infinity
注意:配置完成后,需要执行:systemctl daemon-reexec
也可以在/usr/lib/systemd/system/xxx.service中增加(需要systemctl daemon-reload && systemctl xxx restart):
[Service]
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=100000
LimitMEMLOCK=infinity
------------Linux 服务器buff/cache清理------------
使用Top命令查看内存及缓冲区使用情况
当磁盘频繁产生IO时会导致buff/cache占用很高的内存,导致可用物理内存很少,但是当真正需要内存时,缓冲区内存会自动释放.如果需要清理可以用:
cache清理 sync;echo 3 > /proc/sys/vm/drop_caches
前面加sync 是为了防止内容丢失
free pagecache:echo 1 >/proc/sys/vm/drop_caches
To free dentries and inodes:echo 2 >/proc/sys/vm/drop_caches
二者都清理就是 sync;echo 3 > /proc/sys/vm/drop_caches
------------abrtd------------
abrtd:
automatically bug report daemon. 自动的报告bug守护进程
abrt-hook-ccpp 钩子函数
配置目录:/etc/abrt/*.conf
注意:ulimit -c unlimited
cpu占用过高:
abrt-action-save-package-data.conf:
ProcessUnpackaged = yes
systemctl restart abrtd
coredump存储目录:
/proc/sys/kernel/core_pattern定义了下coredump路径的pattern
gdp调试coredump:
gdb sbin/nginx cores/core.nginx.xxxx
------------lib and include------------
添加lib:
方法一:
在配置文件/etc/ld.so.conf里添加动态库所在的路径,编辑完后在命令行输入ldconfig。
方法二:
指定环境变量 export LD_LIBRARY_PATH=[动态库所在的路径]。
方法三:
把动态库拷贝到/usr/lib目录下。
方法四:
把动态库拷贝到/lib目录下。
*优先级从高到低依次是:方法二,方法一,方法四,方法三
添加头文件:
直接将文件复制到/usr/include/XXX,或建一个软连接
-------alternatives---------------
alternatives版本管理软件:
alternatives --install <link> <name> <path> <priority>
例: alternatives --install /usr/bin/myjava myjava /usr/java/jdk1.6.0_21/bin/java 300
alternatives --config <name>
例: alternatives --config myjava
-----CentOS7自定义脚本服务-------
1 路径:/usr/lib/systemd/system/*.service(systemctl脚本目录 /usr/lib/systemd/)
例1:
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service
[Service]
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
例2:
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service
[Service]
Type=simple
ExecStart=/usr/sbin/zabbix_server -f
User=zabbixsrv
[Install]
WantedBy=multi-user.target
2 配置说明:
1、[unit]区块:设置管理启动顺序与依赖关系
Description=服务描述 给出当前服务的简单描述
Documentation=路径或url 给出文档位置
After=服务.target或服务.service
定义在某些服务之后启动。例如sshd服务启动必须在network.target sshd-keygen.service服务开启之后才能启动,可以使用如下命令查看sshd服务的配置:cat /usr/lib/systemd/system/sshd.service
Before=服务.target 定义在某些服务之前启动
Wants=服务.service 弱依赖,表示等号填写服务启动或失败,不影响此配置文件服务的启动
Requires=服务.service 强依赖,表示等号填写服务启动或失败,那么此配置文件的服务将启动失败
2、[Service]区块:设置启动行为
•启动命令
ExecStart=命令 定义启动进程时执行的命令
ExecReload=命令 重启服务时执行的命令
ExecStop=命令 停止服务时执行的命令
ExecStartPre=命令 启动服务之前执行的命令
ExecStartPost=命令 启动服务之后执行的命令
ExecStopPost=命令 停止服务之后执行的命令
***所有的启动设置之前,都可以加上一个连词号(-),表示"抑制错误",即发生错误的时候,不影响其他命令的执行。例如:ExecStop=-/bin/sh /server/scripts/xx.sh
•启动类型 Type字段定义启动类型。它可以设置的值如下:
simple(默认值) ExecStart字段启动的进程为主进程 #前台运行的命令可以使用此类型
forking ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程 #后台运行
oneshot 类似于simple,但只执行一次,Systemd 会等它执行完,才启动其他服务
dbus 类似于simple,但会等待 D-Bus 信号后启动
notify 类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务
idl 类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合
•重启行为
KillMode字段,定义Systemd如何停止服务,它可以设置的值如下
control-group(默认值) 当前控制组里面的所有子进程,都会被杀掉
process 只杀主进程
mixed 主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号
none 没有进程会被杀掉,只是执行服务的 stop 命令
Restart字段,定义了服务退出后,Systemd的重启方式,它可以设置的值如下
no(默认值) 退出后不会重启
on-success 只有正常退出时(退出状态码为0),才会重启
on-failure 非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启
on-abnormal 只有被信号终止和超时,才会重启
on-abort 只有在收到没有捕捉到的信号终止时,才会重启
on-watchdog 超时退出,才会重启
always 不管是什么退出原因,总是重启
•service区块的其他一些字段
EnvironmentFile=文件路径 指定当前服务的环境参数文件
RestartSec=数值 表示Systemd重启服务之前,需要等待的秒数
PIDFile=PID文件路径 PID进程文件
KillSignal=信号量 停止信号量,值一般为SIGQUIT
TimeoutStopSec=数值 停止超时时间
PrivateTmp=布尔值 独立空间true或false,即文件系统名字空间的配置将被该命令行启动的进程忽略
limit配置:
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=100000
LimitMEMLOCK=infinity
3、[Install]区块:定义如何安装这个配置文件,即怎样做到开机启动
这个设置非常重要,如果设置开机自启动,在/etc/systemd/system目录下面的multi-user.target.wants子目录之中就会创建一个服务的软链接
WantedBy字段,表示该服务所在的 Targe,target的含义是服务组,表示一组服务,它可以设置的值如下
multi-user.target 表示多用户命令行状态
graphical.target 表示图形用户状态,它依赖于multi-user.target
注:
1,static服务,没有Install项的service都是static的, 所以你不可能enable/disable他了, 所以他的状态永远是static的了, 也就是说他的运行只能通过其他的服务单元触发
2,重载服务使用:systemctl daemon-reload
--开机自启服务:
查看此目录下的软链接
ll /etc/systemd/system/multi-user.target.wants/
-------临时目录配置----
/usr/lib/tmpfiles.d/tmp.conf
说明:
systemd的子配置,可以通过man 5 tmpfiles.d 查看帮助
# This file is part of systemd.
....
# See tmpfiles.d(5) for details
v代表要清理的部分,10d代表10天清理一次
# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d
x代表不需要清理的部分,可以使用通配符
# Exclude namespace mountpoints created with PrivateTmp=yes
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp
-------patch----
语 法:
patch [-bceEflnNRstTuvZ][-B <备份字首字符串>][-d <工作目录>][-D <标示符号>][-F <监别列数>][-g <控制数值>][-i <修补文件>][-o <输出文件>][-p <剥离层级>][-r <拒绝文件>][-V <备份方式>][-Y <备份字首字符串>][-z <备份字尾字符串>][--backup-if -mismatch][--binary][--help][--nobackup-if-mismatch][--verbose][原始文件 <修补文件>] 或 path [-p <剥离层级>] < [修补文件]
-p<剥离层级>或--strip=<剥离层级> 设置欲剥离几层路径名称。
patch -p0 (“p”指的是路径,后面的数字表示去掉路径的第几部分。0,表示不去掉,为全路径)
patch -p1 (“p”后面的数字1,表示去掉前第一个路径)fetch http://people.freebsd.org/~delphij/misc/patch-bge-releng62
patch -p < patch-tcp_auto_buf-20061212-RELENG_6.diff
-----/etc/host.conf------
作用:指定如何解析主机域名。可设置网络安全。
默认情况,/etc/host.conf 文件有如下内容——
order hosts,bind
multi on
参数说明:
1. order 是解析顺序的参数,order hosts,bind,nis //说明先查询解析/etc/hosts文件,然后DNS,再是NIS
2. multi on //表示是否运行/etc/hosts文件允许主机指定多个多个地址 ,on表示运行
3. nospoof on //是否允许服务器对ip地址进行其欺骗,这里的on表示不允许,CentOS7.6后不可设置此参数
4. rccorder //如果被设置为on,那么所有查询将被重新排序。
-----------bash-4.2#解决方法-----------
cp /etc/skel/.bashrc ~/
cp /etc/skel/.bash_profile ~/
--更新grub----
grub2-mkconfig -o /boot/grub2/grub.cfg (Ubuntu使用update-grub)
----------setcap---------------
格式:setcap [-q] [-v] (capabilities|-|-r) filename [ ... capabilitiesN fileN ]
例:setcap cap_net_raw,cap_net_admin+eip /usr/bin/dumpcap
e/i/p:
分别对应cap_effective, cap_inheritable, cap_permitted
cap_effective表示进程当前可用的能力集,可以看做是cap_permitted的一个子集;
cap_inheitable表示进程可以传递给其子进程的能力集
cap_permitted表示进程所拥有的最大能力集;
capabilities:
CAP_CHOWN:修改文件属主的权限
CAP_DAC_OVERRIDE:忽略文件的DAC访问限制
CAP_DAC_READ_SEARCH:忽略文件读及目录搜索的DAC访问限制
CAP_FOWNER:忽略文件属主ID必须和进程用户ID相匹配的限制
CAP_FSETID:允许设置文件的setuid位
CAP_KILL:允许对不属于自己的进程发送信号
CAP_SETGID:允许改变进程的组ID
CAP_SETUID:允许改变进程的用户ID
CAP_SETPCAP:允许向其他进程转移能力以及删除其他进程的能力
CAP_LINUX_IMMUTABLE:允许修改文件的IMMUTABLE和APPEND属性标志
CAP_NET_BIND_SERVICE:允许绑定到小于1024的端口
CAP_NET_BROADCAST:允许网络广播和多播访问
CAP_NET_ADMIN:允许执行网络管理任务
CAP_NET_RAW:允许使用原始套接字
CAP_IPC_LOCK:允许锁定共享内存片段
CAP_IPC_OWNER:忽略IPC所有权检查
CAP_SYS_MODULE:允许插入和删除内核模块
CAP_SYS_RAWIO:允许直接访问/devport,/dev/mem,/dev/kmem及原始块设备
CAP_SYS_CHROOT:允许使用chroot()系统调用
CAP_SYS_PTRACE:允许跟踪任何进程
CAP_SYS_PACCT:允许执行进程的BSD式审计
CAP_SYS_ADMIN:允许执行系统管理任务,如加载或卸载文件系统、设置磁盘配额等
CAP_SYS_BOOT:允许重新启动系统
CAP_SYS_NICE:允许提升优先级及设置其他进程的优先级
CAP_SYS_RESOURCE:忽略资源限制
CAP_SYS_TIME:允许改变系统时钟
CAP_SYS_TTY_CONFIG:允许配置TTY设备
CAP_MKNOD:允许使用mknod()系统调用
CAP_LEASE:允许修改文件锁的FL_LEASE标志
--普通用户使用1024以下端口--
设置:
]setcap cap_net_bind_service=+eip /usr/sbin/nginx
查看:
]getcap /usr/sbin/nginx
/usr/sbin/nginx = cap_net_bind_service+eip
删除:
]setcap -r /usr/sbin/nginx