Linux主机测评

2023-11-08

安全计算环境

一.身份鉴别

a)应对登录的用户进行身份标识和身份鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换(此项部分符合)

在root权限下查看有关用户的配置文件

1)通过etc/password检查身份标识,看是否有没有uid重复的用户

2)通过etc/shadow来识别用户是否有密码

/etc/shadow配置文件参数详解

用户名:密码:密码最近改动的天数,密码不可改动的天数:密码需要重新变更的天数:密码需要变更前提示时间:密码过期宽限时间:账号失效时间:保留

3)通过/etc/login.defs来识别身份鉴别信息定期更换

在root权限下查看/etc/login.defs文件中相关配置参数,/etc/shadow的权限比/etc/login.defs优先级高

# Please note that the parameters in this configuration file control the
# behavior of the tools from the shadow-utils component. None of these
# tools uses the PAM mechanism, and the utilities that use PAM (such as the
# passwd command) should therefore be configured elsewhere. Refer to
# /etc/pam.d/system-auth for more information.
#
​
# *REQUIRED*
#   Directory where mailboxes reside, _or_ name of file, relative to the
#   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
#   QMAIL_DIR is for Qmail
#
#QMAIL_DIR      Maildir
MAIL_DIR        /var/spool/mail   创建用户时,要在目录/vat/spool/mail中创建一个用户mail文件
#MAIL_FILE      .mail
​
# Password aging controls:
#
#       PASS_MAX_DAYS   Maximum number of days a password may be used.
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_MIN_LEN    Minimum acceptable password length.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   99999      密码最大有效期,通常要求是90天
PASS_MIN_DAYS   0          俩次密码修改最小时间间隔
PASS_MIN_LEN    5          密码最小位数,对root无效,通常要求是7位
PASS_WARN_AGE   7          密码过期前多少天开始提示,通常要求是前7天
​
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN                  1000    最小UID
UID_MAX                 60000    最大UID
# System accounts
SYS_UID_MIN               201    
SYS_UID_MAX               999
​
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN                  1000    组id最少范围
GID_MAX                 60000    组id最大范围
# System accounts
SYS_GID_MIN               201
SYS_GID_MAX               999
​
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD    /usr/sbin/userdel_local  删除用户要执行的脚本
​
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME     yes   创建用户时创建用户目录
​
# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK           077  创建用户的初始值
​
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes  使userdel能够在不存在成员的情况下删除用户组
​
# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512   密码加密模式
​

4)通过查看/etc/pam.d/system-auth来确认密码复杂性

查看是否符合密码健壮性要求

查看password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
#密码健壮性策略 
retry=3:重复修改次数,如果未达到密码强度要求,可以重新设置,避免重头再来
difok:=3:允许新旧密码相同的个数 
minlen=7:最小密码长度 
ucredir=-1:至少有一个大写字母
lcredit=-3:至少有一个大写字母 
dcredit=-3:至少有三个数字

加固

1)修改创建新用户的登录密码生效期限(/etc/login.def)

2)修改登录控制文件修改密码时候的策略(/etc/pam.d/system.auth)

b) 应具有登录失败处理功能,应配置并启用结束会话,限制非法登录次数和当登录连接时自动退出

1) 查看密码设置及登陆控制的文件 /etc/pam.d/system-auth

查看是否符合具有登录失败处理功能

在auth模块的第一行插入auth required pam-tally2.so onerr=fail deny=3 unlock_time=40 event_deny_root root_unlock_time=40
onerr表示登录失败
deny表示连续登录失败次数
unlock_time=40表示锁定40s 
event_deny_root:表示限制root用户
root_unlock_time=40:限制root用户登录时间40s

查看/etc/profile的TMOUT的参数查看超时锁定参数

cat /etc/profile | grep TMOUT -n
在/etc/profile中最后一行添加export TMOUT=300

auth 组件:认证接口,要求并验证密码 account组件:检测是否允许访问。检测账户是否过期或则在末端时间内能否登陆。 password组件:设置并验证密码 session组件:配置和管理用户sesison

参数状态

required:该模块必须success才能进行继续。即使失败用户也不会立刻获知,直到所有相关模块完成。 requisite:该模块必须success才能使认证继续进行。 suffifient:如果失败则忽略。 optinal:忽略结果,不管是否失败。

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so    
#登录后的环境变量
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_unix.so nullok try_first_pass
#验证用户密码的有效性。如果使用nullok参数,用户不输入密码就可以获得系统提供的服务。同时,也允许用户密码为
#空时更改用户密码。
#try_first_pass尝试在提示用户输入密码前,使用前面一个堆叠的auth模块提供的密码认证用户。sufficient表示#如果该模块执行成功则跳过其他所有模块返回结果。
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
#允许uid大于1000的用户在通过密码验证的情况下登录。
auth        required      pam_deny.so
#对所有不满足上述任意条件的登录请求直接拒绝
​
account     required      pam_unix.so
#主要执行建立用户帐号和密码状态的任务,然后执行提示用户修改密码,用户采用新密码后才提供服务之类的任务。
account     sufficient    pam_localuser.so
#要求将用户列于 /etc/passwd 中
account     sufficient    pam_succeed_if.so uid < 1000 quiet
#对用户的登录条件做一些限制,表示允许uid大于1000的用户在通过密码验证的情况下登录
account     required      pam_permit.so
#required表示一个错误则全返回错误,只不过最后返回错误
​
password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
#密码健壮性策略 retry=3:重复修改次数,如果未达到密码强度要求,可以重新设置,避免重头再来 deny=3:连续登录失败次数 difok:=3:允许新旧密码相同的个数 minlen=7:最小密码长度 ucredir=-1:至少有一个大写字母 lcredit=-3:至少有一个大写字母 dcredit=-3:至少有三个数字
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
#让用户更改密码的任务
password    required      pam_deny.so
​
session     optional      pam_keyinit.so revoke
#表示当用户登录的时候为其建立相应的密钥环,并在用户登出的时候予以撤销。
session     required      pam_limits.so
#限制用户登录时的会话连接资源,相关pam_limit.so配置文件是/etc/security/limits.conf,默认情况下对每个登录用户都没有限制。
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
#success=1时执行本行。default=ignore用来设置上面的返回值是无法达的行为时,那么这个模块的返回值将被忽略,不会被应用程序知道。对用户的登录条件做一些限制
session     required      pam_unix.so
#记录用户名和服务名到日志文件的工作,只不过最后返回错误

 

c)当对服务器进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听

查找相应服务比如RFB、RDP、Telnet和SSH这些

查看系统服务是否使用了ssh服务或者telnet服务

1)ps -aux | grep 【RFB|RDP|Telnet|SSH】

ps -aux参数

USER 用户名
PID 进程ID(Process ID)
%CPU 进程的cpu占用率
%MEM 进程的内存占用率
VSZ 进程所使用的虚存的大小(Virtual Size)
RSS 进程使用的驻留集大小或者是实际内存的大小,Kbytes字节
TTY 与进程关联的终端(tty)
STAT 进程的状态
TIME 进程使用的总cpu时间
COMMAND 正在执行的命令行命令名称和参数

2)systemctl status |grep 【RFB|RDP|Telnet|SSH】

d)应采用口令,密码技术,生物技术等俩种或俩种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现

1)通过访谈去确认,看是否同时采用了密码和令牌技术

二.访问控制

a)应对登录的用户分配账户和权限

1)查看/etc/passwd文件权限,看普通用户权限是否和root用户一样,由下图可以看出root的用户的权限是读和写,而普通用户的权限是读,其他用户权限也是读

b)应重命名或删除默认账号,修改默认账户的默认口令

1)查看/etc/shadow文件发现存在默认账户root,root已经更换了默认口令,部分符合

2)查看root用户是否能远程登录,通过查看/etc/ssh/sshd_config的permitrootlogin来判断,应该让其不能直接通过root用户远程登录

加固

1)修改/etc/ssh/sshd_config的permitrootlogin的参数拒绝以root用户身份远程登录(一般情况下为了方便管理员是不会设置的)

c)应及时删除或停用多余,过期的账户,避免共享账户的存在

1)由b)所查shadow文件知道,存在过期的账户,!!表示已过期,*表示账户被锁定,!表示被禁用

2)要通过访谈管理员是否设置安全管理员,系统管理员,审计管理员,是否是通过一个账户来登录的

整改方案

usermod -L 用户名:将用户锁定
usermod -U 用户名,将用户解锁

d)应授予管理用户所需的最少权限,实现管理用户权限分离(部分满足)

1)查看root用户权限是否授予了其他用户,通过查看/etc/sudoers来识别

e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则

1)询问是否有专门的安全管理员负责对访问控制权限的工作,是否基于安全管理员的安全策略配置来进行访问控制

答:该系统并没有设置专门的安全管理员,且没有根据安全管理员的安全策略配置来进行访问控制,不符合

f)访问控制的粒度应达到主体为用户级或进程级,客体为文件,数据表级

符合

g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问(不符合)

要明确系统中是否存在敏感信息,比如shadow和passwd文件,在主体用户或进程划分级别并设置敏感标记,在客体文件设置敏感标记,测试是否依据主体客体安全标记控制主体对客体访问的强制访问控制策略

查看selinux,seLinux是linux系统的内核,也是linux安全子系统模块

1)cat /etc/selinux/config

enforcing强制访问模式,作用是违反selinux规则的行为将被阻止,并记录在日志中

​
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled   linux默认是关闭的,应该将系统开启,也就是调到enforcing模式
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

2)ls -Z /etc/passwd

-rw-r--r--. root root system_u:object_r:passwd_file_t:s0 /etc/passwd
system_u表示登录用户的类型,是系统方面的,user_u表示是普通用户的
object_r:为角色定义文件进程和用户的用途,object_r表示文件或目录资源,system_r表示进程
passwd_file_t:指定数据类型
s0:为限制访问的需要,一般最少为三级

三.安全审计

a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计(符合)

以root用户登录系统查看服务进程,如果运行了安全审计服务,查看安全审计的守护进程是否正常

linux系统中有audited审计工具,一般是默认安装的

查看audited状态

auditctl -s

enabled 1     #0代表未开启,1代表开启,可以记录日志,2代表审计规则被锁定不能修改升级规则,当enable状态为1,但守护进程未开启,审计记录会保存在/var/log/messages
failure 1
pid 682
rate_limit 0
backlog_limit 8192
lost 0
backlog 0
loginuid_immutable 0 unlocked

查看auditctl的守护进程

service auditd status

systemctl status auditd

查看日志记录

aureport -i

b)审计记录包括事件的日期和时间,用户,事件类型,事件是否成功及其他审计相关信息(符合)

查看audited日志内容

type=PROCTITLE msg=audit(1569155811.890:194): proctitle=2F7573722F7362696E2F6970367461626C65732D726573746F7265002D77002D6E
type=SERVICE_STOP msg=audit(1569155822.099:195): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=NetworkManager-dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=SERVICE_START msg=audit(1569156003.407:196): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=NetworkManager-dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=SERVICE_STOP msg=audit(1569156014.546:197): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=NetworkManager-dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=NETFILTER_CFG msg=audit(1569156228.344:198): table=filter family=2 entries=82
type=SYSCALL msg=audit(1569156228.344:198): arch=c000003e syscall=54 success=yes exit=0 a0=4 a1=0 a2=40 a3=77a0e0 items=0 ppid=720 pid=1612 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="iptables-restor" exe="/usr/sbin/xtables-multi" subj=system_u:system_r:iptables_t:s0 key=(null)
type=PROCTITLE msg=audit(1569156228.344:198): 

c)应对审计记录进行保护,定期备份,避免受到未预期的删除,修改和覆盖(部分符合)

询问管理员,审计记录的存储,备份,保护措施,是否将操作系统日志定期发送到日志服务器上

日志的保护通过查看日志的权限来判断,另一方面查看日志存储规则

查看日志存储规则

cat /etc/audit/auditd.conf

#
# This file controls the configuration of the audit daemon
#
​
local_events = yes
write_logs = yes
log_file = /var/log/audit/audit.log
log_group = root
log_format = RAW
flush = INCREMENTAL_ASYNC
freq = 50
max_log_file = 8
num_logs = 5
priority_boost = 4
disp_qos = lossy
dispatcher = /sbin/audispd
name_format = NONE
##name = mydomain
max_log_file_action = ROTATE
space_left = 75
space_left_action = SYSLOG
verify_email = yes
action_mail_acct = root
admin_space_left = 50
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND
use_libwrap = yes
##tcp_listen_port = 60
tcp_listen_queue = 5
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535
tcp_client_max_idle = 0
enable_krb5 = no
krb5_principal = auditd
##krb5_key_file = /etc/audit/audit.key
distribute_network = no

d)应对审计进程进行保护,防止未授权的中断(部分符合)

切换成普通用户,看普通用户是否能将auditd进程中断,结果失败

四.入侵防范

a)应遵循最小安装的原则,仅安装需要的组件和应用程序

b)应关闭不需要的系统服务,默认共享和高危端口

查看所有服务

systemctl list -units -all --type=service

查看所有端口

netstat -anp

查看默认共享

rpm -qi samba

c)应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制

主要就是限制远程端口连接的ip,比如ssh服务,一般可以用防火墙或者hosts.allow或者hosts.deny,或者通过ssh配置文件config文件来判断

查看防火墙,发现未开启

加固

1)设置白名单,允许某些ip接入

2)在hosts.denyz中在拒绝所有人访问

d)应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求

不适用

e)应能够发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞

检查甲方自查的漏扫报告,或者是通过第三方检查的漏洞报告有没有高风险漏洞检查补丁安装的情况,补丁更新的机制和流程

rpm -qa grep patch

f)应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警

询问是否安装入侵检测系统,检测系统的配置情况是否具有报警功能

五.恶意代码防范

应采用免受恶意代码攻击技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断

检测是否有IDS,IPS系统,是否有火绒,360,卡巴斯基等软件,但市面上大部分防护软件没有linux版本,卡巴斯基只提供小部分防护功能

六.可信验证

不符合

七.数据完整性

a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据,重要业务数据,重要审计数据,重要配置数据,重要视频数据和重要个人信息

此项不适用,应用系统或数据库软件适用

b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据,重要业务数据,重要审计数据,重要配置数据,重要视频数据和重要个人信息

linux默认是符合的,例如/etc/shadow文件中的密码项,是采用加密后再保存的

八.数据保密性

a)应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据,重要业务数据和重要个人信息等

此项不适用,应用系统或数据库软件适用

b)应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据,重要业务数据和重要个人信息等

linux默认是符合的,例如/etc/shadow文件中的密码项,是采用加密后再保存的

九.数据备份与恢复

a)应提供重要数据的本地数据备份与恢复功能

b)应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地

c)应提供重要数据处理系统的热冗余,保证系统的高可用性

十.剩余信息保护

a)应保证鉴别信息所在存储空间被释放或重新分配前得到完全清除

linux默认是符合的

b)应保存有敏感数据的存储空间被释放或重新分配前得到完全清除

linux默认是符合的

十一.个人信息保护

linux服务器不适用此项

a)应仅采集和保存业务必需的用户个人信息

b)应禁止未授权访问和非法使用用户个人信息

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux主机测评 的相关文章

  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • 使用 MAX_ORDER / 包含 mmzone.h

    根据https www kernel org doc Documentation networking packet mmap txt https www kernel org doc Documentation networking pa
  • 使用 shell 脚本将行附加到 /etc/hosts 文件

    我有一个新的 Ubuntu 12 04 VPS 我正在尝试编写一个安装脚本来完成整个 LAMP 安装 我遇到问题的地方是在 etc hosts文件 我当前的主机文件如下所示 127 0 0 1 localhost Venus The fol
  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 配置tomat的server.xml文件并自动生成mod_jk.conf

    我在用apache 2 2 15 and tomcat6 6 0 24 on CentOS 6 4并希望使用 tomcat 服务器的功能 通过添加以下内容自动生成 mod jk conf 文件
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • Linux/POSIX:为什么 fork() 不分叉*所有*线程

    众所周知 POSIX下创建新进程的默认方式是使用fork 在 Linux 下 这在内部映射到clone 我想知道的是 众所周知 当一个人打电话时fork 子进程是用单个线程创建的 调用的线程fork cf https linux die n
  • 这种文件锁定方法可以接受吗?

    我们有 10 个 Linux 机器 每周必须运行 100 个不同的任务 这些计算机主要在我们晚上在家时执行这些任务 我的一位同事正在开发一个项目 通过使用 Python 自动启动任务来优化运行时间 他的程序将读取任务列表 抓取一个打开的任务
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实
  • 为什么同一个curl命令在windows和linux下输出不同的东西?

    为什么同样的curl o file https www link com 命令输出不同的东西 例如 如果我运行命令curl o source txt https www youtube com playlist list PLIx6Fwnp

随机推荐

  • 老杜:分享Java零基础小白学习方法和Java学习路线 课程笔记

    微信 https mp weixin qq com s muWNq6A6GjpM2rHxKo6FOA 一 学习前的准备 1 一个好的学习方法 合格程序员需要具备两个能力 指法速度 左手ASDF 右手JKL 形成肌肉记忆 编程思想 编程思想的
  • 关掉\禁用win7自动配置ipv4地址的方法 默认网关自动消失的解决办法

    转载自 http blog csdn net zouqin369 article details 6913692 今天去公司设置好IP后 无论怎么样都上不了internet 再次打开本地后发现默认网关自动消失 cmd下输入ipconfig后
  • MySQL学习笔记[学习资料来源于B站黑马测试]

    目录 一 数据库的基本知识 1 数据库概念 2 常见的数据库分类 1 当前主要使用的两种类型数据库 2 关系型数据库 3 非关系型数据库 二 SQL基本知识 1 SQL介绍 2 SQL语言的分类 三 MySQL基本知识 1 MySQL介绍
  • STM32------串口

    文章目录 前言 一 串口概述 1 定义 2 开发板硬件与PC相连 3 帧格式 4 流控 二 库函数 1 很多模块默认出厂的硬件参数配置如下 2 代码初始化思路 三 重定向printf 1 概述 2 关键分析 总结 前言 STM32 串口 提
  • VUE 下拉框选择时给其他文本框赋值

    VUE 下拉框选择时给其他文本框赋值
  • Python线程,以及多线程带来的数据错乱和死锁的解决方法

    摘至本人有道云笔记 Python线程 1 python多线程的创建 在Python中 同样可以实现多线程 有两个标准模块thread和threading 不过我们主要使用更高级的threading模块 threading模块提供的类 Thr
  • 日撸 Java 三百行(51-60天,kNN 与 NB)

    目录 总述 01 10天 基本语法 11 20天 线性数据结构 21 30天 树与二叉树 31 40天 图 41 50天 查找与排序 51 60天 kNN 与 NB 61 70天 决策树与集成学习 71 80天 BP 神经网络 81 90天
  • Box2D C++教程6-定制器(Fixtures)

    Box2D C 教程6 定制器 Fixtures 时间 2012 09 01 17 10 24 CSDN博客 原文 http blog csdn net wen294299195 article details 7932770 Box2D
  • Jetbrains IntelliJ IDEA破解方法

    IntelliJ IDEA 一套智慧型的Java整合开发工具 PHPStorm PHP 集成开发工具 PyCharm 智能Python集成开发工具 RubyMine RubyMine 是一个为Ruby 和Rails开发者准备的IDE Web
  • ActivityManagerService新加listener及触发其回调

    ActivityManagerService新加listener及触发其回调 前言 Android mk ActivityManager java ActivityManagerNative java IActivityManager ja
  • 汇编语言rep movsd

    汇编语言rep movsd rep movsd 一般为 mov esi offset s1 mov edi offset s2 mov ecx 数 cld rep movsd 查找了几个资料 都说得不怎么完整 也许是我知道的太少了 所以觉得
  • 区块链学习1:Merkle树(默克尔树)和Merkle根

    前往老猿Python博文目录 一 简介 默克尔树 Merkle tree MT 又翻译为梅克尔树 是一种哈希二叉树 树的根就是Merkle根 关于Merkle树老猿推荐大家阅读 Merkle树 这篇文章 Merkle树和Merkle根在区块
  • 网络数据传输流程

    目录 一 局域网传输流程 1 集线器 2 交换机 3 交换机 路由器 二 广域网数据传输流程 主要过程 一 局域网传输流程 1 集线器 主要过程 源主机 从上到下封装 如果知道目的IP主机的MAC地址就直接封装在数据链路层的以太网帧头中 如
  • 多线程实现大批量数据查询

    优化一个系统中的功能 需要通过判断进行多次的查库 查库的性能是单表 条件有索引 public Map
  • PostgreSQL插件-pg_stat_statements-查找最耗费资源的SQL(Top SQL)

    数据库是较大型的应用 对于繁忙的数据库 需要消耗大量的内存 CPU IO 网络资源 SQL 优化是数据库优化的手段之一 而为了达到 SQL 优化的最佳效果 您首先需要了解最消耗资源的 SQL Top SQL 例如 IO 消耗最高的 SQL
  • leetcode之找出相交链表的交点

    题目 编写一个程序 找到两个单链表相交的起始节点 如果相交只会是y型相交 如果不想交就返回空指针 O 1 空间和O n 时间 分析 直接采取暴力二重循环可以求解 但是超过时间限制 一个思路是先找出两个链表长度相差的值 然后一个链表先走相差的
  • 关于DAG共识的调研

    内容目录 前言 why DAG DAG 是什么 常见共识机制 主链DAG共识 朴素DAG 平行链DAG 问题与挑战 这是自己看的一篇综述 参考里面的分类并对现在的一些DAG共识做的简要理解 后面会对一些共识的论文做学习笔记 若有错误之处还请
  • 公开数据集下载地址

    这里写目录标题 一 目标检测 分割数据集 1 COCO 数据集 COCO2014 COCO2017 2 PASCAL VOC数据集 voc2007数据集 voc 2012数据集 二 自动驾驶数据集 1 BDD100K 数据集 2 Nusce
  • STM32单片机示例:多个定时器同步触发启动

    文章目录 前言 基础说明 关键配置与代码 其它补充 示例链接 前言 多个定时器同步触发启动是一种比较实用的功能 这里将对此做个示例说明 基础说明 该示例演示通过一个TIM使能时同步触发使能另一个TIM 本例中使用TIM1作为主机 使用TIM
  • Linux主机测评

    安全计算环境 一 身份鉴别 a 应对登录的用户进行身份标识和身份鉴别 身份标识具有唯一性 身份鉴别信息具有复杂度要求并定期更换 此项部分符合 在root权限下查看有关用户的配置文件 1 通过etc password检查身份标识 看是否有没有