crontab -e 无法保存

1.出现的问题

[root@iZ2vc7zmwkfwc8l88itp68Z /]# crontab -e

crontab: installing new crontab crontab: error renaming /var/spool/cron/#tmp.iZ2vc7zmwkfwc8l88itp68Z.XXXXaT5cbK to /var/spool/cron/root rename: Operation not permitted

crontab: edits left in /tmp/crontab.9RbmZJ

        crontab.9RbmZJ这个文件是在tmp文件下,之所以有这个文件是因为在crontab -e中添加的命令行无法保存,添加失败,生成的临时文件。

2.问题的来源

        第一次使用crontab定时任务,解决这个bug用了半天的时间。主要问题就是文件的修改权限。中间有一个很重要的问题就是需要重新安装chattr

[root@iZ2vc7zmwkfwc8l88itp68Z /]# chattr -ia /var/spool/cron

        chattr: command not found

        这个Error出现时,我重装了chatrr

#查看是否安装了chattr
whereis chattr 

#安装 chattr 命令: 如果 chattr 命令未安装,请尝试安装它。
在大多数 Linux 发行版中,chattr 命令包含在 e2fsprogs 软件包中。
您可以使用包管理器来安装它。例如,在基于 CentOS/RHEL 的系统中,可以使用以下命令安装:
sudo yum install e2fsprogs

        当完成了重装chattr,接下来的问题就是文件权限的问题了。只需要根据3.解决思路里的步骤修改权限即可

3.解决思路

        查看 /var/spool/cron/root权限

lsattr /var/spool/cron/

        修改权限/var/spool/cron/root权限,取消root文件的a属性。关于为什么取消a属性,在4.用到的命令里有描述

chattr -a /var/spool/cron/root

        然后crontab -e进行编辑,crontab -l 即可查看添加的定时任务信息 

4.用到的命令

4.1.chattr

        chattr是 Linux 系统中用于改变文件或目录属性的命令。它的主要作用是修改文件或目录的特殊属性,包括读写权限、追加属性等。以下是 chattr 命令的一般用法和常见选项

chattr [选项] 属性文件

4.2.常见选项

  • -R:递归处理,修改目录及其下所有内容的属性。
  • -V:详细模式,显示命令执行过程。
  • +:添加属性。
  • -:删除属性。

4.3.示例

  1. 将文件设置为不可修改(只添加):

    chattr +a filename

  2. 取消文件的不可修改属性:

    chattr -a filename

  3. 将目录及其下所有内容设置为不可修改:

    chattr -R +i directory

  4. 查看文件或目录的属性:

    lsattr filename

chattr 命令主要用于管理文件系统中的特殊属性,具体使用时需要谨慎操作,避免对系统造成不必要的影响或损坏。

4.4.常见属性

  • a:设置追加属性,只能向文件末尾添加内容,不能修改和删除已有内容。
  • i:设置不可变属性,文件不能被删除、改名、修改或链接。
  • d:设置删除属性,删除文件时只是清除文件的内容,而不是删除文件本身。
  • u:设置撤销属性,如果文件被删除,数据内容仍然可以恢复。
  • e: 属性表示设置文件为不可压缩(immutable),即禁止对文件进行压缩或修改。当文件具有 e 属性时,将无法对其进行写入或修改操作,包括不能删除或重命名该文件。这可以增加文件的安全性,防止意外或恶意更改或删除。

5. lsattr

        lsattr是 Linux 系统中用于显示文件或目录的扩展属性(extended attributes)的命令。扩展属性是与文件或目录相关联的附加属性,不同于传统的权限和属性,用于提供额外的元数据或控制文件行为的特定功能。

lsattr [选项] [文件路径]

5.1.选项

  • -a:显示所有文件,包括以 . 开头的文件(默认不显示以 . 开头的文件)。
  • -d:如果参数是一个目录,则显示目录本身的属性,而不是目录中的文件。
  • -R:递归显示目录及其子目录下的文件属性。
  • -v:详细模式,显示更多属性信息。

5.2.示例

  1. 显示文件的扩展属性:

    lsattr filename

  2. 显示目录的扩展属性:

    lsattr dirname

  3. 递归显示目录及其子目录下所有文件的扩展属性:

    lsattr -R dirname

5.3.扩展属性的含义

        常见的扩展属性包括 i(不可修改)、a(只能追加)、e(不可压缩)等,每个属性都代表了文件或目录的特定限制或行为。lsattr 命令可以帮助管理员或用户查看文件的这些特殊属性,以了解文件的状态和行为限制。

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值