Linux用戶和用戶組以及相關權限

Linux用戶和用戶組以及相關權限html

注意:如下示例使用MacOS說明linux

示例一,該目錄下只有一個軟連接,顯示該目錄下的全部文件和目錄的詳細信息nginx

➜  nginx ls -al
total 8
drwxr-xr-x   3 xinxingegeya  staff  102  6 22 17:21 .
drwxr-xr-x  18 xinxingegeya  staff  612  6 21 18:20 ..
lrwxr-xr-x   1 xinxingegeya  staff   31  6 22 17:20 nginx.conf -> /usr/local/etc/nginx/nginx.conf

示例二,顯示指定文件的詳細信息,數據結構

➜  /etc ls -al hosts
-rw-r--r--  1 root  wheel  289  6 22 11:42 hosts

這裏的ls -al和linux中顯示的有所不一樣,不過差異不大,以上的各項分別表明的含義是:this

the access permissions------(-rw-r--r--)
the number of links to this file------(1)------(文件的硬連接數量)
the ownership (user and unix group which own it)------(root  wheel)------(文件的全部者和所屬的用戶組)
size in bytes------(289)------(文件的大小)
date of the last modification------(6 22 11:42)------(Month DAY_OF_MONTH TIME)------(文件的最後修改日期)
the name of the directory entry------(hosts)------(目錄或文件的名字)

目錄和文件權限

以下所示,unix

➜  /etc ls -al hosts
-rw-r--r--  1 root  wheel  289  6 22 11:42 hosts

當使用al選項會列出文件和目錄的詳細信息,最前面的第2~10個字符是用來表示權限。第一個字符通常用來區分文件和目錄:code

d:表示是一個目錄。
-:表示這是一個普通的文件。
l:表示這是一個符號連接文件,實際上它指向另外一個文件。
b,c:分別表示區塊設備和其餘的外圍設備,是特殊類型的文件。
s,p:這些文件關係到系統的數據結構和管道,一般不多見到。

第2~10個字符又分爲三部分,htm

rw-r--r--
rw- 擁有者(user)權限
r-- 用戶組(group)權限
r-- 其餘用戶(other)權限

MacOS常見的用戶和用戶組:blog

➜  ~ dscacheutil -q group
name: admin
password: *
gid: 80
users: root xinxingegeya

name: staff
password: *
gid: 20
users: root xinxingegeya

name: wheel
password: *
gid: 0
users: root

修改文件和目錄的用戶組-chgrp(change group)

修改文件和目錄的用戶組-chgrp(change group) 示例以下,遞歸

➜  helloworld ls -al
total 8
drwxr-xr-x   4 xinxingegeya  staff   136  6 22 14:21 .
drwxr-xr-x+ 89 xinxingegeya  staff  3026  6 22 14:21 ..
drwxr-xr-x   2 xinxingegeya  staff    68  6 22 14:21 dir1
-rw-r--r--   1 xinxingegeya  staff     6  6 22 14:20 hellworld.txt
➜  helloworld chgrp -R admin dir1
➜  helloworld ls -al
total 8
drwxr-xr-x   4 xinxingegeya  staff   136  6 22 14:21 .
drwxr-xr-x+ 89 xinxingegeya  staff  3026  6 22 14:22 ..
drwxr-xr-x   2 xinxingegeya  admin    68  6 22 14:21 dir1
-rw-r--r--   1 xinxingegeya  staff     6  6 22 14:20 hellworld.txt
➜  helloworld

將目錄dir1的用戶組修改成admin,命令chgrp(change group),R參數表示遞歸操做該目錄下的全部文件和目錄,

chgrp -R admin dir1

修改文件和目錄的擁有者和用戶組-chown(change owner)

修改文件和目錄的擁有者和用戶組-chown(change owner) 示例以下,

➜  helloworld ll
total 8
drwxr-xr-x  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt
➜  helloworld chown xinxingegeya:staff dir1
➜  helloworld ll
total 8
drwxr-xr-x  2 xinxingegeya  staff    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt
chown xinxingegeya:staff dir1

修改 dir1 目錄的擁有者爲xinxingegeya,其所在的用戶組爲staff。

當擁有者不存在時,以下

➜  helloworld chown xiaoming:staff dir1
chown: xiaoming: illegal user name

也能夠直接指定用戶組,好比,

➜  helloworld chown :admin dir1
➜  helloworld ll
total 8
drwxr-xr-x  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt

修改文件和目錄的權限-chmod(change mode)

修改文件和目錄的權限-chmod(change mode) 示例以下,

➜  helloworld ll
total 8
drwxr-xr-x  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt
➜  helloworld chmod g+w dir1
➜  helloworld ll
total 8
drwxrwxr-x  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt

給用戶組增長w權限,

chmod g+w dir1

使用符號模式改變文件和目錄的權限

使用符號模式能夠設置多個項目:who(用戶類型),operator(操做符)和permission(權限),每一個項目的設置能夠用逗號隔開。 命令chmod將修改who指定的用戶類型對文件的訪問權限,用戶類型由一個或者多個字母在who的位置來講明,示例以下,

➜  helloworld ll
total 8
drwxrwxr-x   2 xinxingegeya  admin    68  6 22 14:21 dir1
-rw-r--r--   1 xinxingegeya  wheel    10  6 22 14:28 hellworld.txt
➜  helloworld chmod u-x,g-x,o-x dir1
➜  helloworld ll
total 8
drw-rw-r--  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt

如下兩個命令等價,

chmod u-x,g-x,o-x dir1
chmod ugo-x dir1

使用八進制模式修改文件和目錄權限

chmod命令可使用八進制數來指定權限。文件或目錄的權限位是由9個權限位來控制,每三位爲一組,它們分別是文件全部者(User)的讀、寫、執行,用戶組(Group)的讀、寫、執行以及其它用戶(Other)的讀、寫、執行。歷史上,文件權限被放在一個比特掩碼中,掩碼中指定的比特位設爲1,用來講明一個類具備相應的優先級。

chmod的八進制語法的數字說明:

r 4

w 2

x 1

- 0

全部者的權限用數字表達:屬主的那三個權限位的數字加起來的總和。如rwx ,也就是4+2+1 ,應該是7。

用戶組的權限用數字表達:屬組的那個權限位數字的相加的總和。如rw- ,也就是4+2+0 ,應該是6。

其它用戶的權限數字表達:其它用戶權限位的數字相加的總和。如r-x ,也就是4+0+1 ,應該是5。

示例以下,

➜  helloworld ll
total 8
drw-rw-r--  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt
➜  helloworld chmod 644 dir1
➜  helloworld ll
total 8
drw-r--r--  2 xinxingegeya  admin    68B  6 22 14:21 dir1
-rw-r--r--  1 xinxingegeya  wheel    10B  6 22 14:28 hellworld.txt

======END======

相關文章
相關標籤/搜索