日期:2014-05-16  浏览次数:20635 次

我使用过的Linux命令之chmod - 改变文件/目录的访问权限

我使用过的Linux命令之chmod - 改变文件/目录的访问权限

本文链接:http://codingstandards.iteye.com/blog/1139523 ? (转载请注明出处)

?

用途说明

chmod用于更改文件或目录的访问权限。Linux/Unix下文件或目录的权限设置分为三级:属主、组、其他,每一级包括读、写、执行/搜索。详细说明见“常用参数”部分。常见用途就是给文件增加执行权限。

?

常用参数

格式:chmod +x *.sh

对shell脚本增加执行权限。否则脚本无法执行,报“没有权限”错误。

?

格式:chmod +x jdk*.bin

对jdk安装程序增加执行权限。

?

格式:chmod PERM file_or_dir

对文件file或目录dir设置PERM权限。其中PERM的表示方式有多种。

?

权限PERM的表示方式:

?

第一种方式:采用八进制数字来表示

用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,

每位通过4(读)、2(写)、1(执行)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限。
还可设置第四位,它位于三位权限序列的前面,第四位数字取值是4,2,1,代表意思如下:
4,执行时设置用户ID,用于授权给基于文件属主的进程,而不是给创建此进程的用户。
2,执行时设置用户组ID,用于授权给基于文件所在组的进程,而不是基于创建此进程的用户。
1,设置粘着位。


第二种方式:以who opcode permission形式表示

who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指定多个mode,以逗号分开。

who:u 用户 g 组 o 其它 a 所有用户(默认);

opcode:+ 增加权限 - 删除权限 = 重新分配权限;

permission:r? 读 w 写 x 执行 s 设置用户(或组)的ID号 t 设置粘着位(sticky bit),防止文件或目录被非属主删除。

注意:x权限的含义,对于文件是执行权限,对于目录是搜索权限;

比如:u+x表示给属主增加执行权限;u+r表示给属主增减读权限;

u=rwx,g=rx,o=x表示给属主分配读、写、执行(7)的权限,给所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限,等同于用八进制数字表示的751;

=r表示给所有用户分配读权限,等同于用八进制数字表示的444,或者a-wx,a+r;

a+x或者+x表示给所有用户增加执行权限;

ug+w,o-x表示对属主和同组用户增加写权限,对其他用户取消执行权限;

a=rwx表示对所有用户分配读写执行的权限,等同于用八进制数字表示的777。

?

参数:-R

递归设置子目录或文件的权限。

?

使用示例

示例一 给shell脚本增加执行权限

[root@jfht ~]# chmod -x ping.sh
[root@jfht ~]# ./ping.sh
-bash: ./ping.sh: 权限不够
[root@jfht ~]# chmod +x ping.sh
[root@jfht ~]# ./ping.sh
[root@jfht ~]#

?

示例二 给jdk安装文件增加执行权限

[root@jfht ~]# chmod +x jdk-6u20-linux-i586-rpm.bin

[root@jfht ~]#

?

问题思考

相关资料

【1】51CTO 对于Linux chmod命令的阐述
http://os.51cto.com/art/200912/172223.htm
【2】Qlj'blog linux chmod命令详细使用参数
http://qlj.sh.cn/linux/20080417/linux-chmod/

?

?

返回 我使用过的Linux命令系列总目录

?