Linux系统加固

server/2024/12/21 18:42:49/

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/server/152011.html

相关文章

JAVA集合-LIST 及源码解析

目录 常见的 List 操作 1. 创建 List 2.访问元素 3. 修改元素 4. 删除元素 5. 遍历 List 6. 获取 List 的大小 7. 检查 List 是否包含某个元素 ArrayList vs LinkedList ArrayList 源码详解 一、属性解析 二、构造方法解析 三、核心方法解析 add(E e)&#xff1a…

小程序中使用 Vue2 + Vuex 实现数据存储与获取

在小程序开发中,数据的存储与获取是一个非常重要的环节。本文将介绍如何在小程序中使用 Vue2 和 Vuex 实现数据的存储与获取。我们将通过一个具体的例子来展示如何在 Vuex 中管理用户信息和机构信息,并在组件中使用这些数据。 项目结构 首先&#xff0…

鸿蒙学习笔记:用户登录界面

文章目录 1. 提出任务2. 完成任务2.1 创建鸿蒙项目2.2 准备图片资源2.3 编写首页代码2.4 启动应用 3. 实战小结 1. 提出任务 本次任务聚焦于运用 ArkUI 打造用户登录界面。需呈现特定元素:一张图片增添视觉感,两个分别用于账号与密码的文本输入框&#…

搭建一个简单的Web服务器(Apache2.4)

一、下载安装包 Apache服务器的官方下载地址:http://httpd.apache.org windows系统的安装软件下载地址:https://www.apachelounge.com/download/ 下载的是免安装的版本:httpd-2.4.62-240904-win64-VS17.zip 解压后将 Apache24 拷贝到 D 盘&…

c++ 找第一个只出现一次的字符

【题目描述】 给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。 【输入】 一个字符串,长度小于100000。 【输出】 输出第一个仅出现一次的字符,若没有则输出no。 【输入样例】 abcabd【输出样…

Android 折叠屏问题解决 - 展开后布局未撑开

一、说明 正常情况下手机展开折叠时页面会销毁重建,但可以通过参数设置禁止销毁重建。 android:configChanges"orientation|screenSize|screenLayout|smallestScreenSize" 但设定完后发现 RecyclerView 中的 item 没有重新按照新的尺寸进行改变&#x…

ASR-LLM-TTS 实时语音对话助手:语音识别、大模型对话、声音生成

参考:https://blog.csdn.net/weixin_42357472/article/details/137020794 asr:funasr-SenseVoiceSmall 离线 llm:deepseek 在线api tts:edge-tts 在线api import pyaudio import wave import threading import numpy as np import time from queue import Queue import web…

1 软件工程学概述

一、软件危机 1.什么是软件危机 软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重问题。 2.软件危机的典型表现 对软件开发成本和进度估计尝尝很不准确用户对“已完成的”软件系统不满意的现象经常发生软件产品的质量往往靠不住软件常常是不可维护的软件通常没有…