文件目录文件权限与目录

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

    文件可存取拜访的份身分为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呢?程序员: 那我将永远无法完成任务.

原文链接: https://www.cnblogs.com/jiangu66/archive/2013/04/21/3033500.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    文件目录文件权限与目录

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/85491

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午10:05
下一篇 2023年2月9日 下午10:06

相关推荐