给网站设置一个 “根目录下的logo.ico”, 还是很有必要的,比如赶集网,这时在 “历史”搜索时, 就可以根据 网站的 logo.ico 很轻松的就能够找到网页-网站了.


如何给一个文件添加 /设置 acl? 为什么要给文件设置 acl? http://www.cnblogs.com/ZhangShuo/articles/1836971.html

  • 给文件添加acl的木的?

    如果要让一个other用户, 如john,能够有权去 读写 一个foo文件: 方法一, 让other能够读写foo, 这样太危险, 除了john能够读写foo外, 其他用户也能狗读写foo了; 方法二, 将john加入到 foo的所属组, 如foos, 但是这样的话, 又会扩大john的权限了, john除了可以读写foo外, 还可以 对读写所属组foos中的其他文件, 方法三, 使用sudo, 让john以foo所有者的身份去指向. 但是这样要精密的去控制 sudoers文件的权限格式, 当文件数量, 和用户增多时就不灵活了.

    所以, 使用 acl对文件进行控制就很有必要了.

  • 使用acl需要安装: acl和libacl两个包...
  • fstab和mtab, 两个列表的区别, fstab是系统启动时, 要加载(要挂载)的文件系统, 而mtab(mount, table) 是系统当前已经挂载的 文件系统/或分区.mtab会随着设备/ 分区的挂载和卸载而动态变化... http://blog.163.com/qimeizhen8808@126/blog/static/165119518201281892121501/

附:

文件所属的组, 不一定是 文件的所有者所属的组..!!

给一个文件加上 ACL_USER, ACL_GROUP 的属性值 后 这个文件 就叫做 acl文件.

  • 注意ACL_USER, ACL_GROUP不等于文件的other权限!!
  • 在ll 命令的返回结果中, 第一个字段是 文件权限: 包括: rw-r--r--+/./空格, 最后的这个 加号, 点号, 空格是紧挨着前面的权限的, 它们的一个整体表示 权限...

以下是 acl的两个重点和难点: 一个是 ACL_MASK (从总体上来控制 文件的 acl权限) , 另一个是 Default ACL

  • 当一个文件具有了 ACL_USER 或ACL_GROUP 后, 会同时设置ACL_MASK的值, 这时ACL_MASK的值由于是掩码, 所以它表示的是 ACL_USER, ACL_GROUP, ACL_GROUP_OBJ这三种权限中的最大的那一个. 在用ll列出来的第二组的权限就是 acl_mask的值, 而不再是 ACL_GROUP_OBJ即所属组的权限. 虽然你看到的第二组的权限是rwx, 而实际上所属组的权限只是rw, 没有x权限...

所以当文件有了acl后面有+的时候, 应该用getfacl来查看一下文件的具体权限, 以免发生混淆:



设置 ACL_MASK为只读: 则ACL_USER , ACL_GROUP的有效 权限都为只读, 也就是说, ACL_MASK是最大权限, 反过来, 所有用户和组的权限都受它压制suppress:



setfacl的选项:

-m, -M FILE, 都是设置acl, 一个是直接设置, 另一个是从文件FILE 中引入规则;

-x, -X FILE, 如同上面的

-b 全部删除acl

关于目录的 Default ACL 设置 -- 是指设置 目录, 非文件 的默认acl, 其下的文件或目录都将继承这个目录的acl规则

首先, 需要注意的是, setfacl 中的-d,选项 , 不是用来设置目录的默认acl的;

其次, setfacl的设置访问规则, 都是用的 -m 选项, 后面的规则通常有四种: -m u:foo:rwx, -m g:foo:rw, -m mask::r--, 以及 -m d:foouser:rw. 都是使用的-m 来创建.

  • 对文件, 目录的acl权限控制 条目, entries, 排列的顺序是: user-> group-> mask ->other...
  • 一旦设置了任意一个用户的default后(如: default:user:foo:rw) , 相应的会创建其他default规则...

  • 对于目录而言, 用户的rw权限是指 对目录下的文件/目录有查看, 读取,和 修改的权限, 而 x 权限才是对目录 有 创建和删除 新文件/新的子目录的 权限...
  • 当对目录设置了 d:foo:rw mydir后, foo对目录mydir没有 创建和删除文件的权限, 还要用 : setfacl -m u:foo:rwx mydir/ 赋予用户对目录的写权限..才能在目录下创建和删除文件, 但是这个权限 不会被 mydir下新建的文件 或 子目录所继承, 而只有 default的acl 才会自动被添加, 被继承...

    下图中, user:foo:rw 就是通过Default acl 增加上去的:

  • 要删除文件的acl, 可以使用两个命令都可以: setfacl -b foo; 或者: chacl -B foo. 这个是删除所有的acl条目, 会使ll不再显示加号; 不要使用 setfacl -x foo;这个会报错的, 因为 -x, -X 是要删除acl列表中的某一条 具体的 acl条目: remove entries from ACL of the file. 格式是: setfacl -x === --remove=acl要指出具体的acl条目

mount -o remount, acl /data : 其中的-o, 表示选项 --options

effective: adj. 有效的, 有效果的; 生效, (开始)起作用的; 有力的...

when does the new system become effective?

advertising is the most effective method of promotion.

system: 不只是"系统 体系"的意思 ,还有: 设备; 制度; 身体...的意思...

stroke: n, v. : (球,棍子)一击; 游泳姿势; 描边, 笔画; 轻抚, 抚摸

what a beautiful stroke

he likes breast stroke / butterfly stroke

can i stroke your dog?

stroke: 是可数名词, 也是一个 规则动词: strokes, stroked , stroking..

在gimp中, stroke 还可以作为: 给选区 描边(用这个方式来绘制 矩形, 椭圆等...): stroke a selection: paint along the selection outline.


不管是logs, 还是.git下的 HEAD, 都是对应的refs/heads/下的对应 版本头的指针. 如: .git /HEAD 是.git/refs/heads/master...等的链接指针

在 .git/logs/heads/HEAD中, 记录了版本指针头 指向的变化情况: logs/refs/heads/... 也存放了多个指针...

在commit记录中, 的 2 insertions(+), 1 deletion(-) 表示 的是 改变的/增加的/删除的 行数...

我们说要回滚到 之前的某个版本, 是 "针对"某个 具体的 分支而言的, 可以 是主分支master, 也可以是 其他分支而, 但 不是针对所有的分支 而言的. 因为每个分支, 都有独立的, 互不干涉的commit记录. 不同的分支, 如同白天和黑夜一样, 永远不会相交. 相互间是相互隔离i的空间...

所以, 你要回滚到 之前的某个 commit. 回滚到之前的某个版本, 就先 "查看" 你当前所在的分支的commit 记录. 然后, 根据这个提交记录来 回滚:

git reset的命令格式: 有三种形式, 通常使用的是第三种形式: in the third form, ... , reset the current branch HEAD to the special commit.

使用 git reset --soft eecb后, 就只有三次提交记录了. (但是, 由于这是使用的是--soft, 所以只是回滚了commit提交记录, index和working tree都没有改变, 然后, 重新提交, commit后, 又有了4 次提交记录, 但是这时的 第4次的 object对象的sha-1 值就不再是原来的 sha-1值了, 表示对象已经改变 : 原来的第4次 commit时的 object sha-1: d6c4...., 后来的object的 sha-1: d305

第二次, 使用git reset --hard 3971, 这时, 提示HEAD 都变了, 回滚到第2次提交时的状态了, 连commit 版本库, index,和working tree都 回滚到第二次的 状态了:



最后, 小结: git对象的sha-1: 共160 bits, 共 40 个16进制的 字符. 而第一次提交时, 的 sha-1是 40个0, 表示, 原来没有提交, 所以全是0.... 回滚到某个 commit时的状态, 的commit, 只需要前面几位 字符就可以了, 如前面的 4位字符.

如何查看.git/objects中 的对象的内容:

主要有两个命令: git cat-file / 和 git ls-tree , 重要的时 git cat-file命令:

git cat-file 专门是查看object的内容的: 有两种用法:

  • git cat-file -t (查看对象: 可以是 commit的提交sha-1名字, 也可以是 tree的sha-1): 这个是确定sha-1数字序列的类型
  • git cat-file 类型[commit/blob] 要查看具体内容的 sha-1
  • 由截图可以看出, objects的树 tree的 blob中, 确实是存放了 源代码的 内容: 因为每次提交, 都生产了一个tree, 而一个 tree中, 包括blob, 和 子树. blob的内容中, 正是 存储了 提交的 源文件的 代码!!!
  • 如何 列出 一棵树中 保存的内容呢? 显示树的 目录结构的命令, 就是: git ls-tree 树的sha-1

如何查看.git下的objects中的内容?

  1. 包括可能的几种对象: commit对象, tree对象, blob对象, 子tree对象, tag对象等等
  2. 每种对象的命名和组织方式: 先直到对象的40位sha-1 字符序列, 然后, 取对象的前两位字符作为文件夹名称, 然后在文件夹里面包含文件, 文件名称是 sha-1的后38位字符..

  3. 比如一个blob对象, 它是存放具体的/实际的源代码内容的, 它的 40位sha-1字符序列中, 它的前2位字符作为目录名称, 后面的38位字符组成的文件放在这个目录中, 这个文件就存放提交的 当前这次commit时的源文件的 源代码...
  4. 这些对象文件都是 不可读的, 因为他们都是 压缩过了的, 同时 给原文件 加上 标注 文件的 类型和长度 的文件头 信息....(所以跟原文件的字节数不同, 一般比原文件大 10几 , 20几个字节)..


Mohs: 德国矿物学家,摩氏硬度. 它说: 10种矿物质的硬度从1到10, 滑石的硬度=1,..., 正长石的硬度=6, 石英=7, 黄石=8, 刚玉=9, 金刚石=10. 材料遭受冲击时的强度, 是美国二战时发展起来的 "冲击力学". 强度(通常的强度, 是指抗拉强度) strenthen, 硬度hardness, 抗压强度, 抗裂强度: fracture toughness.几个名词, 是不同的. 硬度和抗压强度的区别, 前者是材料抵抗更硬的物体, 侵入材料表面的能力, 而抗压强度则是 物体整体 抵抗破碎的 能力.


关于git/config/[core] 中 文件的filemode=true?

它是说, 如果修改了文件的mode, 如用chmod改变了文件的模式, 但是 没有修改文件的源代码的 文本内容, 要不要把文件看成是修改了的, 再git diff的时候, 报出了?


杂项:

加密算法: RSA: 谐音"瑞萨", 日本东京都(tokyo: t2ukj2u) 亚洲第一大城市, 世界三大城市: 东京-伦敦-纽约. 瑞萨半导体是由日立和三菱共同创建的...是家电, 汽车电子的全球十大半导体公司. RSA 公钥加密算法, 是由三位麻省理工的科学家发明的.

量子计算机是针对 不可逆计算机 而建造的, quantum computer, 量子距离: 从A点到B点,可以不经过ab之间的任何一点.从a点消失, 在b点可以同时出现. 奥地利物理学家薛定谔之猫, 是用来描述量子的 叠加态的...

在RSA算法, 现在面对 "并行计算"和 "量子计算机", 也不是坚不可摧的了...

RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

RSA算法, 是一种非对称算法, 不像其他加密算法, 加密和解密密钥都是一个, 它是一对密钥, 一个是加密密钥, 是pk, 是公开的, 对原文使用pk进行E(encrypt)加密算法, 生成可以在网络上公开传播的密文, 其他任何人都可以得到 pk和 密文, 甚至 decrypt(D解密算法), 但是, 由于解密的 私钥 在信息所有者手中, 所以你是无法还原原始信息的 这个过程如下图所是:


当从github上下载git仓库后, 连同工作目录和.git仓库都会被 clone下来. .git目录所在的父目录就是 工作目录, 而且, 从work tree= working space = working directory 到 index 到 commit后, 才是真正的repo仓库. .gitignore文件 通常就放在 工作目录下:

git版本控制管理实践-2的更多相关文章

  1. git版本控制管理实践-4

    vcs: version control system 版本控制系统 local vcs, 集中式版本控制系统: centralized vcs; 分布式vcs: distributed vcs Lo ...

  2. git版本控制管理实践-3

    git -m 和git -a -m(-am) . 的区别? usally two steps to commit files to respository: first, git add somefi ...

  3. Git 版本控制管理(二)

    Git 分支管理 1. 概念 我们来抽象的理解,分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN.如果两个平行宇宙互不干扰,那对现在的你也 ...

  4. 利用Git版本控制管理你的项目

    准备工作 项目创建完成后,将项目版本控制起来,今后每个版本的迭代会非常清楚,同时也有助于项目进行协同开发. 还有一个十分重要的问题是:项目上线后,线上的运行的程序的配置与线下进行测试的配置文件是不一样 ...

  5. Git版本控制管理学习笔记1-介绍

    几乎所有的版本控制工具都是出于同样的目的:开发以及维护开发出来的代码,方便读取代码的历史,记录所有的修改.这里,介绍的是当前在开源社区内非常流行的版本控制工具Git.它是由Linus Torvalds ...

  6. Git版本控制管理教程(一):介绍

    我的个人博客地址:damienzhong.com 原文链接:点击打开链接 1.1 背景 数据是短暂的,且容易丢失的,特别是作为开发人员的我们每天频繁的对项目代码进行更新,容易产生错误代码的变更或者项目 ...

  7. Git 版本控制管理(一)

    Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git  —— The stupid content tracker(傻瓜式的内容跟踪器) 关于 Git 的 ...

  8. Git版本控制管理学习笔记4-文件管理和索引

        可以认为使用Git时,我们会遇到3个空间:工作目录.索引.版本库.我们关心的,就是在新建.修改等操作时,这三者之间发生了怎样的变化.     笼统的讲,就是在工作目录下编辑,在索引中积累修改, ...

  9. Git版本控制管理学习笔记3-基本的Git概念

    为了更近一步的学习和理解Git的理念,这一节介绍一下Git中的一些基本概念. 基本概念 对象库图示 Git在工作时的概念 一.基本概念: 1.版本库:     Git的版本库就是一个简单的数据库,其中 ...

随机推荐

  1. day1学习

    python 2 和 3 的区别 1.用户输入的命令:python 2 中是raw_input(""):python 3 中是input(""). 2.默认字符 ...

  2. MVC架构学习之Smarty学习——病来而蔫

    前两天是五一小长假,而每次假期都想着如何如何刻苦一番,往往是自作多情.. 当然这次是有小病在身,多个借口吧. 一有病就蔫的不行...要锻炼了啊,脚估计也差不多了,游泳试试吧这周. 这次学习Smarty ...

  3. sublime 安装笔记

    sublime 安装笔记 下载地址 安装package control 根据版本复制相应的代码到console,运行 按要求重启几次后再按crtl+shift+p打开命令窗口 输入pcip即可开始安装 ...

  4. CF444C. DZY Loves Colors[线段树 区间]

    C. DZY Loves Colors time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  5. 用于部署war并重启Tomcat的脚本

    只需要定义两个变量, 一个是目标tomcat实例的目录, 另一个是war包的名称 # Please define the absolute path of tomcat instance THIS_T ...

  6. css 实现未知图片垂直居中

    1.demo html部分 <div class="demo">      <a href="#"><img src=" ...

  7. CSS实现背景透明,文字不透明(兼容各浏览器)

    在 FF/Chrome 等较新的浏览器中可以使用css属性background- color的rgba轻松实现背景透明,而文字保持不透明.而IE6/7/8浏览器不支持rgba,只有使用IE的专属滤镜f ...

  8. Windows Live Writer 2012 on .net 4

    众所周知,强大的live套件不再更新,止步于2012,所以安装的时候需要.net 3.5的运行时,这很讨厌,在新系统里面是.net 4运行时的,.net运行时的设计者脑袋张虫,新的居然不默认支持旧的程 ...

  9. 聚类算法:K-means

    2013-12-13 20:00:58    Yanjun K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大.该算法认为簇是由距离 ...

  10. 1122MySQL性能优化之 Nested Loop Join和Block Nested-Loop Join(BNL)

    转自http://blog.itpub.net/22664653/viewspace-1692317/ 一 介绍  相信许多开发/DBA在使用MySQL的过程中,对于MySQL处理多表关联的方式或者说 ...