歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux的用戶和用戶組

在鳥哥私房菜的裡,幾乎開始就是詳細介紹了Linux的用戶和用戶組。不過剛剛開始玩的時候,大家應該還是更喜歡777吧。。。。無奈,做人總是要進化的嘛。我這裡重新整理了用戶和用戶組相關的一些資料,不常用的命令參數都不介紹了。

1.用戶

1-1.用戶類型

A. 管理員 root:具有所有權限的用戶,UID的值為0。

B. 普通用戶:我們正常創建的用戶,UID為500~60000。

C. 系統用戶:保障系統運行的用戶,一般不提供密碼登錄系統,UID為1~499。

1-2.用戶相關文件

與用戶相關的文件主要有/etc/passwd和/etc/shadow。

A. /etc/passwd

存放用戶的基本屬性,從該文件可以查看Linux的所有用戶。格式為:

【用戶名:密碼:用戶ID:用戶主組ID:用戶詳細信息(如姓名,年齡,電話等):用戶根目錄:用戶編程環境】

每個用戶有1個主組(私有組),1個或者多個附加組。

B. /etc/shadow

存放用戶密碼的一些策略,格式為:

【用戶名:密碼:最近更改密碼的日期:密碼不可更該的天數:密碼需要重新更改的天數:密碼更改前的警告期限:密碼過期的寬限時間:帳號失效日期:保留】

1-3.用戶命令

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

2.用戶組

2-1.用戶組類型

用戶組是用戶的容器,用戶能從用戶組繼承權限。

A. 普通用戶組:可以加入多個用戶。

B. 系統用戶組:一般加入一些系統用戶。

C. 私有用戶組:創建用戶的時候,如果沒有指明用戶組,都會為該用戶創建一個同名的用戶組。私有用戶組其實也是普通用戶組的一種。

2-2.用戶組相關文件

與用戶相關的文件主要有/etc/group和/etc/gshadow。

A. /etc/group

存放組的基本信息。格式為:

【組名:組密碼:組ID:用戶列表】

B. /etc/gshadow

可以參考用戶的/etc/shadow

2-3.用戶組命令

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 用戶組 組名

3.默認文件和文件夾權限

用戶創建了一個文件或者文件夾,默認是什麼權限呢?

這個跟環境掩碼有關系,全局環境掩碼是配置在/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來處理。

Copyright © Linux教程網 All Rights Reserved