Mac和PC在工作中管理的对比(5)
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)的更多相关文章
- Linux 运维工作中的经典应用ansible(批量管理)Docker容器技术(环境的快速搭建)
一 Ansible自动化运维工具 Python 在运维工作中的经典应用 ansible(批量管理操作) .安装ansible(需要bese epel 2种源) wget -O /etc/yum.rep ...
- 写程序该选Mac 还是PC ?(转)
原文链接:http://gogojimmy.net/2012/04/07/why-programmer-should-use-mac/ 序 一个竞争的市场,就会有对立的产生,这世界存在着很多不同的领域 ...
- [工作中的设计模式]解释器模式模式Interpreter
一.模式解析 解释器模式是类的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器.客户端可以使用这个解释器来解释这个语言中的句子. 以上是解释器模式的类图,事实上我 ...
- MWeb 1.4 新功能介绍一:引入文件夹到 MWeb 中管理,支持 Octpress、Jekyll 等静态博客拖拽插入图片和实时预览
之前在 MWeb 中打开非文档库中的 Markdown 文档,如果文档中有引用到本机图片,是没办法在 MWeb 中显示出来和预览的.这是因为 Apple 规定在 Mac App Store(MAS) ...
- 在Mac OS X 10.8中配置Apache + PHP + MySQL
在Mac OS X 10.8中配置Apache+PHP+MySQL的内容包括: 配置Apache 配置PHP 安装MySQL 配置PHPAdmin 设置数据库默认字符集 一. 配置Apache 1. ...
- 5 个在 Linux 中管理文件类型和系统时间的有用命令
对于想学习 Linux 的初学者来说要适应使用命令行或者终端可能非常困难.由于终端比图形用户界面程序更能帮助用户控制 Linux 系统,我们必须习惯在终端中运行命令.因此为了有效记忆 Linux 不同 ...
- 工作中常用的QTP操作Excel函数
前言 本文只是对工作中常用的EOM相关函数的整理,并不是要写个大而全的操作手册,如果想对EOM有更多的了解可以参考QTP的帮助文档或查看QTP安装目录\CodeSamplesPlus\UsingExc ...
- 在Mac OS X 10.8中配置Apache+PHP+MySQL
在Mac OS X 10.8中配置Apache+PHP+MySQL的内容包括: 配置Apache 配置PHP 安装MySQL 配置PHPAdmin 设置数据库默认字符集 一. 配置Apache 1. ...
- docker中管理数据
到目前我们介绍了一些Docker的基础概念, 知道了如何使用Docker的image, 也知道了如何在多个container间通过网络通讯. 在这章里我们将介绍如何在docker的container内 ...
随机推荐
- Codeforces Round #355 (Div. 2) D. Vanya and Treasure 分治暴力
D. Vanya and Treasure 题目连接: http://www.codeforces.com/contest/677/problem/D Description Vanya is in ...
- macbook pro 开发帮助
java安装目录 /Library/java/JavaVirtualMachines/ 设置快捷目录 vim .bash_profile 文件中追加一下信息:export dirname=目录路径 重 ...
- JDK篇
卸载系统自带的jdk 使用以下命令查看是否已经安装了jdk rpm -qa|grep java rpm -qa|grep jdk 如果已经安装了可能会得到下面的结果: java-1.4.2-gcj ...
- Smali语法简单介绍
Smali语言其实就是Davlik的寄存器语言: Smali语言就是android的应用程序.apk通过apktool反编译出来的都有一个smali文件夹,里面都是以.smali结尾的文件,文件的展示 ...
- 数据库中间件OneProxy and onemysql
http://blog.itpub.net/28944233/cid-176181-list-1/ http://www.onexsoft.com/ 官网 http://pan.baidu.com/s ...
- 使用Bootstrap 3开发响应式网站实践07,页脚
页脚部分比较简单,把一个12列的Grid切分. <footer> <div class="container"> <div class="r ...
- MVC单元测试,使用Repository模式、Ninject、Moq
本篇使用Repository设计MVC项目,使用Ninject作为DI容器,借助Moq进行单元测试. 模型和EF上下文 模型很简单: public class Foo { public int Id ...
- 使用docker exec命令
这个命令使用exit命令后,不会退出后台,一般使用这个命令,使用方法如下 docker exec -it db3 /bin/sh 或者 docker exec -it d48b21a7e439 / ...
- Python脚本报错AttributeError: 'module' object has no attribute 'maketrans'
出现此错误的原因:是此文件smtp02.py 所在的目录下有string.pyc 的文件存在,与python库里的string.pyc冲突造成无法确认编译所取的类库.
- iOS Sprite Kit最新特性Physics Field虚拟物理场Swift測试
在WWDC2014上,Sprite Kit又有了非常多新的提升! 当中一个非常有意思的东西就是Physics Field!也就是物理场! 这意味着我们在Sprite kit上编写虚拟物理场的游戏将变得 ...