Linux文件权限
在Linux中,对系统服务的文件通常只有root才能读写或执行。
说明:Linux记录用户身份的是UID(用户ID)和GID(群组ID),root的两个ID号均为0,一般用户的两个ID号通常在500以后,1~499之间为系统预留使用。
使用ls -al指令后会看到如下内容:
文件属性
文件属性共10个字符,分为4部分,各部分含义如下。
文件类型
d-目录
--文件
l-链接文件(link file)
b-设备文件中可供储存的接口设备
c-设备文件中串行接口设备(如键盘、鼠标)
文件拥有者的属性(owner)、文件所属群组的属性(group)、其他人关于此文件的属性(others)
r(Read
读取):对文件有读取文件内容的权限(cat指令);对目录有查看目录下内容的权限(ls指令)。
w(Write
写入):对文件有增加、删除、修改文件内容的权限;对目录有增加、删除、修改目录下内容的权限。
x(eXecute
执行):对文件有执行文件的权限(./指令);对目录该有进入目录的权限(cd指令)。
说明:
1.“-”表示没有权限。
2.x与目录的关系十分重要,如果一个目录只有r而没有x,那么在该目录下不能使用任何指令,所以也就无法进
入该目录。所以在设置文件夹时r与x应同时存在。
3.Windows和Linux下可执行的只能是二进制文件,但是在Windows下一个文件是否能执行是由后缀名决定的(例如.exe、.bat、.com等),而Linux下是由属性x决定的,与后缀名没有丝毫关系。
4.r、w、x是基本权限。
链接数
链接占用的节点(i-node),若为d(目录类型),通常与该目录下有多少个子目录有关。
文件拥有者
文件或文件夹所属的用户。
文件所属群组
文件拥有者所属的群组。
文件容量
文件的大小,单位为B。
文件最后被修改的时间
文件的建档日期或最近的修改日期,分别为月、日即时间。如果以中文安装的Linux,由于中文无法显示在文字界面的终端机上,所以这一栏会变为乱码,可以以root登录,使用vi修改/etc/sysconfig/i18n文件,将“LC_TIME”改为“LC_TIME=en”,保存退出并重新登录即可显示为英文形式的日期了。
文件名
如果文件名是以“.”开头的,则表明这个文件为隐藏文件。隐藏文件通过指令“ls”是不会被显示出来的,需要使用“ls
-al”参数才能显示出来所有文件。
改变权限
改变拥有者chown(change
owner)
chown yly tmp //改变文件tmp的拥有者为yly用户
chown -R yly:yly tmp
//改变tmp文件及其下的文件和子目录的权限为yly用户:yly组
说明:要改变的文件拥有者,也就是用户名必须存在于/etc/passwd文件中,否则就会显示错误。另外用户密码
是保存在/etc/shadow文件夹中的。
改变群组chgrp(change
group)
chgrp yly tmp //改变tmp文件的群组为yly组
说明:要改变的目标群组名称必须在于/etc/group文件中存在,否则就会显示错误。
注意:当使用cp指令复制文件时,被复制的文件拥有者和群组仍没有改变,此时需要使用以上指令进行设置。
改变文件权限chmod
数字类型改变文件权限
owner、group和others中的r、w和x分别可以使用数字代表各属性:
r:4
w:2
x:1
例如:文件a.txt的权限为[-rwxrwx---],相加结果为:
owner = rwx = 4 + 2 + 1 = 7
group = rwx = 4 + 2 + 1 = 7
others = --- = 0 + 0 +0 = 0
所以,三组属性的数值可以表示为770。
chmod 754 a.txt //改变a.txt文件的权限为[-rwxr-xr--]
说明:要将一个文件的权限变为他人可执行且不可修改为755,变为其他人不能查看修改为740。
符号类型改变文件形态
分别使用u、g和o代表owner(user)、group和others,a代表全部(all)的三个组(u、g和o)。
使用+(加入)、-(除去)、=(设定)这3个参数进行权限修改。
chmod u=rwx,og=rx a.txt //改变文件a.txt的权限为[-rwxr-xr-x]
chmod a+w a.txt //给a.txt的三组(u、g和o)增加x属性,即改变权限为[-rwxrwxrwx]