• Linux学习笔记8文件的所有权和访问权


    文件拥有者
    每个文件(或者目录)从属于一个文件拥有者(一般是一个用户名)和一个用户组。
    文件拥有者一般来说就是生成(或者拷贝)这个文件的用户。
    用户组经常包含一个用户-文件拥有者。
    用户组通常有一个名字来标识该用户,但是也不是必须的。
    一个文件只能被文件拥有者删除,或者是文件所属的用户组里的其他用户,或者是root用户。
    对于其他用户,如果被赋于适当的权限,也有可能修改或者删除该文件。
    文件所属的用户和用户组可以通过命令ls –l(长文件名显示格式)来显示:

     
    --根据以前学过的建立目录和使用vi建立一个测试文件。
    如:
    --这里是以OK_008普通用户登录。
    Last login: Wed Sep 26 18:57:44 2007 from 192.168.1.2
    [OK_008@CentOS4 ~]$ ls
    [OK_008@CentOS4 ~]$ mkdir OK008Filed --创建一个叫OK008Filed的文件目录
    [OK_008@CentOS4 ~]$ ls
    OK008Filed
    [OK_008@CentOS4 ~]$ cd OK008Field
    -bash: cd: OK008Field: No such file or directory
    [OK_008@CentOS4 ~]$ cd OK008Filed
    [OK_008@CentOS4 OK008Filed]$ ls
    [OK_008@CentOS4 OK008Filed]$ vi mytxt.txt
    --新建一个mytxt.txt的文件,相关的vi使用说明这里略。

    Hello every one!
    ~
    ~
    ~
    [OK_008@CentOS4 OK008Filed]$ ls
    mytxt.txt
    [OK_008@CentOS4 OK008Filed]$

    现在我们使用root用户进入查看刚才建立的目录文件和文本文件的位置:
    [root@CentOS4 ~]# cd /home
    [root@CentOS4 home]# ls
    OK_008
    [root@CentOS4 home]# cd OK_008
    [root@CentOS4 OK_008]# ls
    OK008Filed
    [root@CentOS4 OK_008]#
    [root@CentOS4 OK008Filed]#  pwd mytxt.txt
    /home/OK_008/OK008Filed
    --这说明刚才我建立的文件mytxt.txt在目录/home/OK_008/OK008Filed下。
    现在圆规正传,检查文件所属的用户和用户组:
    [OK_008@CentOS4 OK008Filed]$ ls -l mytxt.txt
    -rw-rw-r--  1 OK_008 OK_008 17 Sep 26 19:00 mytxt.txt

    --这里有个问题就是教材中只说到使用adduser来建立用户,但不知道怎么样建立用户组。
    --呵呵,晕哦。找半天资料没有一个说到,又不能上网baidu只有忽悠。先滤过。
    --看看方法吧。
    -rw-rw-r--
    10bit,由4部分构成(前面学过):
    类型(1bit) + 用户所有者权限(3bit) + 工作组权限(3bit) + 其他用户或用户组权限 (3bit)
    这里的r表示只读,w表示可写,-表示此位无权限

    《linux新手管理员指南CHM》里面总结的文件权限非常有不错:

    除了字符,也可以使用数字来设置权限。想知道是然后工作的,看以下例子:
    execute=1
    write=2
    read=4

    对于指定的三种不同用户级别总结如下:
     
    0 = 没有任何权限 (不能读,不能写,不能执行)     (常见)
    1 = 只能执行                                    (看起来不太正常)
    2 = 只能写                                      (看起来不太正常)
    3 = 只能写和执行                                (看起来不太正常)
    4 = 只读                                       (常见)
    5 = 只读和执行                                  (常见)
    6 = 读和写                                      (常见)
    7 = 读,写和执行                                (常见)

    要给三个不同的用户级别设置访问权限,只需要把三个数字粘在一起就可以了。举例:
    chmod 770 junk
    本机操作:
    [OK_008@CentOS4 OK008Filed]$ chmod 770 mytxt.txt
    [OK_008@CentOS4 OK008Filed]$ ls -l mytxt.txt
    -rwxrwx---  1 OK_008 OK_008 17 Sep 26 19:00 mytxt.txt
    [OK_008@CentOS4 OK008Filed]$
    --说明成功修改,感觉不错也。

    将给文件拥有者和所属用户组所有权限(读,写和执行),而对于其他用户没有任何权限。
    chmod 666 junk

    本机操作:
    [OK_008@CentOS4 OK008Filed]$ chmod 666 mytxt.txt
    [OK_008@CentOS4 OK008Filed]$ ls -l mytxt.txt
    -rw-rw-rw-  1 OK_008 OK_008 17 Sep 26 19:00 mytxt.txt
    [OK_008@CentOS4 OK008Filed]$

    这里我们要把当前修改文件的权限原来的:-rw-rw-r--  1 OK_008 OK_008 17 Sep 26 19:00 mytxt.txt
    可以这样:
    [OK_008@CentOS4 OK008Filed]$ chmod 664 mytxt.txt
    [OK_008@CentOS4 OK008Filed]$ ls -l mytxt.txt
    -rw-rw-r--  1 OK_008 OK_008 17 Sep 26 19:00 mytxt.txt
    --从上面的例子我们可以看出原来修改文件权限也不是那么难。呵呵!


    将给所有用户(文件拥有者,所属用户组,其他用户)读写权限,但是没有执行权限。
    请注意这个666权限设置里很经常用到,有人认为这是整个Linux(或者其他Unix里)的精髓所在。
    chmod 411 junk

    文件访问权限的数字表示法叫做“八位组”因为是基于八进制的(我们的日常计数系统是基于十进制)。八进制有八个数值从0到7,最大数字是7。对应的,十进制有十个数字从0到9,最大数字是9。八进制表示法对于二进制的文件权限表示法的确非常方便,每一个标志都可以通过设置成0或者1来表示“允许”或者“不允许”,如以下的例子:

    用户级别:                   文件拥有者     用户组         其他用户
    权限设置例子                     rwx             rw-             r--
    缺省权限                         ---             --x -           wx
    权限的二进制表示法                111             110             100
    权限的八进制表示法                7               6               4
    目录权限
    目录的访问权限和一般文件的访问权限是不同的。对于一般文件:
    r      =允许读文件内容
    w      =允许修改文件内容
    x      =允许执行该文件

    对于目录而言:
    r      =允许列出该目录下的文件和子目录
    w      =允许生成和删除该目录下的文件
    x      =允许访问该目录

    使用umask设置缺省文件属性

    当一个文件生成时,系统给以文件缺省的文件权限。在我的系统里,缺省权限是:
    -rw-r--r--

    这意味着由该用户生成的文件能被该用户读和写,而用户组和其他用户只能读。还有,在我的Redhat系统里,用户不能读取其他用户的主目录,因为用户主目录的缺省权限是
    drwx------
    我可以使用以下命令检查我刚生成的文件的缺省权限:
    umask -S
    (可选项-S代表“符号”告诉umask按容易阅读的格式显示文件权限,而不是缺省的数字格式)
    我可以修改新生成文件的缺省权限
    umask u=rw,g=,o=
     
    对于新生成的文件,以上命令将给文件拥有者以读和写的权限,而用户组和其他用户将没有任何访问权限。
    在umask命令里使用数值来设置文件的缺省属性更加麻烦。因为数值显示的是从用户那里去除掉的权限(刚好和chmod相反),比如:
    umask 000
     
    对于新生成的文件,你将给所有人所有的权限。下一个例子给文件拥有者以读和写的权限,而其他用户没有任何权限:
    umask 177

    为了让设置对系统永久有效,在文件/etc/profile里修改对应的行。

    这里大部分的说明技巧来自《linux新手管理员指南》虽然是2004年2月制作的CHM,但感觉不错值得一看。
    好了今天就学这么多,一些细节的东西得多接触多练习多摸索。现在晚上11点半了,得去冲凉休息了。
    相信明天会更美好!

    参考引用来源:《linux新手管理员指南CHM》幻影快递Linux小组翻译2004年版。
           《Linux系统开发员》广东省Linux公共服务技术支持中心组编

  • 相关阅读:
    ant-pro兄弟组件传参dva数据应用
    ant-design-pro 的EditableProTable表格验证调用
    使用ant-design-pro 的EditableProTable赋值报错
    EditableProTable使用+自定义封装
    由浅入深CAS
    Spring Cloud之Feign 转发请求头(header参数)
    线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式
    接口的幂等性
    Feign 调用丢失Header的解决方案
    springboot测试类测试时注入的对象为null
  • 原文地址:https://www.cnblogs.com/wghao/p/908162.html
Copyright © 2020-2023  润新知