zoukankan      html  css  js  c++  java
  • Linux笔记 — 权限管理以及文件的特殊权限

    演示一些权限,以及权限不足的时候会有哪些报错信息:
    1.通过命令行 # cd /test 来到/test目录下
    2.查看/test目录的权限:ls -ld /test 返回结果如下:
    drwxr-xr-x. 2 user1 group1 6 6月 22 11:58 /test
    3.修改/test 权限为最大权限:# chmod 777 /test
    4.查看修改后的/test目录的权限:# ls -ld /test
    drwxrwxrwx. 2 user1 group1 6 6月 22 11:58 /test
    5.创建一个叫afile的文件:# touch afile
    6.查看afile文件:# ls 返回结果为:
    afile
    属组和属主权限进行修改
    7.对afile属组和属主权限进行修改(不能拿root权限进行测试,因为root权限是不受限制的):

    chown user1:group1 afile (把用户user1 的root权限修改为group1 权限)

    8.查看权限:# ls -l
    -rw-r--r--. 1 user1 group1 0 6 月 22 12:05 afile

    属主权限修改
    9.想要单独测这个文件的读和写的权限的时候呢,我们可以把其他权限给去掉,减少其他权限的干扰,我把afile的权限设置为400:# chmod 400 400
    10.查看一下afile的权限:# ls -l 返回结果为:
    -r--------. 1 user1 group1 0 6月 22 12:05 afile
    11.显示文件命令:# echo 123 将123显示在终端上。
    12.将123显示在文件里面:# echo 123 > afile (将控制台显示的123 输出到afile文件里面)
    注意:> 输出符号 会把原文件中的内容全部清空,所以输出符号(>)不要用在系统配置文件中,会有被清空的风险。
    13.查看以下afile文件内容 # cat afile 显示如下内容:123
    14.切换到user1用户(afile文件只有user1 具有查看权限,其他用户没有权限):# su - user1
    15. 查看当前用户:$ id
    uid=1003(user1) gid=1003(group1) 组=1003(group1) 环境=unconfined_u: unconfined_r: unconfined_t: s0- s0: c0.c1023
    16.以用户user1 身份查看文件内容:$ cat /test/afile 返回结果为:123
    17. 以user1用户尝试将456写入/test/afile:$ echo 456 > /test/afile 返回结果:
    -bash: /test/afile: 权限不够
    18.退出user1 用户回到root用户:$ exit
    19.给文件/test/afile 赋予200 权限:# chmod 200 /test/afile
    20.查看权限:# ls -l /test/afile 返回结果为:
    --w-------. 1 user1 group1 4 6月 22 12:08:26 CST 2019pts/0 上
    22.切换到user1用户:# su - user1
    23.把456写入到/test/afile:$ echo 456 > /test/afile 写入成功。

    属组权限修改
    1.创建一个bfile文件 :$ touch /test/bfile
    2.查看bfile权限:$ ls -l /test/
    3.修改文件的组权限为: $ chmod 020 /test/bfile
    4.查看权限:$ ls -l /test/ 返回结果为:
    -----w----. 1 user1 group1 6月 22 12:10 bfile
    5.查看当前用户(user1)用户的权限:$ id user1,返回结果如下:
    uid=1003(user1) gid=1003(group1) 组=1001(group1)
    从返回结果中可以看出当前用户user1 是没有写入权限的,但是他的属组是由写入权限的,也就是说user1 没有写入权限,但是相同组的其他用户是有写入权限的。示例如下:
    1)先以user1 为例 尝试在bfile中写入123:$ echo 123 > /test/bfile 返回结果,提示权限不够。
    2)退出user1回到root用户:# exit
    3)进入user2 用户:# su - user2
    4)查看user2权限:$ id 或者 id user2 返回结果为:
    uid=1004(user2) gid=1003(group1) 组=1001(group1)
    5)用user2用户将456写入/test/bfile:$ echo 456 > /test/bfile
    6)退出当前用户 回到root用户:$ exit
    7)查看bfile是否写入成功:# cat /test/bfile 返回结果为 456,成功

    目录权限
    1.在root权限下输入:# chmod 400 /test
    2.切换到user1用户:# su - user1
    3.查看目录:ls -l /test 返回结果如下:
    ls:无法访问/test/afile:权限不够
    ls:无法访问/test/bfile:权限不够
    4.通过exit命令回到root用户,定义目录权限:chmod u=x /test
    5.权限查看:# ls -ld /test
    6.切换回user1用户:su - user1
    7.切换到test目录:cd /test
    8.查看当前路径:pwd
    9.输入# exit命令退出user1回到root用户,修改目录权限 # chmod 000 /test
    10.再次进入user1用户:# su - user1
    11.进入/test目录:$ cd /test 提示权限不够,无法进入该目录。
    12.可以进入目录并查看文件命令:
    先通过exit命令回到root用户再输入如下命令:# chmod u=rx /test
    13.通过 su - user1 切换到用户user1,通过cd /test 命令进入到 /test目录,并且可以通过ls -l查看目录下的文件。
    14. 输入exit命令 回到root用户,修改为可以进入目录并删除文件命令:# chmod u=wx /test
    15.切换用户:su - user1
    16.进入/test 目录:cd /test
    17.删除afile:$ rm afile
    18.退出user1 回到root用户:$ exit
    19. 查看用户:ls /test 返回结果中已经没有afile文件。

    文件的特殊权限
    SUID 用于二进制可执行文件,执行命令时取得文件属主权限
    如 /usr/bin/passwd
    1.输入命令行:# ls -l /usr/bin/passwd 返回结果如下:
    -rwsr-xr-x. 1 root root 27832 4月 1 2020 /usr/bin/passwd
    注意:这里属主属性中x的位置换成了小写s,表示不管root用户还是普通用户,在执行该命令的时候,它都以文件的属主(root)身份执行操作,这是因为我们的用户名密码保存在/etc/shadow(可以通过ls -l /etc/shadow查看目录权限)目录下,而shadow的权限为任何人都无法查看,这种情况下也只有root用户才有权限查看。这样设计的目的是为了满足普通用户也可以修改自己密码的功能。

    2.给文件添加特殊的用户权限(SUID)的命令是:# chmod 4xxx 文件名
    如rwxr-xr-x的权限为755,如果将x改为s 则需要在前面加4,也就是4755
    如,1.给/test/bfile 设置文件属主特殊权限:# chmod 4775 /test/bfile
    2.查看文件属主权限:# ls -l /test/bfile
    -rwsr-xr-x. 1 user1 group1 4 6月 22 12:12 /test/bfile

    SGID 用于目录,在该目录下创建新的文件和目录,权限自动更改为该目录的属组
    使用场景:一般用于在做文件共享的时候使用
    SBIT 用于目录,该目录下新建的文件和目录,仅root和自己可以删除
    如 /tmp
    1.查看/tmp权限:# ls -ld /tmp/ 返回结果如下:
    drwxrwxrwt. 16 root root 4096 6月 22 12:21 /tmp/
    这里的t是用来防止普通用户用来删除其他用户创建的临时文件。
    2.如果要给其他目录设置SBIT特殊权限 的命令是:# chmod 1xxx 文件名
    如rwxrwxrwx的值为777,如果将x改为t,则需要在前面加1,也就是1777
    如,1.给目录/test设置SBIT权限:# chmod 1777 /test
    2.查看目录/test其他权限:# ls -l /test
    drwxrwxrwt. 2 user1 group1 19 6月 22 12:16 /test

    总结:特殊权限不建议修改,保持系统默认即可

  • 相关阅读:
    HTML: 表单标签、CSS语法、CSS选择器、CSS属性
    HTML:快速入门、表格标签
    JDBC连接池&JDBCTemplate
    JDBC
    MYSQL多表查询&事务
    使用CompletionService批处理任务(线程池阻塞线程)
    java运行字符串代码
    Linux常用命令大全(非常全!!!)
    SpringBoot防止重复请求,重复表单提交超级简单的注解实现
    在Spring-boot中,为@Value注解添加从数据库读取properties支持
  • 原文地址:https://www.cnblogs.com/lijinping321/p/15244693.html
Copyright © 2011-2022 走看看