在unix以及linux之中,chmod命令用来改变文件以及目录的权限。这是unix和linux用户所必须熟知众多基本的命令之一。在这个unix命令的教程之中,我们将会学习到如何使用chmod命令来改变文件的权限,在unix之中文件权限指的什么。我们还将会了解unix中怎么使用 chmod命令来改变文件目录以及其子目录的权限,最后将会学习如何在unix中使用chmod命令改变可执行文件的权限。在直接进入这些例子之前,让我们先花上几分钟的时间来了解一下权限在unix之中指的是什么以及为什么我们需要改变文件的权限。
在unix之中每个文件拥有读、写、执行三种权限属性,同时有文件拥有者、拥有者所在组以及其他三个类型的属性。所以,每一个文件被提供的权限是指文件权限属和类型属性的组合。你可以使用 ls 命令来查看个人文件以及目录的权限。例如下面的文件:
1example@localhost~/test ls -lrt stock_trading_systems
2-rwxrwxrwx 1 example Domain Users 0 Jul 15 11:42 stock_trading_systems*
所有的用户、组成员和其他都对其都拥有读、写及执行的权限。你可以在我发表的《指导新手了解unix文件权限》中了解更多的文件权限相关知识。想了解更多的有关unix和linux权限请参看《unix文件和目录权限教程》一文。
unix及linux中的chmod命令实例
下面让我们来看看一些在unix中比较实用和常用的chmod命令实例
chmod命令实例1:在unix中使文件属性只读
在这个chmod命令的例子中我们将会知道如何使得一个文件只对其拥有者有只读权限。在随后的例子之中,你也可以给予组成员或其他类型成员读的权限而文件拥有者有写的权限。
1example@localhost~/test ls -lrt stock_trading_systems
2-rwxrwxrwx 1 example Domain Users 0 Jul 15 11:42 stock_trading_systems*
3#这里可以看出 所有的用户类型对 stock_trading_systems这个文件拥有读、写及执行的权限
4example@localhost~/test chmod 400 stock_trading_systems
5#400 表示 100 000 000,也就是指 r-- --- --- 即是只有文件拥有者有读的权限
6example@localhost~/test ls -lrt stock_trading_systems
7-r-------- 1 example Domain Users 0 Jul 15 11:42 stock_trading_systems
8#现在文件只有读的属性,并且只有文件拥有者才能读它 “ -r--------"
chmod命令实例2:只对拥有者、所在组成员或者其他类的权限进行修改
在这个chmod命令例子之中,我们将会知道如何在拥有者、所在组和其他类型的级别来改变文件权限。你也可以很简单的改变这其中任意类型的成员对文件的权限。如果你使用文本格式,那么’u‘表示文件文件拥有者,‘o’表示其他类型,‘g’表示所在组。同时‘r’表示可读,‘w’表示可写,‘x’表示可执行。+表示增加权限,-表示移除权限。
1example@localhost~/test ls -lrt chmod_examples
2-r-------- 1 example Domain Users 0 Jul 15 11:42 chmod_examples
3example@localhost~/test chmod u+w chmod_examples
4example@localhost~/test ls -lrt chmod_examples
5-rw------- 1 example Domain Users 0 Jul 15 11:42 chmod_examples
下面让我们使用chmod命令来只对组成员的文件权限进行修改
1example@localhost~/test ls -lrt chmod_examples
2-rw------- 1 example Domain Users 0 Jul 15 11:42 chmod_examples
3example@localhost~/test chmod g+w chmod_examples
4example@localhost~/test ls -lrt chmod_examples
5-rw--w---- 1 example Domain Users 0 Jul 15 11:42 chmod_examples
在这个chmod例子中我们将会仅改变其他类型对文件的权限但不影响文件拥有者以及拥有者所在组的权限。
1example@localhost~/test ls -lrt chmod_examples
2-rw--w---- 1 example Domain Users 0 Jul 15 11:42 chmod_examples
3example@localhost~/test chmod o+w chmod_examples
4example@localhost~/test ls -lrt chmod_examples
5-rw--w--w- 1 example Domain Users 0 Jul 15 11:42 chmod_examples
chmod命令实例3:对所有的类型成员(文件拥有者+所在组+其他)拥有的权限进行修改
在上一个unix的chmod命令例子中我们知 道如何逐个为 文件拥有者、所在组及其他类型成员改变权限,但是有的时候会需要对所有的类型成员的权限进行修改而不仅仅只是逐个修改其中之一。如果你使用文本格式,那么我们食用‘a’来表示所有,‘u’用来表示文件拥有者。