1. Linux下安全性模型

    ? 使用user或group控制访问文件和资源

    ? 账号和密码

    ? 每个文件有自己的owner,通常是创建这个文件的用户

    每个程序都会关联到user或group。可以在文件上设定权限允许指定的user和group访问

  2. User

    ? 每个user有自己的UID,唯一识别码

    ? 用户名和密码信息存储在/etc/passwd里

    ? Passwd里还记录了每个用户家目录的路径,以及这个用户登陆后执行的第一个program,通常shell为第一个执行的程序,也就是根目录下bin目录里的bash

    ? 如果没有权限则不能读写其他人的文件

    ? 例子:

    [root@localhost root]# less /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    adm:x:3:4:adm:/var/adm:/sbin/nologin

    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    sync:x:5:0:sync:/sbin:/bin/sync

    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    halt:x:7:0:halt:/sbin:/sbin/halt

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    news:x:9:13:news:/etc/news:

    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    operator:x:11:0:operator:/root:/sbin/nologin

    games:x:12:100:games:/usr/games:/sbin/nologin

    gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

    nobody:x:99:99:Nobody:/:/sbin/nologin

    rpm:x:37:37::/var/lib/rpm:/bin/bash

    vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

    nscd:x:28:28:NSCD Daemon:/:/sbin/nologin

    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

    rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin

    rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

    mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

    smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

    pcap:x:77:77::/var/arpwatch:/sbin/nologin

    xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin

    ntp:x:38:38::/etc/ntp:/sbin/nologin

    gdm:x:42:42::/var/gdm:/sbin/nologin

    juniper:x:500:500:juniper:/home/juniper:/bin/bash

    mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

    lu:x:501:501::/home/lu:/bin/bash[r1]

    test:x:502:502::/home/test:/bin/bash

    test-user:x:503:503::/home/tes

    [r1]记录每个用户的信息

    Lu 表示用户名

    X 表示需要密码,如果为空,则不需要

    可以进行编辑删除X去除密码

    第一个501表是UID

    第二个表示GID(group)

    第五个栏位记录full name

    第6个栏位记录家目录路径

    最后一个为使用者登陆后第一个指定的program

    ? 例子2,查看密码文件

    root:$1$B08k0TCE$pQCuyxqNy3jINbzipAEe70:14800:0:99999:7:::[r1]

    bin:*:14153:0:99999:7:::

    daemon:*:14153:0:99999:7:::

    adm:*:14153:0:99999:7:::

    lp:*:14153:0:99999:7:::

    sync:*:14153:0:99999:7:::

    shutdown:*:14153:0:99999:7:::

    halt:*:14153:0:99999:7:::

    mail:*:14153:0:99999:7:::

    news:*:14153:0:99999:7:::

    uucp:*:14153:0:99999:7:::

    operator:*:14153:0:99999:7:::

    games:*:14153:0:99999:7:::

    gopher:*:14153:0:99999:7:::

    ftp:*:14153:0:99999:7:::

    nobody:*:14153:0:99999:7:::

    rpm:!!:14153:0:99999:7:::

    vcsa:!!:14153:0:99999:7:::

    nscd:!!:14153:0:99999:7:::

    sshd:!!:14153:0:99999:7:::

    rpc:!!:14153:0:99999:7:::

    rpcuser:!!:14153:0:99999:7:::

    nfsnobody:!!:14153:0:99999:7:::

    mailnull:!!:14153:0:99999:7:::

    smmsp:!!:14153:0:99999:7:::

    pcap:!!:14153:0:99999:7:::

    xfs:!!:14153:0:99999:7:::

    ntp:!!:14153:0:99999:7:::

    gdm:!!:14153:0:99999:7:::

    juniper:$1$L780U59D$K97F0NaLLQQzaZFNEmMgS1:14153:0:99999:7:::

    mysql:!!:14153::::::

    lu:$1$qRRv1DC4$ClwVGNyA2lfVZIiAIWivL.:14814:0:99999:7:::

    test:$1$me8CZ5wx$KjAlVE25vtsGDdJ6qnTzK0:14814:0:99999:7:::

    test-user:!!:14801:0:99999:7:::

    [r1]1表示用户已设定密码

    !!则表示未设定密码

  3. Group

    ? 每个用户都会被指定到一个group,使用唯一的GID

    ? GID存储在/etc/group

    ? 系统会为每个用户建立同名group,可以加到其他的group

    ? Group中的用户可以共享group中的文件

    ? 例子:

    [root@localhost root]# less /etc/group

    root:x:0:root[r1]

    bin:x:1:root,bin,daemon

    daemon:x:2:root,bin,daemon

    sys:x:3:root,bin,adm

    adm:x:4:root,adm,daemon

    tty:x:5:

    disk:x:6:root

    lp:x:7:daemon,lp

    mem:x:8:

    kmem:x:9:

    smmsp:x:51:

    pcap:x:77:

    xfs:x:43:

    ntp:x:38:

    gdm:x:42:

    juniper:x:500:

    mysql:x:27:

    lu:x:501:

    test:x:502:

    [r1]

    第一个栏位 用户名

    第二个 X则使用密码

    第三个栏位为GID

    第四个记录有哪些成员

     

    ? 例子2,group密码,一般不会对group设定密码:

    [root@localhost root]# less /etc/gshadow

    root:::root

    bin:::root,bin,daemon

    daemon:::root,bin,daemon

    sys:::root,bin,adm

    adm:::root,adm,daemon

    tty:::

    disk:::root

    lp:::daemon,lp

     

    ? 例子3,ower group属性

    [user2@localhost tmp]$ ls -l

    总用量 4

    drwxrwxr-x 2 user1 user1[r1] 4096 8月 17 15:32 test1

    [user2@localhost tmp]$ rmdir test1

    rmdir: ‘test1’: 不允许的操作

    [root@localhost tmp]# less /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    user1:x:504:505::/home/user1:/bin/bash[r2]

    user2:x:505:505::/home/user2:/bin/bash

    [root@localhost tmp]# less /etc/group

    root:x:0:root

    bin:x:1:root,bin,daemon

    daemon:x:2:root,bin,daemon

    test:x:502:

    test-user:x:503:

    user2:x:505[r3] :

    [root@localhost tmp]# ls -l

    总用量 4

    drwxrwxr-x 2 user1 504[r4] 4096 8月 17 15:32 test1

    [user2@localhost tmp]$ rmdir test1

    rmdir: ‘test1’: 不允许的操作

    [user2@localhost tmp]$

    [r1]Group user1

    [r2]将user1的group修改稿为user2的505

    [r3]将user1的group整行删除

    [r4]Owner只记录了UID和owner的GID。仍然是504

  4. Linux文件安全性

    ? 可以针对档案和目录设定权限

    ? Owner权限

    ? Group权限

    ? 其他人权限

  5. 权限种类

    ? R表示读取

    ? W表示可以编辑,使用touch、rm

    ? X表示可以执行。使用cd、ls –l

    -表示不允许(no r w x)

  6. 验证文件权限

    ? 使用ls查看文件设定的权限

    [root@localhost tmp]# ls -l

    总用量 6192

    -rw-r--r-- 1 root root 0 7月 26 17:15 2006

    -rw-r--r-- 1 root root 0 7月 26 17:15 2006123

    -rw-r--r-- 1 root root 0 7月 26 22:54 a

    -rw-r--r-- 1 root root 0 7月 26 22:54 aa

    -rw-r--r-- 1 root root 0 7月 26 22:54 ab

    -rw-r--r-- 1 root root 0 7月 26 22:54 b

    drwxrwxrwx[r1] 10 juniper juniper 8192 8月 10 17:26 beecrypt-4.1.2

    [r1]D开头表示目录,-开头表示文件

  7. 权限代表的意义

    ? D rwx rws rwx[r1]

    [r1]D表示类型

    第一组RWX表示owner的权限,使用u代表

    第二组rwx表示所在group的权限,使用g代表

    第三组表示其他的权限,使用o表示

  8. Linux处理文件安全流程

    ? 首先判断user是不是root

    ? 如果不是,则比较用户UID和文件UID

    ? 如果不是owner,则比较用户GID和文件GID

    如果不是,则使用other

  9. 使用符号表示法改变文件或目录权限

    ? 使用chmod设定权限,如果加上-R则修改所有文件

    RH033 Unit 6 linux下安全模型_模型

    root@localhost tmp]# chmod -R -r user2[r1]

    [root@localhost tmp]# ls -l

    总用量 8

    drwxrwxr-x 2 user1 504 4096 8月 17 15:32 test1

    -rw-r--r-- 1 root root 0 8月 17 15:59 test.txt

    -rw-r--r-- 1 user1 user2 0 8月 17 16:00 user1.txt

    d-wx-wx-wx 2 user2 user2 4096 8月 17 16:01 user2

    -rw-rw-r-- 1 user2 user2 0 8月 17 16:01 user2.txt

    [root@localhost tmp]# ls user2 -l

    总用量 0

    --w--w---- 1 user2 user2 0 8月 17 16:01 user2-user2.txt

    [root@localhost tmp]# chmod go+r user2[r2]

    [root@localhost tmp]# ls -l

    总用量 8

    drwxrwxr-x 2 user1 504 4096 8月 17 15:32 test1

    -rw-r--r-- 1 root root 0 8月 17 15:59 test.txt

    -rw-r--r-- 1 user1 user2 0 8月 17 16:00 user1.txt

    d-wxrwxrwx 2 user2 user2 4096 8月 17 16:01 user2

    -rw-rw-r-- 1 user2 user2 0 8月 17 16:01 user2.txt

    [root@localhost tmp]# ls user2/ -l

    总用量 0

    --w--w---- 1 user2 user2 0 8月 17 16:01 user2-user2.txt

    [root@localhost tmp]#

    [r1]给user2目录下,包括目录,取出读的权限。-R表示目录及目录内

    [r2]给group和other 对user2这个目录增加读的权限,但不包括目录里的文件

  10. 使用数字表示法设定文件或目录权限

    ? UGO代表的意思与上相同

    ? 4代表读

    ? 2代表写

    ? 1代表执行

    ? 0代表不允许

    ? 使用值相加代表权限状态

    ? 例子,修改为754,即ower rwx,group rx,other r:

    [root@localhost tmp]# ls -l

    总用量 12

    d-wx-wx-wx 2 root root 4096 8月 17 16:12 doc

    drwxrwxr-x 2 user1 504 4096 8月 17 15:32 test1

    -rw-r--r-- 1 root root 0 8月 17 15:59 test.txt

    -rw-r--r-- 1 user1 user2 0 8月 17 16:00 user1.txt

    d-wxrwxrwx 2 user2 user2 4096 8月 17 16:01 user2

    -rw-rw-r-- 1 user2 user2 0 8月 17 16:01 user2.txt

    [root@localhost tmp]# ls doc -l

    总用量 0

    --w------- 1 root root 0 8月 17 16:12 doc1.txt

    --w------- 1 root root 0 8月 17 16:12 doc2.txt

    [root@localhost tmp]# chmod -R 754 doc

    [root@localhost tmp]# ls -l

    总用量 12

    drwxr-xr-- 2 root root 4096 8月 17 16:12 doc

    drwxrwxr-x 2 user1 504 4096 8月 17 15:32 test1

    -rw-r--r-- 1 root root 0 8月 17 15:59 test.txt

    -rw-r--r-- 1 user1 user2 0 8月 17 16:00 user1.txt

    d-wxrwxrwx 2 user2 user2 4096 8月 17 16:01 user2

    -rw-rw-r-- 1 user2 user2 0 8月 17 16:01 user2.txt

    [root@localhost tmp]# ls doc -l

    总用量 0

    -rwxr-xr-- 1 root root 0 8月 17 16:12 doc1.txt

    -rwxr-xr-- 1 root root 0 8月 17 16:12 doc2.txt