• 文件目录文件权限与目录


    近来朋友几篇文章介绍了改文件目录的文章. 关联文章的地址

        文件可存取拜访的份身分为3个别类,分别是owner、group、others,这3种别类各有read、write、execute3种限权

        一、用户和用户组

        用户份身与用户组记载的文件:

        1.账户息信:/etc/passwd

        2.码密息信:/etc/shadow

        3.组名息信:/etc/group

        二、文件限权与属性

        [root@hs-uf21 etc]# ll

        -rw-r--r--          1       root    root      2767    Apr 11 13:20   passwd

        drwxr-xr-x          4       root    root      4096    Apr 10 21:09   vmware-tools

        [文件类型和限权]  [连接 ] [全部者][用户组]  [文件容量] [ 修改间时 ]   [文件名]

        第一列“-rw-r--r--” 共10个字符,表现文件的类型和限权,详细如下:

     -        rw-         r--             r--

     d         rwx         r-x             r-x

        [文件类型][全部者限权][同用户组的限权][非本用户组的限权]

        文件类型明说:

        [d] :表现目录;

        [-] :表现一般文件;

        [l] :表现连接文件(linkfile);

        [b] :表现设备文件面里的可供存储的接口设备;

        [c] :表现设备文件面里的串行端口设备,如键盘、鼠标。

        文件限权明说:

        [r] :表现可读(read);

        [w] :表现可写(write);

        [x] :表现可行执(execute);

        第二表列现有多少个文件名连接到此节点(i-node)

        第三表列现这个文件(或目录)的全部者账号

        第四表列现这个文件(或目录)的所属用户组

        第五表列现这个文件的容量巨细,默许位单为B

        第六表列现这个文件的建创日期或者是近来的修改日期

        第七表列现这个文件的文件名,如果文件名之前多一个“.”,则表现这个文件为“隐藏文件”。

        三、文件限权与属性的修改

        参数:

        [-R] :行进递归(recursive)的续持动变,也即连同子目录下的全部文件、目录都更新成这个用组之间,常用在动变某一目录内全部的文件情况。

        1.chgrp:变改文件所属用户组

        语法:chgrp [-R] GROUP dirname/filename

        将文件etc.tar地点所属的用户组改到dba:

        [root@hs-uf21 ~]# chgrp dba etc.tar

        [root@hs-uf21 ~]# ll

        -rw-r--r--  1root dba 48885760 Apr 19 22:39 etc.tar

        2.chown:变改文件全部者

        语法:chown[-R] USER[:/.GROUP] dirname/filename

        参数:

        [-R] :行进递归(recursive)的续持动变,也即连同子目录下的全部文件、目录都更新成这个用组之间,常用在动变某一目录内全部的文件情况。   

        将文件etc.tar的全部者和所属组为改oracle和dba

        [root@hs-uf21 ~]# chown oracle:dba etc.tar

        [root@hs-uf21 ~]# ll

        -rw-r--r--  1 oracle dba 48885760 Apr 19 22:39 etc.tar

        注意:chown可以同时动变文件的全部才和组名,面上的作操这样作操,[root@hs-uf21 ~]# chown oracle.dbaetc.tar,即用户名和组名之前可以用“.”来替代“:”。

        3.chmod:变改文件的限权

        文件可存取拜访的份身分为3种,分别是usergroupothers,每种份身的文件权又可以分为三类:r(readw(write)x(execute),同时也可以用数字来代表,分别为:r = 4w = 2x = 1。所以变改限权的方法可以分为:数字类型和符号类型

         

        数字类型变改文件限权

        语法:chmod [-R] [限权] 文件或者目录

        参数:[限权]为rwx的数字表现,详细如下

        user   = rwx =4+2+1 = 7

        group  = rwx = 4+2+1 = 7

        others = rwx= 4+2+1 = 7

        给文件install.log的全部者予赋读写行执的限权

        [root@hs-uf21 ~]# chmod 700install.log

        [root@hs-uf21 ~]# ll

        -rwx------  1root   root    59020 Apr 10 20:32 install.log

        给文件install.log的全部者予赋读和写的限权,同级用户和非同组用户予赋读的限权

        [root@hs-uf21 ~]# chmod 644install.log

        [root@hs-uf21 ~]# ll

        -rw-r--r--  1root   root    59020 Apr 10 20:32 install.log

        符号类型变改文件限权

        语法:chmod [-R] [限权作操] 文件或者目录

        参数:[限权作操]详细为置设每种份身的限权作操,不同份身之间的限权置设用逗号离隔

        份身类型:u(user)、g(group)、o(others)、a(all)

        作操类型:+(加增限权)、-(删除限权)、=(置设限权)

        限权类型:r(read)、w(write)、x(execute)

        给文件install.log的全部者予赋读、写、行执的限权,同级用户和非同组用户予赋读和行执的限权

        [root@hs-uf21 ~]# chmod u=rwx,go=rxinstall.log

        [root@hs-uf21 ~]# ll

        -rwxr-xr-x  1root   root    59020 Apr 10 20:32 install.log

        给文件install.log的全部者、同级用户、非同组用户予赋读和写的限权

        [root@hs-uf21 ~]# chmod a=rwinstall.log

        [root@hs-uf21 ~]# ll

        -rw-rw-rw-  1root   root    59020 Apr 10 20:32 install.log

        取消文件install.log同级用户、非同组用户的写的限权

        [root@hs-uf21 ~]# chmod go-winstall.log

        [root@hs-uf21 ~]# ll

        -rw-r--r--  1root   root    59020 Apr 10 20:32 install.log

        注意:如果要给目录及了目录下的全部文件予赋限权,可以应用-R参数。

        四、文件与目录的限权

        1.文件限权的意思

        r(read):可取读此文件的现实内容。

        w(write):可以辑编、新增或者是修改该文件的内容(但可不以删除该文件)。

        x(execute):该文件可以被系统行执的限权。

        每日一道理
    一个安静的夜晚,我独自一人,有些空虚,有些凄凉。坐在星空下,抬头仰望美丽天空,感觉真实却由虚幻,闪闪烁烁,似乎看来还有些跳动。美的一切总在瞬间,如同“海市蜃楼”般,也只是刹那间的一闪而过,当天空变得明亮,而这星星也早已一同退去……

        注意:对于文件的“rwx”限权,要重都是针对“文件内容”说来的,与文件名的存在死心踏地否没有关系,因为文件记载的是现实的据数。

        2.目录限权的意思

        r(read):表现拥有取读目录结构表列的限权,即可以查询该目录下的文件名据数。

        w(write):表现拥有动变目录结构表列的限权,即建新新的文件与目录、删除经已存在的文件与目录(不论该文件的限权为何)、将经已存在的文件或者目录行进重命名、转移该目录内的文件、目录、位置。

        x(execute):表现用户是否进入该目录成为以后工作目录。

        在oracle的根目录下建创一个目录files,并取该目录的全部限权:

        [root@hs-uf21 oracle]# mkdir files

        [root@hs-uf21 oracle]# ll

        drwxr-xr-x  2root   root          4096 Apr 20 19:41 files

        [root@hs-uf21 oracle]# chown -R oracle.oinstall files

        [root@hs-uf21 oracle]# ll

        drwxr-xr-x  2oracle oinstall      4096 Apr 20 19:41files

        [root@hs-uf21 oracle]# chmod a-rwx files

        [root@hs-uf21 oracle]# ll

        d---------  2oracle oinstall      4096 Apr 20 19:41files

        用oracle用户进入、看查files目录,以及在files目录建创新的文件都市提示限权足不:

        [oracle@hs-uf21 ~]$ oracle

        [oracle@hs-uf21 ~]$ ll

        d---------  2oracle oinstall      4096 Apr 20 19:41files

        [oracle@hs-uf21 ~]$ cd files

        -bash: cd: files: Permission denied

        [oracle@hs-uf21 ~]$ ll files

        ls: files: Permission denied

        [oracle@hs-uf21 ~]$ touch ./files/test.txt

        touch: cannot touch `./files/test.txt': Permissiondenied

        给目录files予赋可行执的限权,此时可以进入该目录,但是可不以建创新文件,也可不以ls看查该目录下的文件表列:

        [oracle@hs-uf21 ~]$ chmod 100 files

        d--x------  2oracle oinstall      4096 Apr 20 19:41files

        [oracle@hs-uf21 ~]$ cd files

        [oracle@hs-uf21 files]$ touch test.txt

        touch: cannot touch `test.txt': Permission denied

        给目录files予赋可写和可行执的限权,此时可以行进该目录,也可以建创新文件,但可不以应用ls看查该目录下的文件表列:

        [oracle@hs-uf21 ~]$ chmod 300 files

        d-wx------  2oracle oinstall      4096 Apr 20 19:41files

        [oracle@hs-uf21 ~]$ cd files

        [oracle@hs-uf21 files]$ touch test.txt

        [oracle@hs-uf21 files]$ ls

        ls: .: Permission denied

        给目录files予赋可读、可写和可行执的限权,此时对该目录下全部文件行进各种作操:

        [oracle@hs-uf21 ~]$ chmod 700 files

        [oracle@hs-uf21 ~]$ cd files

        [oracle@hs-uf21 files]$ ll

        total 0

        -rw-r--r--  1oracle oinstall 0 Apr 20 19:54 test.txt

        五、目录置配

        FHS(Filesystem Hierarchy Standard)标准个每特定的目录下该应要放置什么子样的据数。

        FHS据依文件系统应用的频仍与否与是不是答应用户意随修改,将目录定义成四种交互应用的态形,如下:

        1.可分享的:可以分享给其它系统挂载应用的目录

        2.可不分享的:自己呆板上行运的设备文件或者是与程序有关的socket文件等。

        3.可动变的:经常变改的据数,例如登录文件等。

        4.可不动变的:有些据数是不会经常动变的,跟随着distribution面不动变。

        事实上FHS针对目录树架构仅定义出三层目录下该应放置什么据数,如下:

        1./(root,根目录):与开机系统相干;

        2./usr(UNIX Software Resource):与软件安装、行执相干;

        3..var(variable):与系统运作程过相干。

        根目录(/)的意思与内容

        根目录与开机、原还、系统修复等作操有关,其它全部的目录都是由根目录衍生出来的,同时目录(/)全部的分区越小越好,且该应程序所安装的软件最好不要与根目录放在同一个内,如此不但性能较好,根目录地点文件系统也不容易生发题问。FHS定义的根目录下该应存在的了目录如下:

        [/bin  ]:放置系统行执文件的目录

        [/boot ]:放置系统开机会应用的文件,包括Linux内核文件以及开机菜单与开机所需置配文件等

        [/dev  ]:在Linux系统上,任何设备与接口设备都是以文件的式形存在于这个目录当中的

        [/etc  ]:系统要重的置配文件几乎都放置在这个目录

        [/home ]:系统默许的用户主文件夹

        [/lib  ]:放置系统在开机是要需用到的函数库,以及在/bin或者/sbin面下的令命会调用的函数库

        [/media]:放置可以删除的设备,包括盘软、光盘、DVD等设备都时暂挂载与此。

        [/opt  ]:放置第三方软件的目录,也可以放置在/usr/local面下

        [/root ]:系统管理员(root)的主文件夹

        [/sbin ]:放置系统开机程过中要需的令命,包括开机、修复、原还系统等令命。

        [/srv  ]:可以视为service的缩写,是一些网络服务动启后之,这些服务要需取胜的据数目录。如www、ftp等。

        [/tmp  ]:一般用户或者是正在行执的程序时暂寄存文件的地方,这个目录任何用户都可以拜访。

        [/prod ]:这个目录是一个虚拟文件系统,它放置的据数都是在内存当中的,例如系统内核、程进、外部设备的态状及网络态状等。

        [/sys  ]:这个目录也是一个虚拟文件系统,平要重记载内核相干的息信。

        作操系统软件源资(/usr)的意思与内容

        据依FHS的基本定义,/usr面里寄存可分享与可不动变的据数是作操系统相干的软件,而不用户的据数,因为系统默许的软件都放置在/usr面下,这个目录有点相似windows系统下有“C:\Windows”和“C:\Program files”这两个目录。系统刚安装毕完时,这个目录占用的空间大最。/usr的子目录一般如下:

        [/usr/src   ]:放置源代码

        [/usr/bin   ]:放置一般用户可以应用的令命,与/bin(开机程过相干的令命)不同。

        [/usr/lib   ]:包括各应用软件的函数库、目标文件、以及不被一般用户习用的行执文件或者本脚。

        [/usr/local ]:系统管理员在本机安装的第三方软件

        [/usr/sbin  ]:非系统正常行运所要需的系统令命。

        [/usr/share ]:放置共享文件

        [/usr/include]:C/C++等程序语言的头文件与包括文件

        [/usr/X11R6 ]:放置XWindow系统要重据数。

        /var的意思与内容

        /var目录要重放置常态性动变的文件,包括缓存、登录文件、以及某些软件行运程过所生产的文件。/var目录见常的子目录如下:

        [/var/lock ]:放置文件源资或者设备的锁

        [/var/log  ]:放置登录文件

        [/var/run  ]:某些程序或者服务动启后,会将它们的IID放置在这个目录下。

        [/var/spool]:放置一些列队据数

        [/var/cache]:应用程序本身行运程过生产的一些暂存文件。

    文章结束给大家分享下程序员的一些笑话语录: 开发时间
      项目经理: 如果我再给你一个人,那可以什么时候可以完工?程序员: 3个月吧!项目经理: 那给两个呢?程序员: 1个月吧!
    项目经理: 那100呢?程序员: 1年吧!
    项目经理: 那10000呢?程序员: 那我将永远无法完成任务.

  • 相关阅读:
    Git问题(Your local changes to the followingcant checkout because of unmerged files)
    Java实体映射工具 MapStruct
    获取一段代码执行花费的时长
    mybatis的xml中trim标签
    SQL语句统计每天、每月、每年的数据
    Java常见异常
    跨域与跨域访问
    java8新特性
    java中i=i++问题分析
    钉钉——第三方应用嵌入钉钉【微应用】
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3033500.html
Copyright © 2020-2023  润新知