2018年3月

chattr命令

chattr命令:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

语法 chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录


#参数  描述
-R  #递归处理所有的文件及子目录。
-V  #详细显示修改内容,并打印输出。
–   #失效属性。
+   #激活属性。
=   #指定属性。
A   #Atime,告诉系统不要修改对这个文件的最后访问时间。
S   #Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
a   #Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
i   #Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
D   #检查压缩文件中的错误。
d   #No dump,在进行文件系统备份时,dump程序将忽略这个文件。
C   #Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。
s   #Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。
u   #Undelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。

#例子

# 用chattr命令防止系统中某个关键文件被修改:
chattr +i /etc/resolv.conf

# 用lsattr查询文件属性:
lsattr /etc/resolv.conf
----i-------- /etc/resolv.conf #显示如上

# 让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
chattr +a /var/log/messages

Promise笔记

执行流程

执行流程

// Promise的设计

new Promise(
    /* 执行器 executor */
    function (resolve, reject) {
        // 一段耗时很长的异步操作
        resolve(); // 数据处理完成
        reject(); // 数据处理出错
    }
)
    .then(function A() {
        // 成功,下一步
    }, function B() {
        // 失败,做相应处理
    });

支持情况

支持情况

三个状态

  • pending[待定] 初始状态
  • fulfilled[实现] 操作成功
  • rejected[被否定] 操作失败

Promise 状态一经改变,不会再边
Promise 一经创建,执行器立即执行

- 阅读剩余部分 -