在鳥哥私房菜的裡,幾乎開始就是詳細介紹了Linux的用戶和用戶組。不過剛剛開始玩的時候,大家應該還是更喜歡777吧。。。。無奈,做人總是要進化的嘛。我這裡重新整理了用戶和用戶組相關的一些資料,不常用的命令參數都不介紹了。
A. 管理員 root:具有所有權限的用戶,UID的值為0。
B. 普通用戶:我們正常創建的用戶,UID為500~60000。
C. 系統用戶:保障系統運行的用戶,一般不提供密碼登錄系統,UID為1~499。
與用戶相關的文件主要有/etc/passwd和/etc/shadow。
A. /etc/passwd
存放用戶的基本屬性,從該文件可以查看Linux的所有用戶。格式為:
【用戶名:密碼:用戶ID:用戶主組ID:用戶詳細信息(如姓名,年齡,電話等):用戶根目錄:用戶編程環境】
每個用戶有1個主組(私有組),1個或者多個附加組。
B. /etc/shadow
存放用戶密碼的一些策略,格式為:
【用戶名:密碼:最近更改密碼的日期:密碼不可更該的天數:密碼需要重新更改的天數:密碼更改前的警告期限:密碼過期的寬限時間:帳號失效日期:保留】
1.新增用戶:useradd -d 根目錄 -g 主組 -G 附加組列表(逗號隔開) 用戶名
2.重置密碼:passwd 用戶名
3.修改用戶:usermod -d 根目錄 -g 主組 -G 附加組列表(逗號隔開) 用戶名---------該命令的-G會把用戶從原來的附加組移出來,可以使用-a參數指明是新增模式。
4.刪除用戶:userdel -r 連根目錄一起刪除 用戶名
5.查看所有用戶:cat /etc/passwd
6.查看單個用戶詳細:id 用戶名
7.查看當前所有的登錄用戶:who
用戶組是用戶的容器,用戶能從用戶組繼承權限。
A. 普通用戶組:可以加入多個用戶。
B. 系統用戶組:一般加入一些系統用戶。
C. 私有用戶組:創建用戶的時候,如果沒有指明用戶組,都會為該用戶創建一個同名的用戶組。私有用戶組其實也是普通用戶組的一種。
與用戶相關的文件主要有/etc/group和/etc/gshadow。
A. /etc/group
存放組的基本信息。格式為:
【組名:組密碼:組ID:用戶列表】
B. /etc/gshadow
可以參考用戶的/etc/shadow
1.新增組:groupadd -g UID號 組名---------如果不指定UID號則自動生成。
2.修改組:groupmod -n 組名 新組名----------可以用來改組名。
3.刪除組:groupdel 組名-------------如果組內還有用戶,則無法刪除。
4.查看所有組+查看某個組內的用戶:cat /etc/group。
5.查看用戶的組信息:id 用戶名
輸出:
uid=501(weinianjie) gid=501(weinianjie) groups=501(weinianjie),0(root)
gid是主組,groups是附加組。
6.將用戶添加入組裡:gpasswd -a 用戶名 組名
7.將用戶從組裡移除:gpasswd -d 用戶組 組名
用戶創建了一個文件或者文件夾,默認是什麼權限呢?
這個跟環境掩碼有關系,全局環境掩碼是配置在/etc/profile裡面。用戶可以在自己根目錄下創建.bashrc文件寫入umask xxx來設置私有掩碼。當然,也可以使用umask命令在當前終端設置掩碼,不過下次登錄後又會被重置了。這個跟PATH是一個道理的。
直接umask即可查看當前環境的掩碼,umask xxxx可以臨時更改當前環境的掩碼。
說了那麼多,到底該怎麼理解umask呢?
我們的文件或者文件夾擁有rwxrwxrwx權限,也就是777。掩碼有4位,第一位是所謂的guid,一般為0或者直接不寫第1位,而使用3位的掩碼。
777-掩碼=新建目錄的權限;
666-掩碼=新建文件的權限。
比如掩碼是022(或者0022),則新建目錄的權限是755,也就是rwxr-xr-x;新建的文件權限是644,也就是rw-r--r--。Linux為了安全起見,不允許新建的文件帶有x屬性,所以新建文件的最大權限是666,這也是為什麼對於文件需要使用666來減。如果相減後有-1的情況,則當成0來處理。