近来朋友几篇文章介绍了改文件目录的文章. 关联文章的地址
文件可存取拜访的份身分为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种,分别是user、group、others,每种份身的文件权又可以分为三类:r(read)、w(write)、x(execute),同时也可以用数字来代表,分别为:r = 4、w = 2、x = 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呢?程序员: 那我将永远无法完成任务.