# 權限問題
如果有過linux基礎的人,就會明白這個權限問題。其實*nix的系統,都是一個root用戶,然后自己創建其他用戶使用。用戶和用戶之前通過權限互相獨立。
對一般的用戶而言,不需要太關注這個權限問題,但是對程序員來說,這一點應該是必知必會的。不然我們常常會被`npm install -g xx`出現的報錯而不知所措。
### root:“超級用戶”
在 Mac OS X 中,在安裝系統時將會創建一個名為 root 的超級用戶。 root 用戶對計算機上的所有文件和文件夾都有完全的訪問權限,并且還具有一般用戶沒有的其他管理訪問權限。在計算機的正常使用中,您并不需要以 root 用戶的身份登錄。事實上,默認情況下, root 用戶是被禁用的。
### 普通用戶
mac系統創建的用戶,會和root在一個group中,一般叫做`staff`或者`admin`。root用戶的權限高于其他用戶。
### 定義的權限
- 讀取 (r--)
- 寫入 (-w-)
- 執行 (--x)
當您可以做到所有三種操作時,您就擁有了“rwx”權限。文件夾的權限與此類似。具有內含文檔的文件夾的只讀權限,您可以打開和讀取其中的文檔,但不能保存對該文件夾所做的更改,也不能為該文件夾添加新的文檔。只讀 (r--) 權限是常用于客戶訪問的文件共享。
### 所有者、組、其他
像“rwx”和“r-x”這樣的簡寫描述了一個用戶或一個實體的權限。每個文件或文件夾的權限設置都定義了三個實體的訪問能力:所有者、組和其他。
- 所有者: 所有者通常是創建該文件的用戶。在您的 root 目錄下的幾乎所有文件和文件夾都將您的用戶名列作所有者。
- 組: Admin 用戶就是一些被稱為“staff”和“admin”的組的成員。超級用戶“root”是這些及其他一些組的成員。通常情況下,所有文件和文件夾都被分配到“staff”、“admin”或“wheel”等組中。
- 其他: 其他是指某個文件或文件夾的所有者或組成員之外的其他所有用戶。
因為每個實體都有其自己的權限,如一個完整的權限組可能為“-rwxrw-r--”。前面的連字符指定該項目是一個文件而不是文件夾。文件夾的權限以“d”開頭,如“drwxrw-r--”。“d”代表 directory(目錄),表示文件夾。
### 使用 Terminal 查看權限
在終端中輸入`list -l`,你會得到類似如下的信息:
~~~
total 0
drwx------ 6 leohxj staff 204B Jan 27 21:50 Applications
drwx------+ 3 leohxj staff 102B Mar 11 14:54 Desktop
drwx------+ 7 leohxj staff 238B Jan 18 22:11 Documents
drwx------+ 5 leohxj staff 170B Mar 10 23:39 Downloads
drwx------@ 16 leohxj staff 544B Mar 11 14:54 Dropbox
drwx------@ 62 leohxj staff 2.1K Jan 17 23:22 Library
drwx------+ 4 leohxj staff 136B Jan 3 21:37 Movies
drwx------+ 7 leohxj staff 238B Jan 6 09:45 Music
drwx------+ 8 leohxj staff 272B Feb 7 15:23 Pictures
drwxr-xr-x+ 6 leohxj staff 204B Jan 6 10:28 Public
~~~
- `drwx------`:這一段是對文件或者目錄的用戶權限描述,d代表目錄,后面九個字符,每三個為一組,代表所有者,組成員和其他用戶。
- `leohxj`:這一欄表示所有者。
- `staff`: 這一欄表示所在組。
### 參考資料
- [Mac OS X 中權限問題的故障排除](https://support.apple.com/zh-cn/HT2963)
- 介紹
- 程序員基礎知識
- 字符編碼
- 技術名詞
- 語義化版本
- 命名規范
- 書寫文檔
- 開源協議
- 目錄結構
- 正則表達式
- 平凡之路
- 數據結構與算法
- 堆和棧
- 浮點數類型
- XML和JSON
- 算法學習之路
- 排序算法
- 代碼架構
- 設計模式
- 常用的Javascript設計模式
- 面向對象編程
- 繼承
- 多態
- 封裝
- 面向接口編程
- 代碼評審
- 六種量化你代碼的方式
- 程序員必備的代碼審查(Code Review)清單
- 服務器部署
- AWS簡介
- 網絡知識
- HTTPS, SPDY和 HTTP/2性能的簡單對比
- HTTP狀態碼
- 懂點設計
- 佳作賞析
- 無縫平鋪
- Sketch學習
- 設計與實現的平衡
- 寫點東西
- 使用gitbook
- 合格的PM
- 一個好的產品經理
- 產品經理的技能
- 團隊合作
- 關于招聘
- 培訓新人
- 領導能力
- 獲取知識
- MOOC
- Podcasts
- 英語學習
- 設計學習
- 前端學習
- iOS學習
- 游戲開發
- 關注健康
- 過勞檢測
- 關于睡眠
- 提升效率
- 學會閱讀
- 學會提問
- 善用搜索
- 學會寫作
- 時間管理
- 知識管理
- 文件管理
- 密碼管理
- 制作視頻
- 制作PPT
- 論音樂對效率的影響
- 程序員效率指南
- SOHO
- 創業資源
- Hacker
- 保護隱私
- 關于工作
- 找工作前需要思考的問題
- 原則與技巧
- 關于簡歷
- 其他方面
- 硬件相關
- 常用軟件
- Windows
- 硬件配置
- 系統安裝
- 常用軟件
- Mac
- 通用設置
- 權限問題
- alias設置
- 常用軟件
- 開發環境
- 快捷鍵設置
- 常用終端命令
- dotfiles
- Android
- 常用軟件
- 如何登錄美國區GooglePlay
- 開發工具
- git
- EditorConfig
- node
- shadowsocks
- ST3--Windows篇
- ST3--Mac篇
- gulp
- 字體的選擇
- Emacs
- WebStorm
- tmux
- Sketch
- Sketch中文學習資料
- Trello
- 使用Trello管理項目的經驗
- git進階
- 15分鐘學會使用Git和遠程代碼庫
- GitHub秘籍
- JetBrains
- IDE設置
- 附錄
- 計算機科學與技術
- 網站
- 書籍
- 工具