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.
在mac上, 目前有多重手段可以用來達到細化訪問控制的目的. 一般來說, 有些情況依然可以使用檔案的acls來達到訪問控制的目的, 比如設定印表機的ppd檔案的訪問, 可以控制對印表機訪問的使用者和使用者組. 另外乙個手段就是使用mcx了, 另外一篇中有介紹. 有的情況是, 每個應用/服務本身支援在配置檔案中對使用者/組訪問進行控制, 比如對印表機的控制, 下面是cupsd.conf檔案中定義, 使用者新增更改刪除印表機的預設設定:
authtype default
require user @system
order deny,allow
如果把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比較分散, 甚至有些凌亂.
HTML在工作中的使用
本文是在學習html的時候,心血來潮嘗試的做法。純屬瞎玩,不可當真。工作中編輯郵件 在管理系統上進行任務編輯 描述時,都可能會使用到html的簡單知識。有一些簡單的標籤可以幫助我們更好的完成工作,比如字型加粗 換行等。比如我在辦公系統上編輯乙個task的時候使用了html,使得這個task的描述展示...
Kafka在工作中的體現
建立topic bin kafka topics.sh create zookeeper localhost 2181 replication factor 1 partitions 2 topic test 檢視topic bin kafka topics.sh list zookeeper lo...
MYSQL在工作中的應用
1 多表操作,必須開啟事務 2 陣列儲存db可以使用json序列化。主要是考慮json是比較通用的資料格式,如果使用分隔符拼接必須單獨約定乙個分隔符。choicestr fmt.sprintf v,choice strings.trimright choicestr,choicebyte,err j...