Mac chflags 文件标志 attr

背景知识

ls命令中有出现过一个-O的选项,即列出文件的file flag。这个File flag所为何物?

File flag是在BSD Unix中的概念,跟Linux系统中的attr是差不多的一个概念,是文件的一些标志位来存放文件的某些属性。chflags就是来修改这个file flag的。这个文件属性是跟文件系统相关的,所以这个命令在不同的文件系统上的支持程度不一样,体现在某一些flag在一些特定的文件系统上没有。

所有的属性都可以被超级管理员修改,有一些可以被文件的所有者修改。以下列出比较常用的几个属性。

属性ls中显示chflags中使用文件所有者能否修改?详述
隐藏hiddenhidden设置以后在GUI上看不到,ls依然可以看到d
系统级只能添加sappndsappnd, sappend设置以后此文件不能够截断或者复写(overwrite),只能通过append模式添加内容
用户级只能添加uappnduappnd, uappend设置以后此文件不能够截断或者复写(overwrite),只能通过append模式添加内容
系统级只读schgschg, schange, simmutable不能够重命名、移动、删除、更改内容
用户级只读uchguchg, uchange, uimmutable不能够更改内容

基本用法

chflags [-fhv] [-R [-H | -L | -P]] flags file

常用参数

-R 递归修改参数中文件夹下面的所有文件和文件夹的属性

具体案例

为一个文件添加一个属性

chflags uchg file

为一个文件删除一个属性

chflags nouchg file

在属性名字前面添加no就可以将属性删除,如果这个属性本身已no开头(比如nodump)则去掉no。

将文件夹及其文件夹下所有文件属性进行修改

chflags -R uchg directory

ls -lO [文件路径] 查看锁定标志

chflags uchg [文件路径] 修改锁定

chflags nouchg [文件路径] 修改锁定

S/MIME邮件加密

1、创建自签名证书

注意:在弹出对话框勾选“让我覆盖这些默认值”,设置邮箱地址和作为发件人的地址相同,否则在Mail App中无法加密

点击创建,按提示操作即可。完成后会在钥匙串>>我的证书 中多一个证书。

2、在钥匙串中找到新建的证书,然后右键》新建身份偏好设置,填写你的邮箱地址。实测新版的macOS加密不支持身份偏好设置,第一步的填写的邮箱地址和实际发件人地址必须相同。如果一直,可以省略身份偏好设置。

3、使用改邮箱发送邮件给对方,主题右侧的的签名为蓝色表示发送证书签名。小锁符号为灰色,暂时不可用。

4、对方重复1、2、3步

5、双方交换完证书,再次编写邮件时,小锁变成可用状态。

6、已知问题

macOS升级后 Mail app校验更严格,如果发件人地址和证书填写的邮箱地址如果不同,仅仅通过身份偏好设置进行绑定是不能发送加密邮件的。但是可以接收和解密邮件。其他客户端,如安卓邮件、iOS邮件、outlook等校验没那么严格,不一致也可以发送加密邮件。

7、导出证书供其他客户端使用

在钥匙串中,找到第一步我们新建的证书,右键》导出,下面以安卓和iOS自带邮件app为例讲一下如何设置。

8、安卓

打开邮件app,找到设置的齿轮,进入账户设置,点击需要设置的邮箱,找到服务器设置,找到S/MIME开关打开,S/MIME签名打开,点击安装证书,选择步骤7导出的证书文件。S/MIME加密同理。

9、iOS

将步骤7导出的证书通过隔空投送或者U盘、邮件的方式传到iOS设备,点击证书,然后找到通用》VPN与设备管理,找到证书点击进行安装。

安装完成后,邮件》账户,点开需要配置的账户,然后账户设置》高级,拉到最下方找到S/MIME,签名和加密都打开,并分别选择刚刚安装的证书。

10、类似步骤3和对方交换签名证书(公钥)

11、完成公钥证书交换后,发送邮件给对方时,会有蓝色小锁标志或显示已加密等字样。

Npm查看该包的所有版本及最新版本

以jquery为例

npm info jquery

查看npmjs服务器上包的版本信息:

使用npm view jquery versions;这种方式可以查看npm服务器上所有的jquery版本信息;

使用npm view jquery version; 这种方式只能查看jquery的最新的版本是哪一个;

使用npm info jquery ;这种方式和第一种类似,也可以查看jquery所有的版本,但是能查出更多的关于jquery的信息;

查看本地已经安装的包的版本信息:

npm ls jquery 即可(查看某个项目安装的jQuery),命令必须在某个项目下执行

npm ls jquery -g    (查看全局安装的jquery)

Gradle 国内阿里源

buildscript {

    repositories {

        maven { url ‘http://maven.aliyun.com/nexus/content/groups/public/’ }

        maven{ url ‘http://maven.aliyun.com/nexus/content/repositories/jcenter’}

        maven { url ‘http://maven.aliyun.com/repository/google’ }

        }

    dependencies {

        classpath ‘com.android.tools.build:gradle:3.2.1’

    }

}

allprojects {

    repositories {

        maven { url ‘http://maven.aliyun.com/nexus/content/groups/public/’ }

        maven{ url ‘http://maven.aliyun.com/nexus/content/repositories/jcenter’}

        maven { url ‘http://maven.aliyun.com/repository/google’ }

    }

}