Linux 之所以是比较安全的操作系统,和它丰富的文件权限设定是有关系的,学习 Linux 操作系统一定要懂文件的权限识别和设置。通过这篇博文我们了解 Linux 操作系统的文件权限。
拥有者 / 群组 / 其他人
拥有者:谁创建了这个文件,谁就是文件的拥有者
群组:文件创建者所在的群组,就是文件的群组,文件群组的权限,不是指这个群组的组织对文件的权限,而是在群组里面的成员拥有的权限。
其他人:出去文件拥有者和群组外的人,就是文件权限中的其他人。
这儿举个例子来说明下者三个概念:两个帮派,帮派 A 、帮派 B。帮派 A 里面有 张无忌、乔峰、杨过。帮派 B 里面有 鹤笔翁、鹿杖客、田伯光。这时候 张无忌自创了一套武功,降龙十九掌,那么张无忌就是这套武功的拥有者,帮派 A 就是这套武功的群组,乔峰和杨过就是帮派 A 的权限。剩下的人就是其他人了。
文件权限
我们先通过 ls -al 来看一下权限
1、文件类型和权限:下图足以表达出权限中的含义
1)第一个字符档案类型,分别有 文件、目录或者连接文件等,下面列出来具体的内容
- 当为[ d ]则是目录,例如上表文件名为“.config”的那一行
- 当为[ - ]则是文件,例如上表文件名为“initial-setup-ks.cfg”那一行
- 若是[ l ]则表示为链接文件(link file)
- 若是[ b ]则表示为设备文件里面的可供储存的周边设备(可随机存取设备)
- 若是[ c ]则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)
2、第二栏表示有多少文件名链接到此节点(i-node)
每个文件都会将他的权限与属性记录到文件系统的i-node中,不过,我们使用的目录树却是使用文件名来记录, 因此每个文件名就会链接到一个i-node啰!这个属性记录的,就是有多少不同的文件名链接到相同的一个i-node号码去就是了。 关于i-node的相关数据我们会在第七章谈到文件系统时再加强介绍的。(这个还不是太了解,待第七章江西了解下)
后面几项都好理解,这儿就不在介绍。
改变文件属性与权限
既然有文件权限,那么肯定也应该可以修改的,权限的修改主要有一下两种:
- chgrp:改变文件所属群组。
- chown:改变文件拥有者
- chmod:改变文件的权限。
为了更好的演示这三个命令,我们先来看一下另外一个命令:touch(新建文件,用法:touch [fileName]),mkdir (新建目录,用法:mkdir [fileName])。我们在 admin 账号主文件夹下创建一个 mydir 目录。然后在这个文件里面创建 两个文件:mytstfile、mytstfile2,创建好的目录和文件如下图:
1、chgrp:chgrp [群组] [文件名]
把 mytstfile 文件群组由 root 修改为 admin。命令如下:chgrp admin mytstfile 。
如果是修改目录,那么 中间加 R 就表示所有文件都要修改。
*** 需要注意的是,要修改到的群组,在 /etc/group 文件中必须存在。*******
2、chown:chgrp [拥有者] [文件名] 用法如修改群组
*** 需要注意的是,要修改到的拥有者,在 /etc/passwd 文件中必须存在。*******
3、chmod:权限我们知道除了第一个表示文件类型外,后面的都是三个一组的,三组分别是 拥有者/群组/其他人。而每种权限又是 r 读、w 写、x 执行 - 无权限 中一个或几个。其中我们可以用数字来代表各个权限,如:r = 4,w = 2,x = 1,- = 0。而权限就可以根据数据来表示,比如:
[-rwxr-xrw-] own = rwx = 4+2+1 = 7;group = r-x = 4+0+1 = 5 ;others = rw- = 4+2+0 = 6 。那么这个权限用数字表示就是 756
1) 、数字类型修改文件权限。
根据这个表示,我们接下来设置权限,就可以根据数字来表示了。修改权限为:chmod 命令数字,如: chmod 777 mytstfile 。具体看例子:
2) 符号类型修改文件权限
权限中的的分组是:users、group、others三组身份。那么就用 u 代表 users,g 代表 group,o 代表 others。另外 a 代表全部的身份。读写执行权限就用 r w x 来表示。设置权限命令:
chmod u=rwx,g=rx,o=r filename
1 ##原来的文件权限 2 [admin@bogon mydir]$ ls -al 3 -rwxrwxrwx. 1 admin admin 0 12月 9 22:40 mytstfile 4 5 ##修改命令 6 [admin@bogon mydir]$ chmod u=rw,g=rx,o=r mytstfile 7 8 ##修改后的权限 9 [admin@bogon mydir]$ ls -al 10 总用量 4 11 -rw-r-xr--. 1 admin admin 0 12月 9 22:40 mytstfile
也可以统一来加某项命令,或者减某项命令
##所有的加上执行的权限 [admin@bogon mydir]$ chmod a+x mytstfile [admin@bogon mydir]$ ls -al 总用量 1 -rwxr-xr-x. 1 admin admin 0 12月 9 22:40 mytstfile ##所有的去掉可写的权限 [admin@bogon mydir]$ chmod a-w mytstfile [admin@bogon mydir]$ ls -al 总用量 1 -r-xr-xr-x. 1 admin admin 0 12月 9 22:40 mytstfile ##给使用者加上 可写的权限 [admin@bogon mydir]$ chmod u+w mytstfile [admin@bogon mydir]$ ls -al 总用量 1 -rwxr-xr-x. 1 admin admin 0 12月 9 22:40 mytstfile ##给群组和其他人加上可写的权限 [admin@bogon mydir]$ chmod g+w,o+w mytstfile [admin@bogon mydir]$ ls -al 总用量 1 -rwxrwxrwx. 1 admin admin 0 12月 9 22:40 mytstfile
小结
此博文主要减少文件权限操作方面的一些知识。到此就结束了。学习权限方面的知识,还是需要多多操作,在电脑上安装一个虚拟机,然后安装一个 Linux 操作系统是最好的办法。