linux系统的文件和目录属性都有访问许可权限。
文件或目录的访问权限分为只读、只写和可执行三种。其中这三种权限还对用户进行区分,分别是文件或目录拥有者、同用户组用户及其他用户。
如:
一个文件或目录有十位属性,分别是:
1——文件是目录还是纯文件。若是目录的话此位为d,否则为-
2~4——文件拥有者的读、写及可执行权限。r为可读,w为可写,x为可执行。
5~7——与文件拥有者同组的用户对该文件的读、写及可执行权限。
8~10——其他组用户对该文件的读、写及可执行权限。
如上例,表示test文件是一个纯文件,拥有者是用户hzb,拥有读写执行权限,与hzb同组的用户对test文件也有读写执行权限,其他用户则有读、执行权限。
chmod命令
功能:用于修改文件或目录的访问权限。方式有两种
1、文字设定法
chmod [who] [+|-|=] [mode] 文件名
who的可选项或组合:
u——表示“用户(user)”,即文件或目录的拥有者
g——表示“同组(group)”,即与文件或目录的拥有者同组的用户
o——表示“其他(other)”,即其他用户
a——表示“所有(all)用户”,即所有用户
操作符可选项:
+ 添加某个权限
- 取消某个权限
= 赋予给定权限并取消其他所有权限
mode的可选项及组合:
r 可读
w 可写
x 可执行
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性
s 在文件执行时把进程的拥有者的或组ID置为该文件的文件拥有者。方式"u+s"设置文件的用户ID位,“g+s"设置组ID位
u 与文件拥有者一样的权限
g 与文件拥有者同组用户一样的权限
o 与其他用户一样的权限
在一个命令行中可给出多个权限方式,其间用逗号隔开, 如chmod g+r,o+r test
对test文件添加同组可读权限,对其他用户可读权限
例:
chmod a+x test
对test文件添加所有用户的可执行权限。
chmod g-w test
对test同组用户删去可写权限
chmod u+s a.out
假设执行chmod后a.out的权限为(可以用ls – l a.out命令来看):
–rws--x--x 1 inin users 7192 Nov 4 14:22 a.out
并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为“–rw-------”,即该文件只有其属主具有读写权限。
当其他用户执行a.out这个程序时,他的身份因这个程序暂时变成inin(由于chmod命令中使用了s选项),所以他就能够读取shiyan1.c这个文件(虽然这个文件被设定为其他人不具备任何权限),这就是s的功能。
2、数字设定法
0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,组合的将其对应的值进行相加即可。
例:
chmod 644 test
对test文件添加拥有者可读可写权限,同 组可读权限,其他用户可读权限。
chgrp命令
功能:该表文件或目录所属的组
语法:chgrp [选项] group 文件名
选项可选:
-R 递归式地该表制定目录及其下的所有子目录和文件的拥有者
例
chgrp -R test /test
改变/test及其目录下的所有文件的属组为test
chown命令
功能:更改某个文件或目录的属主和属组。
语法:chown [选项] 用户或组 文件
说明:将制定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID
选项可选:
-R 递归式地改变指定目录及旗下的所有子目录和文件的拥有者
例:
chown hzg test
把test文件的所有者改为hzb
chown -R hzb.users /test
把/test及其下的所有文件和子目录的属主改为hzb,数组改为users