ACLs, 企业应用必备

Windows:
ACLs是Access Control Lists的缩写, 存取控制列表/访问控制列表. 它已经在大多数的现代操作系统中得到支持.
系统安全就是通过ACLs来实现的. 广义说, 一个对象要访问另外一个, 那么就要提交自己的对象

Windows很早在NT时开始就支持ACLs, 而且稳定, 图形界面的操作直观, 可以说是支持ACLs最广的系统, 不仅仅是文件, 还可以控制打印机,注册表和服务等等, 可以说每个Windows的对象都可以用ACLs管理.

管理上, 除了图形界面每个对象的属性中的安全设置, 命令行也有如cacls.exe, 第三方的工具SetACL等, 脚本和API也都有.
在这方面, Windows可以说是最好的.

Mac:
OSX系统从老虎10.4才开始正式支持基于文件的ACLs. 因为OS X是符合UNIX标准的核心, 它同时支持POSIX和ACLs, 两者互相配合, 完成对安全的细致控制, 以满足各种应用环境的要求. 但是OS X目前只是实现了对文件系统的ACLs支持, 还没有推广到其他系统对象.

现实一个文件的ACLs列表, 可以使用ls命令的-e来查看, 使用chmod来对ACLs进行操作.比如
touch a.txt
chmod +a "admin allow write" a.txt
ls -le a.txt
应该显示:
-rw-r--r--+ 1 admin  staff  4 22 Apr 13:12 a.txt
 0: user:admin allow write
我的博文:"Unix File Permissions and ACLs in OS X", 详细介绍了ACLs.
http://blog.csdn.net/afatgoat/article/details/3462131

在Mac上, 目前有多重手段可以用来达到细化访问控制的目的. 一般来说, 有些情况依然可以使用文件的ACLs来达到访问控制的目的, 比如设置打印机的ppd文件的存取, 可以控制对打印机访问的用户和用户组. 另外一个手段就是使用MCX了, 另外一篇中有介绍. 有的情况是, 每个应用/服务本身支持在配置文件中对用户/组存取进行控制, 比如对打印机的控制, 下面是cupsd.conf文件中定义, 用户添加更改删除打印机的默认设置:
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

如果把user, 换为admin用户组,那么普通用户就无法添加更改删除打印机了.

其实OS X系统本身也维护者一个叫做authorization的文件, 这个文件中记录着用户访问权限的系统默认设定, 特殊情况下可以改变, 不过要特别注意, 一旦该文件被毁坏, 可能致使系统无法启动.

OS X这样的*nix的一个特性是, root用户是这个系统的至高无上者, 他可以干任何想干的事情, 所以root用户不受任何POSIX或者ACLs的制约, 而系统服务等, 好多是以root用户身份执行的, 当然现在在Mac上, 有好多应用/服务级别的程序会以自己的管理者身份运行, 比如打印机的_lp是打印机服务的用户.

使用下面的命令可以看到,OS X有很多内置的用户, 这些以"_"开头, ID在500以下的都是系统内置用户, 特殊用户, root的ID永远是0, 第一个用户-一般是安装是创建的第一个管理员用户, 它的ID是501.
dscl . list /Users UniqueID
要看用户组, 使用命令
dscl . list /Groups

需要注意的是, 在混合环境中, OS X和Windows用户交叉访问对方的服务器, 在设置ACLs的时候, 他们之间有可能出现水土不服的现象.

小结:
从上面来看, Windows对ACLs的支持是全面的, 而OS X比较分散, 甚至有些凌乱.

Mac和PC在工作中管理的对比(5)的更多相关文章

  1. Linux 运维工作中的经典应用ansible(批量管理)Docker容器技术(环境的快速搭建)

    一 Ansible自动化运维工具 Python 在运维工作中的经典应用 ansible(批量管理操作) .安装ansible(需要bese epel 2种源) wget -O /etc/yum.rep ...

  2. 写程序该选Mac 还是PC ?(转)

    原文链接:http://gogojimmy.net/2012/04/07/why-programmer-should-use-mac/ 序 一个竞争的市场,就会有对立的产生,这世界存在着很多不同的领域 ...

  3. [工作中的设计模式]解释器模式模式Interpreter

    一.模式解析 解释器模式是类的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器.客户端可以使用这个解释器来解释这个语言中的句子. 以上是解释器模式的类图,事实上我 ...

  4. MWeb 1.4 新功能介绍一:引入文件夹到 MWeb 中管理,支持 Octpress、Jekyll 等静态博客拖拽插入图片和实时预览

    之前在 MWeb 中打开非文档库中的 Markdown 文档,如果文档中有引用到本机图片,是没办法在 MWeb 中显示出来和预览的.这是因为 Apple 规定在 Mac App Store(MAS) ...

  5. 在Mac OS X 10.8中配置Apache + PHP + MySQL

    在Mac OS X 10.8中配置Apache+PHP+MySQL的内容包括: 配置Apache 配置PHP 安装MySQL 配置PHPAdmin 设置数据库默认字符集 一. 配置Apache 1. ...

  6. 5 个在 Linux 中管理文件类型和系统时间的有用命令

    对于想学习 Linux 的初学者来说要适应使用命令行或者终端可能非常困难.由于终端比图形用户界面程序更能帮助用户控制 Linux 系统,我们必须习惯在终端中运行命令.因此为了有效记忆 Linux 不同 ...

  7. 工作中常用的QTP操作Excel函数

    前言 本文只是对工作中常用的EOM相关函数的整理,并不是要写个大而全的操作手册,如果想对EOM有更多的了解可以参考QTP的帮助文档或查看QTP安装目录\CodeSamplesPlus\UsingExc ...

  8. 在Mac OS X 10.8中配置Apache+PHP+MySQL

    在Mac OS X 10.8中配置Apache+PHP+MySQL的内容包括: 配置Apache 配置PHP 安装MySQL 配置PHPAdmin 设置数据库默认字符集 一. 配置Apache 1. ...

  9. docker中管理数据

    到目前我们介绍了一些Docker的基础概念, 知道了如何使用Docker的image, 也知道了如何在多个container间通过网络通讯. 在这章里我们将介绍如何在docker的container内 ...

随机推荐

  1. python开发_tkinter_获取单选菜单值

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  2. UVA 350 Pseudo-Random Numbers

     Pseudo-Random Numbers  Computers normally cannot generate really random numbers, but frequently are ...

  3. C#高级编程9-第1章.NET体系结构

    C#与NET的关系 C#编写的所有代码必须使用.NET FrameWork运行 C#是一种语言,但它本身不是.NET的一部分 C#一些特性,.NET不支持,.NET一些特性,C#不支持 公共语言运行库 ...

  4. tomcat-调整内存参数

    查看Tomcat的默认内存参数: <% /; /; /; out.println("max="+max); out.println("total="+to ...

  5. 使用postMessage进行react和iframe的数据通信.md

    将react的数据传递给iframe 1.首先在父组件(react文件)内引入iframe <iframe style={{border:0,width:"100%",hei ...

  6. spring---transaction(6)---事务的配置

    1 写在前面 上一篇我们了解到spring的事务的体系.这里我们将结合上篇讲spring事务的配置 2 Spring的三种事务配置形式 2.1 使用TransactionProxyFactoryBea ...

  7. 最小生成树-普利姆算法eager实现

    算法描述 在普利姆算法的lazy实现中,参考:普利姆算法的lazy实现 我们现在来考虑这样一个问题: 我们将所有的边都加入了优先队列,但事实上,我们真的需要所有的边吗? 我们再回到普利姆算法的lazy ...

  8. Git提交空文件夹的技巧

    这个只能说是技巧不能说是方法,原理是在每个空文件夹新建一个.gitignore文件,然后提交. 快捷命令: find . -type d -empty -exec touch {}/.gitignor ...

  9. Linux shell命令中expr

    在Linux shell命令中expr虽然不是很起眼,但是它的作用是非常大的!到目前为止,我个人看来最大的作用就是两个——四则运算和字符串的操作. 先说四则运算,在Shell中四则运算不能简简单单的加 ...

  10. java基础学习总结——对象转型

    一.对象转型介绍 对象转型分为两种:一种叫向上转型(父类对象的引用或者叫基类对象的引用指向子类对象,这就是向上转型),另一种叫向下转型.转型的意思是:如把float类型转成int类型,把double类 ...