linux系统是一个多用户系统,不一样的用户拥有不一样的权限,为了保护系统的安全性,linux系统对不一样的用户访问同一文件或者目录的权限作了不一样的规定。python
linux中咱们常常使用 ll 或者 ls -l 命令来显示一个文件的属性以及文件所属的用户和组linux
[root@hbase /]# ll 总用量 110 drwxr-xr-x. 2 root root 4096 9月 27 02:43 bak dr-xr-xr-x. 2 root root 4096 8月 1 19:33 bin dr-xr-xr-x. 5 root root 1024 7月 26 18:03 boot drwxr-xr-x. 18 root root 3760 10月 18 00:14 dev
以上例子中,bin文件的第一个属性用"d"表示这是一个目录。数组
linux中第一个字符表明这个文件是一个目录,文件或者连接文档等。安全
第一个字符之后的字符中,以三个为一组,都是以"rwx"三个参数组成且顺序不变,分别标识读,写和执行。若是没有权限就会用减号"-"来替代,以下图:bash
从左至右用0-9这些数字来表示。spa
第0位肯定文件类型,第1-3位肯定属主(该文件的全部者)拥有该文件的权限。第4-6位肯定属组(全部者的同组用户)拥有该文件的权限,第7-9位肯定其余用户拥有该文件的权限。code
[root@hbase /]# ll 总用量 110 drwxr-xr-x. 2 root root 4096 9月 27 02:43 bak dr-xr-xr-x. 2 root root 4096 8月 1 19:33 bin dr-xr-xr-x. 5 root root 1024 7月 26 18:03 boot drwxr-xr-x. 18 root root 3760 10月 18 00:14 dev
对于文件来讲,它都有一个特定的全部者,也就是这个文件是谁的。同时,linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件全部者之外的用户又能够分为,文件全部者同组用户和其余用户。所以,linux系统按文件全部者,文件全部者同组用户和其余用户来规定不一样文件的访问劝降。递归
以上代码中dev文件是一个目录文件,属主和属组,属主能够对该目录进行读写执行,与属主同组的其余用户有可读可执行权限,其余用户也有可读可执行的权限,而对于root用户来讲,通常状况下,文件的权限对其不起做用。ci
1,chgrp:更改文件属组文档
语法:chgrp [-R] 数组名 文件名
-R 递归更改文件属组,
2,chown:更改文件属主,也能够同时更改文件属组
语法:chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
3,chmod : 更改文件9个属性
Linux文件属性有两种设置方法,一种是数字,一种是符号。
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有本身的read/write/execute权限。
先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,咱们可使用数字来表明各个权限,各权限的分数对照表以下:
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是须要累加的,例如当权限为: [-rwxrwx---] 分数则是:
因此等一下咱们设定权限的变动时,该文件的权限数字就是770啦!变动权限的指令chmod的语法是这样的:
chmod [-R] xyz 文件或目录
选项与参数:
举例来讲,若是要将.bashrc这个文件全部的权限都设定启用,那么命令以下:
[root@www ~]# ls -al .bashrc -rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc [root@www ~]# chmod 777 .bashrc [root@www ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
那若是要将权限变成 -rwxr-xr-- 呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754。
还有一个改变权限的方法呦!从以前的介绍中咱们能够发现,基本上就九个权限分别是(1)user (2)group (3)others三种身份啦! 那么咱们就能够藉由u, g, o来表明三种身份的权限!
此外, a 则表明 all 亦即所有的身份!那么读写的权限就能够写成r, w, x!也就是可使用底下的方式来看:
chmod | u g o a |
+(加入) -(除去) =(设定) |
r w x |
文件或目录 |
若是咱们须要将文件权限设置为 -rwxr-xr-- ,可使用 chmod u=rwx,g=rx,o=r 文件名 来设定:
[root@www ~]# ls -al .bashrc -rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc [root@www ~]# chmod a+w .bashrc [root@www ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
而若是是要将权限去掉而不改变其余已存在的权限呢?例如要拿掉所有人的可执行权限,则:
[root@www ~]# chmod a-x .bashrc [root@www ~]# ls -al .bashrc -rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc