zoukankan      html  css  js  c++  java
  • Linux系统下如何查看及修改文件读写权限

    查看文件权限的语句:

      在终端输入:
    ls -l xxx.xxx (xxx.xxx是文件名)

      那么就会出现相类似的信息,主要都是这些:
    -rw-rw-r--

      一共有10位数

      其中: 最前面那个 - 代表的是类型

      中间那三个 rw- 代表的是所有者(user)

      然后那三个 rw- 代表的是组群(group)

      最后那三个 r-- 代表的是其他人(other)

      然后我再解释一下后面那9位数:

      r 表示文件可以被读(read)

      w 表示文件可以被写(write)

      x 表示文件可以被执行(如果它是程序的话)

      - 表示相应的权限还没有被授予

      现在该说说修改文件权限了

      在终端输入:

      chmod o w xxx.xxx

      表示给其他人授予写xxx.xxx这个文件的权限

      chmod go-rw xxx.xxx

      表示删除xxx.xxx中组群和其他人的读和写的权限

      其中:

      u 代表所有者(user)

      g 代表所有者所在的组群(group)

      o 代表其他人,但不是u和g (other)

      a 代表全部的人,也就是包括u,g和o

      r 表示文件可以被读(read)

      w 表示文件可以被写(write)

      x 表示文件可以被执行(如果它是程序的话)

      其中:rwx也可以用数字来代替

      r ------------4

      w -----------2

      x ------------1

      - ------------0

      行动:

       表示添加权限

      - 表示删除权限

      = 表示使之成为唯一的权限

      当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:

      -rw------- (600) 只有所有者才有读和写的权限

      -rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限

      -rwx------ (700) 只有所有者才有读,写,执行的权限

      -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限

      -rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限

      -rw-rw-rw- (666) 每个人都有读写的权限

      -rwxrwxrwx (777) 每个人都有读写和执行的权限

     


    Linux文件和目录访问权限设置

    使用chmod和数字改变文件或目录的访问权限
    文件和目录的权限表示,是用rwx这三个字符来代表所有者、用户组和其他用户的权限。有时候,字符似乎过于麻烦,因此还有另外一种方法是以数字来表示权限,而且仅需三个数字。
    r: 对应数值4
    w: 对应数值2
    x:对应数值1
    -:对应数值0
    数字设定的关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:
    111 101 100
    再将其每三位转换成为一个十进制数,就是754。
    例如,我们想让a.txt这个文件的权限为:
    自己 同组用户 其他用户
    可读 是 是 是
    可写 是 是
    可执行
    那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令:
    [root@localhost ~]# chmod 664 a.txt
    按照上面的规则,rwx合起来就是4 2 1=7,一个rwxrwxrwx权限全开放的文件,数值表示为777;而完全不开放权限的文件“---------”其数字表示为000。下面举几个例子:
    -rwx------:等于数字表示700。
    -rwxr—r--:等于数字表示744。
    -rw-rw-r-x:等于数字表示665。
    drwx—x—x:等于数字表示711。
    drwx------:等于数字表示700。
    在文本模式下,可执行chmod命令去改变文件和目录的权限。我们先执行ls -l 看看目录内的情况:
    [root@localhost ~]# ls -l
    总用量 368
    -rw-r--r-- 1 root root 12172 8月 15 23:18 conkyrc.sample
    drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
    -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
    drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
    -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
    drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
    可以看到当然文件conkyrc.sample文件的权限是644,然后把这个文件的权限改成777。执行下面命令
    [root@localhost ~]# chmod 777 conkyrc.sample
    然后ls -l看一下执行后的结果:
    [root@localhost ~]# ls -l
    总用量 368
    -rwxrwxrwx 1 root root 12172 8月 15 23:18 conkyrc.sample
    drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
    -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
    drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
    -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
    drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
    可以看到conkyrc.sample文件的权限已经修改为rwxrwxrwx
    如果要加上特殊权限,就必须使用4位数字才能表示。特殊权限的对应数值为:
    s或 S (SUID):对应数值4。
    s或 S (SGID):对应数值2。
    t或 T :对应数值1。

    用同样的方法修改文件权限就可以了
    例如:

    [root@localhost ~]# chmod 7600 conkyrc.sample
    [root@localhost ~]# ls -l
    总用量 368
    -rwS--S--T 1 root root 12172 8月 15 23:18 conkyrc.sample
    drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
    -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
    drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
    -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
    drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
    加入想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理。
    例如:
    [root@localhost ~]# chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx
    [root@localhost ~]# chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx

    使用命令chown改变目录或文件的所有权
    文件与目录不仅可以改变权限,其所有权及所属用户组也能修改,和设置权限类似,用户可以通过图形界面来设置,或执行chown命令来修改。
    我们先执行ls -l看看目录情况:
    [root@localhost ~]# ls -l
    总用量 368
    -rwxrwxrwx 1 root root 12172 8月 15 23:18 conkyrc.sample
    drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
    -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
    drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
    -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
    drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
    可以看到conkyrc.sample文件的所属用户组为root,所有者为root。
    执行下面命令,把conkyrc.sample文件的所有权转移到用户user:
    [root@localhost ~]# chown user conkyrc.sample
    [root@localhost ~]# ls -l
    总用量 368
    -rwxrwxrwx 1 user root 12172 8月 15 23:18 conkyrc.sample
    drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
    -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
    drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
    -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
    drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
    要改变所属组,可使用下面命令:
    [root@localhost ~]# chown :users conkyrc.sample
    [root@localhost ~]# ls -l
    总用量 368
    -rwxrwxrwx 1 user users 12172 8月 15 23:18 conkyrc.sample
    drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
    -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
    drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
    -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
    -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
    drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
    要修改目录的权限,使用-R参数就可以了,方法和前面一样。

    转自:http://www.cnblogs.com/CgenJ/archive/2011/07/28/2119454.html

  • 相关阅读:
    ASP.NET CORE 使用Consul实现服务治理与健康检查(2)——源码篇
    ASP.NET CORE 使用Consul实现服务治理与健康检查(1)——概念篇
    Asp.Net Core 单元测试正确姿势
    如何通过 Docker 部署 Logstash 同步 Mysql 数据库数据到 ElasticSearch
    Asp.Net Core2.2 源码阅读系列——控制台日志源码解析
    使用VS Code 开发.NET CORE 程序指南
    .NetCore下ES查询驱动 PlainElastic .Net 升级官方驱动 Elasticsearch .Net
    重新认识 async/await 语法糖
    EF添加
    EF修改部分字段
  • 原文地址:https://www.cnblogs.com/CodeGuy/p/2419280.html
Copyright © 2011-2022 走看看