0%

【Linux命令】Linux-08-权限管理

文件的所有者所在组其他组概念

  • 所有者

    ls -ahl 可查看文件或目录的所有者

    chown 指令改变文件或目录的所有者(change owner)

    案例:chown tom apple.txt

  • 所在组

    文件默认属于用户所在的组

    chgrp 指令改变文件或目录的所在组(change group)

    案例:chgrp fruit orange.txt

  • 其他组

    除了文件所有者和文件所在组外,其余用户对文件而言均在其他组

  • groupadd monster

    创建组

  • useradd -g monster fox

    创建用户并将其加入monster组

  • usermod -g 组名 用户名

    修改用户所在组

    案例:cat /etc/group | grep “wudang” 查看组是否存在

    ​ id zwj 查看用户是否存在

    ​ usermod -g wudang zwj 修改用户所在组

  • usermod -d 目录名 用户名

    修改用户登录的默认初始目录(用户要有进入新目录的权限)

文件操作权限

例如:-rwxrw—-

  • 0位—文件类型

    • -代表普通文件

    • l 代表链接(link)

    • d 代表目录(directory)

    • c 代表字符设备文件(鼠标、键盘)(char)

    • b 代表块设备(硬盘)(block)

  • rwx权限

    • 1-3位—文件所有者用户的权限
    • 4-6位—文件所在组用户的权限
    • 7-9位—文件其他组用户的权限

    作用于文件

    r:可以读取文件(read)

    w:可以写入文件(write)(但不可创建、删除文件,要有目录的w权限)

    x:可以执行文件(execute)(要求是可执行文件

作用于目录

​ r:可以读取目录下的内容(ls指令)

​ w:可以修改目录里的内容(在目录内创建、删除文件,重命名目录)

​ x:可以进入改目录(cd指令)

  • chmod 指令

    修改文件或者目录的权限

    • 方式1

      u:所有者; g:所在组; o:其他组;a:所有人

      1.chmod u=rwx,g=rx,o=x 文件/目录名

      2.chmod o+w 文件/目录名

      3.chmod a-x 文件/目录名

    • 方式2

      r=4,w=2,x=1

      1=–x

      2=-w-

      3=-wx

      7=rwx

      案例:chmod 751 hello.txt 将文件权限修改为 rwxr-x–x

  • chown

    chown newowner 文件/目录 —- 改变所有者

    chown newowner:newgroup 文件目录 —- 改变所有者和所在组

    • -R 当作用于目录上时,递归生效

    案例1:chown tom abc.txt

  • chgrp

    chgrp newgroup 文件/目录名 —- 改变所在组

    • -R 当作用于目录上时,递归生效

权限管理实践

  • 警察与土匪游戏

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    root@
    groupadd police
    groupadd bandit
    useradd jack -g police
    useradd jerry -g police
    useradd xh -g bandit
    useradd xq -g bandit
    passwd jack
    passwd jerry
    passwd xh
    passwd xq

    jack@
    touch jackfile
    chomd 640 jackfile
    chmod g=rw,o=r jackfile

    root@
    usermod -g police xh

    xh@
    cd /home/jack/

    小结论:要对相应目录内的文件进行操作,首先要获取目录的权限

    1
    2
    3
    #需要以下指令可以达到读写目的
    jack@
    chmod 770 /home/jack/
  • 实践2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    root@
    groupadd sx
    groupadd yg
    useradd tangs -g sx
    useradd shas -g sx
    useradd monkey -g yg
    useradd pig -g yg
    passwd tangs
    passwd shas
    passwd monkey
    passwd pig

    monkey@
    vim Monkey.java
    chmod g=rw Monkey.java
    #注意
    chmod g+r+w+x /home/monkey/

    pig@
    cd /home/monkey/
    vim Monkey.java

    root@
    usermod -g yg shas

    shas@
    cd /home/monkey/
    vim Monkey.java

    小结论:对于目录的 rwx 权限的理解

    • r:读的权限,查看目录里的内容(ls 指令)
    • w:写的权限,删除、创建目录里的文件
    • x:执行权限,可以进入目录,可以根据权限操作目录里的文件(不必获取目录读写权限)
  • 实践3

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    root@
    useradd mycentos
    passwd mycentos

    mycentos@
    mkdir -p test/t11/t1/
    cd test/t11/t1/
    touch aa
    vim aa
    chmod u+x aa
    ./aa
    rm -rf test/t11/t1/

    root@
    userdel -r mycentos
    systemctl set-default graphical.target
    reboot
    shutdowm