chmod +x 是将文件状态改为可执行,而chmod 777 是改变文件读写权限。
在linux中使用man命令查看chmod的大纲我们可以得出以下有用的信息:
chmod [OPTION]… MODE[,MODE]… FILE…
chmod [OPTION]… OCTAL-MODE FILE…
chmod [OPTION]… --reference=RFILE FILE…
OPTIONS
Change the mode of each FILE to MODE. With --reference, change the mode of each FILE to that of RFILE.
-c, --changes
like verbose but report only when a change is made-f, --silent, --quiet
suppress most error messages-v, --verbose
output a diagnostic for every file processed--no-preserve-root
do not treat '/' specially (the default)--preserve-root
fail to operate recursively on '/'--reference=RFILE
use RFILE's mode instead of MODE values-R, --recursive
change files and directories recursively--help display this help and exit
--version
output version information and exit
Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.
那么根据上述得到的信息,chmod +x 与chmod 777究竟有啥区别呢?让我们先来了解一下这个:
u User,即文件或目录的拥有者;g Group,即文件或目录的所属群组;o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;a All,即全部的用户,包含拥有者,所属群组以及其他用户;
mode : 权限设定字串,格式如下 : [ugoa…][[±=][rwxX]…][,…]
其中+ : 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 读取权限,数字代号为“4”;w 写入权限,数字代号为“2”;x 执行或切换权限,数字代号为“1”;- 不具任何权限,数字代号为“0”;
s 特殊功能说明:变更文件或目录的权限。
命令中各选项的含义为:
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
操作对象who可是下述字母中的任一个或者它们的组合:
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
linux下一般会发现有很多颜色不同的文件:
绿色文件: 可执行文件,可执行的程序
红色文件:压缩文件或者包文件
蓝色文件:目录
白色文件:一般性文件,如文本文件,配置文件,源码文件等
浅蓝色文件:链接文件,主要是使用ln命令建立的文件
红色闪烁:表示链接的文件有问题
黄色:表示设备文件
灰色:表示其他文件
对于chmod +x file 来说就是将file改为可执行状态,在linux因高亮语法,会让file文件显示绿色。对于灰色的文件来说,没有可执行的权限,这是若我们给它chmod +x后它将会变为可执行的绿色文件。
chmod 777的语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
范例:
chmod a=rwx file 和chmod 777 file效果相同
chmod ug=rwx,o=x file和chmod 771 file效果相同
若用chmod 4755 filename可使此程式具有root的权限
综上chmod +x 是将文件状态改为可执行,而chmod 777 是改变文件读写权限。
注:转载自:
chmod +x 与chmod 777 的超详细解说_一只心比天高的蚂蝗的博客-CSDN博客