Linux系统加固

embedded/2024/12/23 17:26:15/

Linux系统安全加固

文章目录

  • Linux系统安全加固
    • 密码策略
    • 文件、目录安全
    • 未授权suid、未授权sgid排查与加固
    • 禁止root登录ftp、禁止匿名访问ftp
    • 计划任务排查与加固、开机自启排查与加固
    • 限定root用户远程ssh登录
    • 日志加固

无用账号、用户组和空口令账户排查与加固

禁用或删除无用账号

使用 cat /etc/passwd 命令查看所有账号

在这里插入图片描述

把系统一些自带的账号注释掉,不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。

注 释 用 户 主 要 包 括 :

adm,lp,sync,shutdown,halt,news,uucp,operator,games,ftp,postfix,dovecot

首先备份一下 passwd 文件:

cp /etc/passwd /etc/passwdbak

或者

cat /etc/passwd > /etc/passwd.bak

在这里插入图片描述

使用 vim 进行编辑:

vim /etc/passwd

以adm为例

#adm:x:3:4:adm:/var/adm:/sbin/nologin

同上,使用 vim 进行编辑,注释掉不必要的用户组(adm,lp,mail,games,ftp,audio)

vim /etc/group
#adm:x:4:

如果是一些自己添加的账户,不用的话,建议直接删除。

加上参数-r,将账号相应的 home 目录与 mail 目录都一起删掉

useradd lll
userdel -r lll

使用 passwd -l 禁用账户 test,禁用后,root 用户仍然可以 su,但是其他用户无法 su 到 test,也无法通过 xshell 去 ssh 到 test 。

[root@localhost ~]# echo "123456" | passwd --stdin tom
更改用户 tom 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd -l tom 
锁定用户 tom 的密码 。
passwd: 操作成功
[root@localhost ~]# su - tom 
[tom@localhost ~]$ exit
注销
[root@localhost ~]# su - user 
[user@localhost ~]$ su - tom 
密码: 
su: 鉴定故障
[user@localhost ~]$ exit
注销
[root@localhost ~]# cat /etc/shadow | grep tom 
tom:!!$6$LpHZpx84O6lPh3LU$WWxXst/25GwUjF4RdRjexReyRrJdzAmKp5sAwLa83C6DmSHr76lpNAmLYq86CqkmQXtGJPwVrrkLyFKVEf7ws.:20076:0:99999:7:::

使用 passwd -u 解锁后,账户可以正常登陆。

root@localhost ~]# passwd -u tom 
解锁用户 tom 的密码。
passwd: 操作成功
[root@localhost ~]# su - user 
[user@localhost ~]$ su - tom 
密码: 
[tom@localhost ~]$ 

检测空口令账户

[root@localhost ~]# awk -F ':' '$2=="!!" {print $1}' /etc/shadowsystemd-coredump
dbus
polkitd
avahi
tss
colord
clevis

再去/etc/passwd 查看哪些账户是可登录的

[root@localhost ~]# grep -v "nologin" /etc/passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
user:x:1000:1000:user:/home/user:/bin/bash
alice:x:1001:1001::/home/alice:/bin/bash
zs:x:1002:1002::/home/zs:/bin/bash
lfx226:x:1003:1003::/home/lfx226:/bin/bash

加固空口令账号

如果存在可登录的空口令账号,使用"passwd 账号"对其进行添加密码。

[root@localhost ~]# passwd zs
更改用户 zs 的密码 。
新的密码: 
无效的密码: 密码少于 8 个字符
重新输入新的密码: 
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# grep zs /etc/shadow
zs:$6$Wfw.ESVqNnmhnjIm$ozIcxd81IgX719KF9xEDDCou5Dikay3MTa7KCIV7lxyWnw4WzU6trLSqXmYCADr9.ooG8N13Rl76ePpcB551i/:20076:0:99999:7:::

检测 root 权限账号

使用命令 awk -F ‘:’ ‘($3==0)’ /etc/passwd 查看 UID 为零的账号。确保 uid 为 0 的账号只能是 root 账号。

[root@localhost ~]# awk -F ':' '($3==0)' /etc/passwd
root:x:0:0:root:/root:/bin/bash

密码策略

密码复杂度设置

加强口令的复杂度等,降低被猜解的可能性。

  • 用户密码不能包含用户名
  • 用户密码不能少于 10 位
  • 用户密码需要是特殊字符、数字、字母的组合

Linux 对应的密码策略模块有:pam_passwdqc 和 pam_pwquality 。

pam_passwdqc 模块对应的是 /etc/login.defs

pam_pwquality 模块对应的是 /etc/security/pwquality.conf

修改/etc/login.defs

vim /etc/login.defs
# 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
PASS_MIN_DAYS   0
PASS_WARN_AGE   7

修改/etc/pam.d/system-auth

修改系统文件时,最好先备份一下:

cp /etc/pam.d/system-auth /etc/pam.d/system-auth-bak

禁止使用旧密码

找 到 同 时 有 “ password” 和 “ pam_unix.so” 字段并且附加有“remember=5” 的那行,它表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面)。

如果没有 remember=5,加上即可实现该配置。

vim /etc/pam.d/system-auth
password	sufficient	pam_unix.so sha512 shadow nullok use_authtok remember=5

设置密码最小长度

找到同时有 “password” 和 “pam_pwquality.so” 字段并且附加有 “minlen=10” 的那行,它表示最小密码长度为(10 - 类型数量)。这里的 “类型数量” 表示不同的字符类型数量。PAM 提供 4 种类型符号作为密码(大写字母、小写字母、数字和标点符号)。如果你的密码同时用上了这 4 种类型的符号,并且你的minlen 设为 10,那么最短的密码长度允许是 6 个字符。

如果没有 minlen=10,同上,手动添加。

password    requisite	pam_pwquality.so local_users_only minlen=10

设置用户密码过期时间

修 改 /etc/login.defs

通过修改配置文件 vi /etc/login.defs ,设置全体用户的密码过期时间等。

PASS_MAX_DAYS 90 #新建用户的密码最长使用天数

PASS_MIN_DAYS 0 #新建用户的密码最短使用天数

PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数

vim /etc/login.defs
# 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
PASS_MIN_DAYS   0
PASS_WARN_AGE   7

使用命令 chage

使用 chage 命令单独修改单用户配置

chage -m (最短时间) -M (最长时间) -E (过期时间) -W (过期前X 天提示) 用户名

[root@localhost ~]# chage -m 0 -M 30 -E 2024-01-01 -W 7 zs 

表示将此用户 zs 的密码最短使用天数设为 0,最长使用天数设为 30,密码 2024年 1 月 1 日过期,过期前七天警告用户。

密码输错三次,锁定用户 5 分钟

使用 cat /etc/pam.d/sshd 命令查看密码策略:

设置连续输错三次密码,账号锁定五分钟,只能由 root 用户解锁。操作如下:

一定要写在#%PAM-1.0 下面,否则即使输错三次,只要继续输对了密码,还是可以登录,导致无法锁定。

[root@localhost ~]# vim /etc/pam.d/sshd 
输入
auth required pam_tally2.so onerr=fail deny=3 unlock_time=300[root@localhost ~]# head -n 3  /etc/pam.d/sshd 
#%PAM-1.0
auth required pam_tally2.so onerr=fail deny=3 unlock_time=300
auth       substack     password-auth

pam_tally2.so:位于/usr/lib64/security/下。(注意:如果用 pam_tally.so,是没有自动解锁的功能。只能进单用户模式解锁。)

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

unlock_time: 设定普通用户锁定后,多少时间后解锁,单位是秒; no_magic_root 连 root 用户也在限制范围,不给 root 特殊权限。even_deny_root 也限制 root 用户;

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

文件、目录安全

执行 ls-l /etc 命令查看 /etc/ 路径下文件的权限

[root@localhost ~]# ls -l /etc/
总用量 1332
drwxr-xr-x.  3 root root        28  4月  2  2024 accountsservice
-rw-r--r--.  1 root root        16  4月  2  2024 adjtime
-rw-r--r--.  1 root root      1529  6月 23  2020 aliases
drwxr-xr-x.  3 root root        65  4月  2  2024 alsa
drwxr-xr-x.  2 root root      4096  4月  2  2024 alternatives
-rw-r--r--.  1 root root       541  7月 11  2022 anacrontab
-rw-r--r--.  1 root root       833  8月 23  2022 appstream.conf

使用 chmod 命令修改文件的访问权限。如使用 chmod 700 命令将 yum 这个

文件修改为只允许 root 用户读写执行

[root@localhost ~]# chmod 700 /etc/yum
yum/         yum.conf     yum.repos.d/ 
[root@localhost ~]# chmod 700 /etc/yum
[root@localhost ~]# ll /etc |grep yum 
drwx------.  2 root root        57  4月  2  2024 yum
lrwxrwxrwx.  1 root root        12  3月 15  2023 yum.conf -> dnf/dnf.conf
drwxr-xr-x.  2 root root        49 12月 13 09:57 yum.repos.d

相同的步骤检查/etc/passwd、 /etc/shadow/、 ~/.ssh/、 /var/log/messages/、/var/log/secure/、/var/log/maillog/、/var/log/cron/、/var/log/spooler/、/var/log/boot.log/ 等文件或目录,将文件或目录修改为合适的权限

未授权suid、未授权sgid排查与加固

执行find / -perm -4000 命令查看 具有 SUID 权限的文件

[root@localhost ~]# find / -perm -4000 
find: ‘/proc/2627/task/2627/fd/6’: 没有那个文件或目录
find: ‘/proc/2627/task/2627/fdinfo/6’: 没有那个文件或目录
find: ‘/proc/2627/fd/5’: 没有那个文件或目录
find: ‘/proc/2627/fdinfo/5’: 没有那个文件或目录
/usr/bin/fusermount
/usr/bin/chage
/usr/bin/gpasswd
/usr/bin/newgrp
/usr/bin/fusermount3
/usr/bin/cat
/usr/bin/mount
/usr/bin/umount
/usr/bin/su
/usr/bin/pkexec
/usr/bin/crontab
/usr/bin/passwd
/usr/bin/sudo
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/vmware-user-suid-wrapper
/usr/bin/at
/usr/sbin/grub2-set-bootflag
/usr/sbin/pam_timestamp_check
/usr/sbin/unix_chkpwd
/usr/sbin/userhelper
/usr/lib/polkit-1/polkit-agent-helper-1
/usr/libexec/dbus-1/dbus-daemon-launch-helper
/usr/libexec/sssd/krb5_child
/usr/libexec/sssd/ldap_child
/usr/libexec/sssd/proxy_child
/usr/libexec/sssd/selinux_child
/usr/libexec/Xorg.wrap
/usr/libexec/cockpit-session
/home/test01

执行 find / -perm -2000 命令查看 具有 SGID 权限的文件

[root@localhost ~]# find / -perm -2000
find: ‘/proc/2632/task/2632/fd/6’: 没有那个文件或目录
find: ‘/proc/2632/task/2632/fdinfo/6’: 没有那个文件或目录
find: ‘/proc/2632/fd/5’: 没有那个文件或目录
find: ‘/proc/2632/fdinfo/5’: 没有那个文件或目录
/run/tpm2-tss/eventlog
/run/log/journal
/run/log/journal/07f7f36d994f42eb8e158c0e47adf570
/var/lib/tpm2-tss/system/keystore
/usr/bin/write
/usr/bin/locate
/usr/sbin/lockdev
/usr/libexec/utempter/utempter
/usr/libexec/openssh/ssh-keysign
/home/test01

检查文件的的权限,如果有未授权的 SUID 权限或者 SGID 权限使用 chmod 命令修改权限

禁止root登录ftp、禁止匿名访问ftp

  1. 登录系统以后,打开终端,用rpm -qa | grep ftp确认是否已安装ftp,如下图所示:
[root@localhost ~]# rpm -qa | grep ftp 
vsftpd-3.0.5-4.el9.x86_64
  1. 检查root用户能否登录ftp。进入/etc/vsftpd/路径下,访问ftpusers文件。默认情况下,root用户是被禁止登录ftp的,如果发现root不在名单中,说明root用户允许登录ftp,此时可以把root加入这个名单中。如果允许root登录ftp,把root注释掉即可。
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# cat ftpusers | grep root 
root       //如果grep过滤出来有结果,就说明root在此名单中,如果没有就添加进去
  1. 检查匿名用户能否登录ftp。进入/etc/vsftpd/路径下,访问vsftpd.conf文件。
[root@localhost vsftpd]# pwd
/etc/vsftpd
[root@localhost vsftpd]# cat vsftpd.conf | grep anonymous
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES   //yes就表示当前是允许匿名用户登录的
# Uncomment this to allow the anonymous FTP user to upload files. This only
# Uncomment this if you want the anonymous FTP user to be able to create
# If you want, you can arrange for uploaded anonymous files to be owned by
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
  1. 使用vim修改anonymous_enable的属性,将YES修改为NO
anonymous_enable=NO

计划任务排查与加固、开机自启排查与加固

  1. 计划任务排查。用crontal -l命令查看当前用户的计划任务
[root@localhost ~]# crontab -l
no crontab for root			//当前用户(root)无计划任务
  1. crontab -l -u -username命令查看指定用户的计划任务
[root@localhost ~]# crontab -l -u tom 
no crontab for tom		//指定用户(tom)无计划任务
  1. crontab文件格式
* * * * * command_to_be_executed
- - - - -
| | | | |
| | | | +----- 星期几 (0 - 7) (星期天为 0 或 7)
| | | +------- 月份 (1 - 12)
| | +--------- 日期 (1 - 31)
| +----------- 小时 (0 - 23)
+------------- 分钟 (0 - 59)
每个字段可以包含以下内容:
● *:表示任何值。
● 具体数字:表示特定的时间点。
● 逗号分隔的列表:例如 1,2,5 表示这三个时间点。
● 连字符分隔的范围:例如 1-5 表示从 1 到 5。
● /:表示步长,例如 */2 表示每隔 2 个单位。

示例

每分钟执行一次:* * * * * /path/to/script.sh
每小时的第 15 分钟执行一次:* * * * /path/to/script.sh
每天的 3:30 AM 执行一次:30 3 * * * /path/to/script.sh
每周一的 4:00 AM 执行一次:0 4 * * 1 /path/to/script.sh
每个月的第一天的 5:00 AM 执行一次:0 5 1 * * /path/to/script.sh
每隔 5 分钟执行一次:*/5 * * * * /path/to/script.sh
  1. 删除计划任务。crontab -r命令删除当前用户的计划任务。
[root@localhost ~]# crontab -r
[root@localhost ~]# crontab -l
no crontab for root
  1. 开机自启排查与加固。用systemctl list-unit-files --type=service | grep enabled进行查询
[root@localhost ~]# systemctl list-unit-files --type=service | grep enabled 
accounts-daemon.service                    enabled         enabled
atd.service                                enabled         enabled
auditd.service                             enabled         enabled
avahi-daemon.service                       enabled         enabled
bluetooth.service                          enabled         enabled
chronyd.service                            enabled         enabled
crond.service                              enabled         enabled
cups.service                               enabled         enabled
dbus-broker.service                        enabled         enabled
firewalld.service                          enabled         enabled
gdm.service                                enabled         enabled
getty@.service                             enabled         enabled
insights-client-boot.service               enabled         enabled
irqbalance.service                         enabled         enabled
iscsi-onboot.service                       enabled         enabled
iscsi.service                              enabled         enabled
kdump.service                              enabled         enabled
libstoragemgmt.service                     enabled         enabled
low-memory-monitor.service                 enabled         enabled
lvm2-monitor.service                       enabled         enabled
mcelog.service                             enabled         enabled
mdmonitor.service                          enabled         enabled
microcode.service                          enabled         enabled
ModemManager.service                       enabled         enabled
multipathd.service                         enabled         enabled
NetworkManager-dispatcher.service          enabled         enabled
NetworkManager-wait-online.service         enabled         disabled
NetworkManager.service                     enabled         enabled
nis-domainname.service                     enabled         enabled
nvmefc-boot-connections.service            enabled         enabled
ostree-remount.service                     enabled         enabled
power-profiles-daemon.service              enabled         enabled
qemu-guest-agent.service                   enabled         enabled
rhsmcertd.service                          enabled         enabled
rsyslog.service                            enabled         enabled
rtkit-daemon.service                       enabled         enabled
selinux-autorelabel-mark.service           enabled         enabled
smartd.service                             enabled         enabled
spice-vdagentd.service                     indirect        enabled
sshd.service                               enabled         enabled
sssd.service                               enabled         enabled
switcheroo-control.service                 enabled         enabled
systemd-boot-update.service                enabled         enabled
systemd-network-generator.service          enabled         enabled
systemd-pstore.service                     disabled        enabled
systemd-remount-fs.service                 enabled-runtime disabled
tuned.service                              enabled         enabled
udisks2.service                            enabled         enabled
upower.service                             enabled         enabled
vgauthd.service                            enabled         disabled
vmtoolsd.service                           enabled         enabled
  1. 设置和关闭开机自启
systemctl disable 服务名.service		//禁止开机自启
systemctl enable 服务名.service		//打开开机自启

限定root用户远程ssh登录

  1. 查看是否安装ssh服务。用systemctl list-unit-files --type=service | grep sshd查看服务运行状态
[root@localhost ~]# systemctl list-unit-files --type=service | grep sshd
sshd-keygen@.service                       disabled        disabled
sshd.service                               enabled         enabled
sshd@.service                              static          -
  1. 修改配置文件
[root@localhost ~]# vim /etc/ssh/sshd_config
[root@localhost ~]# cat -n /etc/ssh/sshd_config40	PermitRootLogin yes   //将这里参数改为yes

日志加固

  1. 日志类型
日志文件说明
/var/log/cron记录了系统定时任务相关的日志
/var/log/cups记录打印信息的日志
/var/log/dmesg记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/mailog记录邮件信息
/var/log/message记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件
/var/log/btmp记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看
/var/log/wtmp永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看
/var/log/utmp记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询
/var/log/secure记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
  1. 常用日志文件
/var/log/boot.log:录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息
/var/log/lastlog:记录最后一次用户成功登陆的时间、登陆IP等信息
/var/log/messages:记录Linux操作系统常见的系统和服务错误信息
/var/log/secure:Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况
/var/log/btmp:记录Linux登陆失败的用户、时间以及远程IP地址
/var/log/syslog:只记录警告信息,常常是系统出问题的信息,使用lastlog查看
/var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看
/var/run/utmp:该日志文件记录有关当前登录的每个用户的信息。如who、w、users、finger等就需要访问这个文件
/var/log/syslog或/var/log/messages存储所有的全局系统活动数据,包括开机信息。基于Debian的系统如Ubuntu在/var/log/syslog中存储它们,而基于RedHat的系统如RHEL或CentOS则在/var/log/messages中存储它们。
/var/log/auth.log或/var/log/secure存储来自可插拔认证模块(PAM)的日志,包括成功的登录,失败的登录尝试和认证方式。Ubuntu和Debian在/var/log/auth.log中存储认证信息,而RedHat和CentOS则在/var/log/secure中存储该信息。
  1. 查看/var/adm下是否存在messages文件,不存在则创建
[root@localhost ~]# cd /var/adm/
[root@localhost adm]# ll -d messages
ls: 无法访问 'messages': 没有那个文件或目录
[root@localhost adm]# touch messages
[root@localhost adm]# ll -d messages 
-rw-r--r--. 1 root root 0 12月 19 16:01 messages
  1. 修改权限为666
[root@localhost adm]# chmod 666 messages 
[root@localhost adm]# ll -d messages 
-rw-rw-rw-. 1 root root 0 12月 19 16:01 messages
  1. 编辑/etc/rsyslog.conf文件,插入*.err;kern.debug;daemon.notice /var/adm/messages
[root@localhost adm]# echo '*.err;kern.debug;daemon.notice /var/adm/messages'  >> /etc/rsyslog.conf 
[root@localhost adm]# tail -n 5 /etc/rsyslog.conf 
#action.resumeRetryCount="-1"    # infinite retries if host is down
# # Remote Logging (we use TCP for reliable delivery)
# # remote_host is: name/ip, e.g. 192.168.0.1, port optional e.g. 10514
#Target="remote_host" Port="XXX" Protocol="tcp")
*.err;kern.debug;daemon.notice /var/adm/messages
  1. 重启系统日志服务,就可以在文件中看到错误日志、内核调试日志以及守护进程的相关日志。
[root@localhost ~]# systemctl restart rsyslog.service 
  1. 系统日文件加固。查看当前日志文件属性查看一般属性用ll -a,查看特殊属性用lsattr
[root@localhost ~]# cd /var/log/
[root@localhost log]# ll -a 
总用量 1860
drwxr-xr-x. 16 root   root     4096 12月 19 14:41 .
drwxr-xr-x. 21 root   root     4096 12月  2 15:26 ..
drwxr-xr-x.  2 root   root     4096  4月  2  2024 anaconda
drwx------.  2 root   root       23  4月  2  2024 audit
-rw-------.  1 root   root     2506 12月 19 14:41 boot.log
-rw-------.  1 root   root    36844 12月  4 09:49 boot.log-20241204
-rw-------.  1 root   root    15190 12月 18 08:26 boot.log-20241218
-rw-------.  1 root   root    49513 12月 19 14:41 boot.log-20241219
-rw-rw----.  1 root   utmp     1536 12月 19 15:00 btmp
drwxr-x---.  2 chrony chrony      6 10月 13  2022 chrony
-rw-------.  1 root   root     4578 12月 19 16:01 cron
-rw-------.  1 root   root     5442 12月  6 09:01 cron-20241209
-rw-------.  1 root   root     6524 12月 13 10:01 cron-20241217
drwxr-xr-x.  2 lp     sys        57  4月  2  2024 cups
-rw-r--r--.  1 root   root    19019 12月 19 15:14 dnf.librepo.log
-rw-r--r--.  1 root   root   106261 12月 19 15:14 dnf.log
-rw-r--r--.  1 root   root     2692 12月 19 15:14 dnf.rpm.log
-rw-r-----.  1 root   root        0  4月  2  2024 firewalld
drwx--x--x.  2 root   gdm         6  1月 28  2023 gdm
-rw-r--r--.  1 root   root        0 12月 17 12:50 hawkey.log
-rw-r--r--.  1 root   root      660 12月  6 08:46 hawkey.log-20241209
-rw-r--r--.  1 root   root     1320 12月 13 09:54 hawkey.log-20241217
drwx------.  2 root   root       94 12月 11 09:00 httpd
drwx------.  2 root   root        6 11月 11  2022 insights-client
-rw-------.  1 root   root     3930 12月 19 14:41 kdump.log
-rw-rw-r--.  1 root   utmp   295212 12月 19 15:01 lastlog
-rw-------.  1 root   root        0 12月 17 12:50 maillog
-rw-------.  1 root   root        0  4月  2  2024 maillog-20241209
-rw-------.  1 root   root        0 12月  9 15:09 maillog-20241217
-rw-------.  1 root   root   709815 12月 19 16:05 messages
-rw-------.  1 root   root   613665 12月  9 15:09 messages-20241209
-rw-------.  1 root   root    85638 12月 17 12:50 messages-20241217
drwx------.  2 root   root        6  4月  2  2024 private
drwxr-xr-x.  2 root   root        6  3月 20  2023 qemu-ga
lrwxrwxrwx.  1 root   root       39  4月  2  2024 README -> ../../usr/share/doc/systemd/README.logs
drwxr-xr-x.  2 root   root      153 12月 17 12:50 rhsm
drwx------.  3 root   root       17  4月  2  2024 samba
-rw-------.  1 root   root    15564 12月 19 15:35 secure
-rw-------.  1 root   root     9742 12月  6 08:34 secure-20241209
-rw-------.  1 root   root    10495 12月 13 11:18 secure-20241217
drwx------.  2 root   root        6  8月 11  2021 speech-dispatcher
-rw-------.  1 root   root        0 12月 17 12:50 spooler
-rw-------.  1 root   root        0  4月  2  2024 spooler-20241209
-rw-------.  1 root   root        0 12月  9 15:09 spooler-20241217
drwxr-x---.  2 sssd   sssd       87 12月 17 12:50 sssd
-rw-------.  1 root   root        0  4月  2  2024 tallylog
drwxr-xr-x.  2 root   root       23  4月  2  2024 tuned
-rw-r--r--.  1 root   root      217 12月 18 11:40 vmware-network.1.log
-rw-r--r--.  1 root   root      217 12月 18 08:26 vmware-network.2.log
-rw-r--r--.  1 root   root      215 12月 17 12:50 vmware-network.3.log
-rw-r--r--.  1 root   root      217 12月 13 11:47 vmware-network.4.log
-rw-r--r--.  1 root   root      215 12月 13 11:14 vmware-network.5.log
-rw-r--r--.  1 root   root      217 12月 13 10:01 vmware-network.6.log
-rw-r--r--.  1 root   root      215 12月 13 08:34 vmware-network.7.log
-rw-r--r--.  1 root   root      217 12月 12 21:48 vmware-network.8.log
-rw-r--r--.  1 root   root      215 12月 12 15:59 vmware-network.9.log
-rw-r--r--.  1 root   root      217 12月 19 14:41 vmware-network.log
-rw-------.  1 root   root     7663 12月 19 14:41 vmware-vgauthsvc.log.0
-rw-------.  1 root   root    32252 12月 19 15:17 vmware-vmsvc-root.log
-rw-------.  1 root   root     3691 12月 19 14:41 vmware-vmtoolsd-root.log
-rw-------.  1 root   root     4072 12月 17 13:14 vmware-vmusr-root.log
-rw-rw-r--.  1 root   utmp    20736 12月 19 14:46 wtmp
-rw-------.  1 root   root        0 12月 18 08:26 xferlog
-rw-------.  1 root   root        0 12月  2 15:19 xferlog-20241211
-rw-------.  1 root   root        0 12月 11 09:00 xferlog-20241218
  1. 添加特殊属性用chattr +a messages-20241217
[root@localhost log]# lsattr messages-20241217 
---------------------- messages-20241217
[root@localhost log]# chattr +a messages-20241217
[root@localhost log]# lsattr messages-20241217 
-----a---------------- messages-20241217
a 特殊属性:只可在源文件中进行添加内容,不可修改和删除。
i 特殊属性:设定后不可被删除、改名、设定链接关系,不能写入和修改。即锁定当前文件。

http://www.ppmy.cn/embedded/148124.html

相关文章

【mysql】1205 -Lock wait timeout exceeded; try restarting transaction

问题: mysql8执行SQL提示下面错误: 1205 -Lock wait timeout exceeded; try restarting transaction 1205-超过锁定等待超时;尝试重新启动事务 可能的原因: 事务冲突:多个事务同时尝试修改同一行数据,导…

使用ElasticSearch实现全文检索

文章目录 全文检索任务描述技术难点任务目标实现过程1. java读取Json文件,并导入MySQL数据库中2. 利用Logstah完成MySQL到ES的数据同步3. 开始编写功能接口3.1 全文检索接口3.2 查询详情 4. 前端调用 全文检索 任务描述 在获取到数据之后如何在ES中进行数据建模&a…

设计模式の享元模板代理模式

文章目录 前言一、享元模式二、模板方法模式三、代理模式3.1、静态代理3.2、JDK动态代理3.3、Cglib动态代理3.4、小结 前言 本篇是关于设计模式中享元模式、模板模式、以及代理模式的学习笔记。 一、享元模式 享元模式是一种结构型设计模式,目的是为了相似对象的复用…

druid与pgsql结合踩坑记

最近项目里面突然出现一个怪问题,数据库是pgsql,jdbc连接池是alibaba开源的druid,idea里面直接启动没问题,打完包放在centos上和windows上cmd窗口都能直接用java -jar命令启动,但是放到国产信创系统上就是报错&#xf…

STM32F407 | Embedded IDE01 - vscode搭建Embedded IDE开发环境(支持JLINK、STLINK、DAPLINK)

导言 Embedded IDE官网:https://em-ide.com/docs/intro 我猜肯定有部分人使用SI Keil开发STM32项目,也有vscode Keil开发STM32程序。SI或vscode编写代码,然后切换Keil编译、下载、调试程序。有一段时间,我也是这么干的。但是,程…

分布式系统架构:服务容错

1.为什么需要容错 分布式系统的本质是不可靠的,一个大的服务集群中,程序可能崩溃、节点可能宕机、网络可能中断,这些“意外情况”其实全部都在“意料之中”。故障的发生是必然的,所以需要设计一套健壮的容错机制来应对这些问题。 …

CSS系列(30)-- 逻辑属性详解

前端技术探索系列:CSS 逻辑属性详解 🌐 致读者:探索国际化布局的艺术 👋 前端开发者们, 今天我们将深入探讨 CSS 逻辑属性,这个强大的国际化布局特性。 基础概念 🚀 逻辑属性映射 /* 物理…

MySQL 实战:小型项目中的数据库应用(一)

MySQL 简介与小型项目适配性分析 MySQL 是一个开源的关系型数据库管理系统,由瑞典 MySQL AB 公司开发,现属于 Oracle 公司。它在 Web 应用方面被广泛使用,也是一种关联数据库管理系统,能将数据保存在不同的表中,以此增…