三、Linux文件权限
首先来查看一下当前目录下的文件内容吧
ls -l 查看当前目录下的文件列表
ls -l xxx.xxx (xxx.xxx是文件名) 查看指定的文件
我们可以看见文件的权限,-rw-rw-r--,一共有10位数。
其中:最上面那种-代表的是类型(详尽如下边贴图所示)
中间那三个rw-代表的是所有者(user)
之后那三个rw-代表的是组群(group)
最后那三个r--代表的是其他人(other)
之后我再解释一下前面那9位数:
r表示文件可以被读(read)
w表示文件可以被写(write)
x表示文件可以被执行(假如它是程序的话)
-表示相应的权限还没有被授予
文件和文件夹操作权限:
权限缩写对普通文件的作用对文件夹的作用
读取
r
查看文件内容
列举文件夹中的文件(ls)
写入
w
更改文件内容
在文件夹中删掉、添加或重命名文件(夹)
执行
x
文件可以作为程序执行
cd到文件夹
图解:
须要注意的一点是,一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才准许在其中创建其它文件,这是由于目录文件实际保存着该目录上面的文件的列表等信息。
补充:
特殊权限SUID、SGID、Sticky在linux系统中还有三种与用户身分无关的三个文件权限属性。即SUID、SGID和Sticky。SUID(SetUserID,4):该属性只对有执行权限的文件有效,对目录无效。执行具有SUID权限的程序时,引起的进程的所有者是程序文件的所有者,而不是启动程序的用户(除非两者是同一个人)。例如,假若一个程序的所有者是root且具有SUID属性linux 查看 文件 权限,一个普通用户执行此程序时,就像root执行此程序一样。(请注意该属性对Shell脚本程序无效)该属性为一些特殊程序(如lpr)的启动带来了便捷。但有时也带来了安全隐患:例如一个具有SUID属性的程序若果在执行时运行了一个shell,这么用户可以籍此得到系统的最高权限。SUID可用s表示,如:$ls-l/usr/bin/passwd-rwsr-xr-x1rootroot47032Feb162014/usr/bin/passwd
SGID(SetGroupID,4):
对于可执行文件,SGID与SUID类似,引起的进程的所有组是程序文件所属的组。对于目录,SGID属性会使目录中新建文件的所属组与该目录相同。SGID也可以用
s
表示,如:
$ls-l/var
drwxrw
s
r-x2rootstaff4096Apr102014local
drwxrwxr-x15rootsyslog4096Apr419:57log
Sticky,1:
仅对目录有效。带sticky属性的目录下的文件或目录可以被其拥有者删掉或更名。常借助sticky属性创建这样的目录:组用户可以在此目录中创建新文件、修改文件内容,但只有文件所有者能够对自己的文件进行删掉或更名。如系统中的/tmp文件夹。在属性字符串中linux串口驱动,一般用
t
表示。
$ls-l/
drwxrwxrw
t
8rootroot4096Apr423:57tmp
更改文件和文件夹对应用户的操作权限
假如你有一个自己的文件不想被其他用户读、写、执行,这么就须要对文件的权限做更改,这儿有两种形式:
方法一:二补码数字表示
每位文件的三组权限:u代表所有者(user)g代表所有者所在的组群(group)o代表其他人linux 查看 文件 权限,但不是u和g(other)a代表全部的人,也就是包括u,g和o按照上图,其中:rwx也可以用数字来取代r------------4w-----------2x------------1-------------0
当你们都明白了前面的东西然后,这么我们常见的以下的一些权限就很容易都明白了:-rw-------(600)只有所有者才有读和写的权限-rw-r--r--(644)只有所有者才有读和写的权限,组群和其他人只有读的权限-rwx------(700)只有所有者才有读,写,执行的权限-rwxr-xr-x(755)只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限-rwx--x--x(711)只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限-rw-rw-rw-(666)每位人都有读写的权限-rwxrwxrwx(777)每位人都有读写和执行的权限
上实际操作
查看了test的权限,是所有者拥有读、写、执行的权限:
之后向文件里添加了些内容,修改了下权限(700:-rwx------),并尝试在shiyanlou(所有者)下读取文件,可以读取。
更换到其他用户Peter,如右图再尝试读取linux教程,显示是权限不够,难以读取。
形式二:加减形参操作
u代表所有者(user)g代表所有者所在的组群(group)o代表其他人,但不是u和g(other)
a代表全部的人,也就是包括u,g和o
+和-分别表示降低和除去相应的权限。+号通常不显示(初学练手时我还是会加上)
在终端输入:chmodo+wxxx.xxxchmodowxxx.xxx表示给其他人授予写xxx.xxx这个文件的权限
chmodgo-rwxxx.xxx表示删掉xxx.xxx中组群和其他人的读和写的权限chmodug-rxxx.xxx
更改文件或文件夹的拥有者/所属的组
使用命令chown改变目录或文件的所有权(所有者/组)
注释:这儿说的断断续续的,将在学习下一个内容(用户/组增删改查)然后补充
文件与目录除了可以改变权限,其所有权及所属用户组也能更改,和设置权限类似,用户可以通过图形界面来设置,或执行chown命令来更改。我们先执行ls-l瞧瞧目录情况:
可以看见test文件的所属用户组为root,所有者为root。执行下边命令,把上图中test文件的所有权转移到用户peter:#chownpetertest
要改变所属组,将test文件从root组中转移到组Peter中,可使用下边命令:#chown:petertest
将所属的用户和组一起修改将文件夹或文件test的拥有者更改成shiyanlou,所属的组更改成shiyanlou,如右图: