天天看點

Linux之權限

檔案權限

    為了保障權責清晰和企業經營資料安全與保密,企業需要對系統中所有的操作人員進行分工,設定各自的功能權限,就能執行相應的操作。例如,為某個操作員設定了填制憑證的權限時,那麼當該操作員注冊進入賬務子系統後,就可以填制憑證。

    隻有系統管理者才有權進行權限設定

檔案對權限的定義:屬主的權限、屬組的權限、非屬主和屬組的權限

1

2

3

4

5

6

7

<code>-rw-rw-r--  1 root   utmp                9984 Jan  2  2016 wtmp</code>

<code>-</code>

<code>rw- 屬主的權限,用u表示</code>

<code>rw- 屬組的權限,用g表示 </code>

<code>r-- 非屬主和屬組的權限,用o表示</code>

<code>root  檔案的屬主</code>

<code>utmp  檔案的屬組</code>

所有使用者對檔案隻有3類權限,rwx,其含義是:

readable,r權限,可讀權限位

    檔案有此權限位時,代表“對應的使用者對此檔案可以用一些檔案檢視類工具檢視檔案的内容”

    目錄:此權限位對應的使用者可用"ls"檢視目錄中的内容

writeable,w權限,可寫權限位

    檔案:此權限位對應的使用者可修改檔案的内容

    目錄:此權限位對應的使用者可在目錄中删除檔案,建立檔案

excutable,x權限,可執行權限位

    檔案:此權限位對應的使用者可把此檔案提請到核心運作為一個程序

    目錄:可用ls -l檢視此目錄中的檔案清單,和cd 進入此目錄

這三個二進制位可用一個八進制數來表示

8

9

10

<code>--- 000 0</code>

<code>--x 001 1</code>

<code>-w- 010 2</code>

<code>-wx 011 3</code>

<code>r-- 100 4</code>

<code>r-x 101 5</code>

<code>rw- 110 6</code>

<code>rwx 111 7</code>

<code>640 rw- r-- --- </code>

<code>755 rwx r-x r-x</code>

與檔案權限相關的指令

chmod,chown,chgrp指令

<code>[root@izpo45bh60h6bsz ~]</code><code># type chmod</code>

<code>chmod</code> <code>is </code><code>/usr/bin/chmod</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># chmod --help</code>

<code>Usage: </code><code>chmod</code> <code>[OPTION]... MODE[,MODE]... FILE...</code>

<code>  </code><code>or:  </code><code>chmod</code> <code>[OPTION]... OCTAL-MODE FILE...</code>

<code>  </code><code>or:  </code><code>chmod</code> <code>[OPTION]... --reference=RFILE FILE...</code>

<code>-R, --recursive        遞歸修改目錄及目錄下的檔案的權限</code>

MODE的含義

1)對某類使用者進行權限修改

   u=[rwx' '] g=[rwx' ']  o=[rwx' ']

  uo= ug= go=

2)對某類使用者的某位權限修改

  u+-,g+-,o+-

  a+- 或+-

使用示例:

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

<code>1、修改檔案的某類使用者的權限及某位權限</code>

<code>[root@izpo45bh60h6bsz tmp]</code><code># mkdir -m 644 testdir #建立目錄檔案</code>

<code>[root@izpo45bh60h6bsz tmp]</code><code># touch testdir/abc  #建立檔案</code>

<code>[root@izpo45bh60h6bsz tmp]</code><code># ls -l</code>

<code>total 4</code>

<code>drw-r--r-- 2 root root 4096 Jul 30 12:35 testdir</code>

<code>[root@izpo45bh60h6bsz tmp]</code><code># ls -l testdir/abc</code>

<code>-rw-r--r-- 1 root root 0 Jul 30 12:39 testdir</code><code>/abc</code>

<code>[root@izpo45bh60h6bsz tmp]</code><code># chmod u= testdir</code>

<code>d---r--r-- 2 root root 4096 Jul 30 12:35 testdir</code>

<code>[root@izpo45bh60h6bsz tmp]</code><code># chmod -R u+rwx testdir</code>

<code>drwxr--r-- 2 root root 4096 Jul 30 12:39 testdir</code>

<code>[root@izpo45bh60h6bsz tmp]</code><code># ls -l testdir/</code>

<code>total 0</code>

<code>-rwxr--r-- 1 root root 0 Jul 30 12:39 abc</code>

<code>2、仿照a檔案的權限修改B檔案的權限</code>

<code>[root@izpo45bh60h6bsz tmp]</code><code># touch testdir/b</code>

<code>-rw-r--r-- 1 root root 0 Jul 30 12:43 b</code>

<code>[root@izpo45bh60h6bsz testdir]</code><code># chmod --reference=abc b</code>

<code>-rwxr--r-- 1 root root 0 Jul 30 12:43 b</code>

<code>3、以八進制位修改檔案的權限</code>

<code>[root@izpo45bh60h6bsz testdir]</code><code># chmod 600 abc</code>

<code>[root@izpo45bh60h6bsz testdir]</code><code># ls -l</code>

<code>-rw------- 1 root root 0 Jul 30 12:39 abc</code>

chown指令

<code>[root@izpo45bh60h6bsz ~]</code><code># type chown</code>

<code>chown</code> <code>is </code><code>/usr/bin/chown</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># chown --h</code>

<code>Usage: </code><code>chown</code> <code>[OPTION]... [OWNER][:[GROUP]] FILE...</code>

<code>  </code><code>or:  </code><code>chown</code> <code>[OPTION]... --reference=RFILE FILE...</code>

<code>  </code><code>-R, --recursive        遞歸修改目錄及目錄下的檔案的屬主</code>

1)修改屬主

<code>[root@izpo45bh60h6bsz tmp]</code><code># install -d hello  #建立目錄</code>

<code>drwxr-xr-x 2 root root 4096 Jul 30 12:50 hello</code>

<code>drwxr-xr-x 2 root root 4096 Jul 30 12:55 hello</code>

<code>-rw-r--r-- 1 root root 0 Jul 30 12:55 abc</code>

<code>[root@izpo45bh60h6bsz tmp]</code><code># chown myuser hello</code>

<code>drwxr-xr-x 2 myuser root 4096 Jul 30 12:55 hello</code>

2)修改屬組

<code>[root@izpo45bh60h6bsz tmp]</code><code># chown -R .myuser hello</code>

<code>-rw-r--r-- 1 root myuser 0 Jul 30 12:55 abc</code>

3)修改屬主和屬組

<code>[root@izpo45bh60h6bsz tmp]</code><code># chown -R root.root hello</code>

檔案和目錄建立時的遮罩碼:umask

預設檔案必然不能有執行權限,避免檔案被惡意利用

預設目錄有執行權限

管理者的umask

<code>[root@izpo45bh60h6bsz tmp]</code><code># umask</code>

<code>0022</code>

普通使用者的umask

<code>[root@izpo45bh60h6bsz tmp]</code><code># su - user1</code>

<code>-sh-4.2$ </code><code>umask</code>

<code>0002</code>

umask定義的位置

<code>/etc/profile</code><code>,</code><code>/etc/bashrc</code><code>中均定義了</code><code>umask</code><code>的值 </code>

<code># By default, we want umask to get set. This sets it for login shell</code>

<code># Current threshold for system reserved uid/gids is 200</code>

<code># You could check uidgid reservation validity in</code>

<code># /usr/share/doc/setup-*/uidgid file</code>

<code>if</code> <code>[ $UID -gt 199 ] &amp;&amp; [ </code><code>"`id -gn`"</code> <code>= </code><code>"`id -un`"</code> <code>]; </code><code>then</code>

<code>    </code><code>umask</code> <code>002</code>

<code>else</code>

<code>    </code><code>umask</code> <code>022</code>

<code>fi</code>

建立檔案的權限,預設

<code>1、管理者</code>

<code>[root@izpo45bh60h6bsz tmp]</code><code># touch testfile</code>

<code>-rw-r--r-- 1 root root    0 Jul 30 13:03 testfile</code>

<code>2、普通使用者</code>

<code>-sh-4.2$ </code><code>touch</code> <code>testfile</code>

<code>-sh-4.2$ </code><code>ls</code> <code>-l</code>

<code>-rw-rw-r-- 1 user1 user1 0 Jul 30 13:02 testfile</code>

檔案的權限: 666-UMASK

目錄的權限:777-UMASK

本文轉自 lccnx 51CTO部落格,原文連結:http://blog.51cto.com/sonlich/1952080,如需轉載請自行聯系原作者

繼續閱讀