刚刚经理给我讲了有关权限的问题,后自己也在网上收集整理了下,特记于此。
-----------------------------------------------------------------------------------------------
linux系统中的每个文件和目录都有访问许可权限,用他来确定谁能通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为只读,只写和可执行三种。
文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可以根据需要把访问权限设置为需要的所有组合。
有三种不同类型的用户可对文件或目录进行访问:文件所有者、同组用户、其他用户。所有者一般是文件的创建者。所有者能允许同组用户有权访问文件,还能将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;和属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。
在linux中文件和目录的权限,可以使用命令ll或者ls -l显示文件或目录的详细信息时,最左边的一列就是文件的访问权限。
Linux文件权限针对的对象分三类(互斥的关系):
1. user(文件的拥有者)
2. group(文件拥有者所在的组,但不包括user)
3. other(其它用户,即user和group以外的)
Linux用一个3位二进制数对应着文件的3种权限(1表示有该权限,0表示无):
第1位 读 r 100 4
第2位 写 w 010 2
第3位 执行 x 001 1
查看权限命令:# ll 或 ls -l
第一列,一共10位(drwxrwxrwx),就代表了文件的权限:
1)第一个d代表是一个目录,如果显示“-”,则说明不是一个目录
2)2-4代表user的权限
3)5-7代表group的权限
4)8-10代表other的权限
对于后9位:
r 代表可读(read),其值是4
w 代表可写(write),其值是2
x 代表可执行(execute),其值是1
- 代表没有相应权限,其值是0
修改文件权限命令: # chmod [ugoa][+-=][rwx] 文件名
1)用户
u 代表user
g 代表group
o 代表other
a 代表全部的人,也就是包括u,g和o
2)行动
+ 表示添加权限
- 表示删除权限
= 表示使之成为唯一的权限
3)权限
rwx也可以用数字表示法,不过要自己算,比如 rw=6
常见权限:
-rw?? (600) 只有所有者才有读和写的权限
-rw-r??r?? (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx?? (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx??x??x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限,最大权限。
修改属主和属主所在的组的命令:#chown
若要将myfile的属主修改为Tina的,那么使用:#chown Tina myfile
若要将文件的属主所在的组改为smallstop组,使用:#chown .smallstop myfile
和在一块就是:#chown Tina.smallstop myfile
删除文件,只需当前目录具有rw权限。
经理还讲到Linux系统在设计上的一个弊端,就是文件所有者可以修改权限。在windows上是只有root用户才可以修改权限。(待修正)