chmod u+x和just chmod +x有什么区别?我看过大量的教程,其中说使用u+x使脚本可执行。但是,省略u似乎没有任何效果。

#1 楼

chmod的手册页对此进行了介绍。



u代表用户。

g代表组。

o代表其他人。

a代表所有人。

这意味着chmod u+x somefile仅授予该文件执行权限的所有者,而chmod +x somefilechmod a+x somefile相同。

chmod手册页显示:


符号模式的格式为
[ugoa...][[+-=][rwxXstugo...]...][,...]
可以进行多个符号操作


字母'ugoa'的组合
控制将更改哪些用户对
文件的访问权限:
拥有它(u),该文件的
组中的其他用户(g),不在该文件的组中的其他用户(o)或所有用户(a)。如果
都不给出,则效果为
,就好像给出了“ a”一样,但是在umask中设置
的位不受影响。


评论


我有一个小问题,a + x和111之间有什么区别。它使两者都可执行

– John K
2015年5月31日12:56

这是因为1是代表执行权限的八进制符号。 111表示对用户,组和其他用户可执行。

–奥塔维亚人A. Damiean
15年6月23日在18:47

很棒的答案

–m4heshd
17年5月30日在22:47

umask效果很重要,它使chmod + x文件不同于chmod a + x文件-有关详细信息,请参见Ravexina的答案。

–肉桂
17年12月1日在20:50



#2 楼

只需执行+x即可将其应用于所有标志:[u] ser,[g] roup,[o] thers。

键入man chmod了解更多信息。

评论


我保证我会先检查手册,但由于跳过了说明并跳至选项,所以没有看到它。我现在看到他们了:-)

–内森·史威文(Nathan Schwermann)
2011-3-8在23:41



#3 楼

要求

首先,我建议您阅读以下问题和链接的答案: 755”?
“ umask”是什么,它如何工作?

它可以帮助您了解所有需要了解的必要部件。 >简短版本



chmod +x等于chmod ugo+x(基于umask值)

chmod a+x等于chmod ugo+x(不考虑umask值)<


解释

chmod a+x的结果是为所有人(所有者,组,其他)设置可执行位,对吗?

但是使用chmod +x有点棘手,它说使用umask值,并根据该值将x添加到允许的所有人中。环境是umask

$ umask
0002
$ umask -S
u=rwx,g=rwx,o=rx


它将0002添加到用户(所有者),组和其他用户,在这种情况下(这是大多数系统的默认情况)与x完全相同,或与chmod ugo+x相同,或更详细:



现在让我们将当前外壳程序的chmod a+x更改为chmod u+x,g+x,o+x:可执行位,而不是其他位。这意味着umask -S现在等于umask0003。 br />
和以前一样,它只影响文件的chmod +xchmod u+x,g+x,因为3也删除了写许可权(2)。 />删除chmod ug+x之类的东西时具有相同的效果:

chmod u+x,g+x,o+x




$ umask 0003
$ umask
0003
$ umask -S
u=rwx,g=rwx,o=r




$ mkdir test
$ stat -c %A test
drwxrwxr-x




$ umask
0002


#4 楼

chmod u+x将使该文件对您的用户可执行(它只会为您的用户添加该文件,尽管该文件可能已由组所有者或“其他”文件执行)。

chmod +xchmod a+x(“所有加可执行位”)使文件对所有人都可执行。

如果对目录执行此操作,则使目录可搜索。即,您可以列出拥有+ x权限的目录的内容。

评论


对不起,但是这件事对我来说不起作用。我已经用sudo尝试过了,但没有在我的计算机上工作。 askubuntu.com/questions/178231/how-to-set-permission-in-ubuntu

–阿尼鲁达·古普塔(Anirudha Gupta)
2012年8月20日18:39



@ AnkitGupta我不确定你在说什么。我的评论并非旨在解决其他问答中的问题。尝试要求澄清答案。编辑您的问题,说出您尝试过的内容。显示输出。

– Belacqua
2012年8月20日19:00

#5 楼


chmod u+x file表示在不考虑umask的情况下将可执行文件位添加到文件的所有者(您的mod将被设置,没问题)。 chmod +x file(首先使用umask进行检查,然后应用mod,根据umask的值,它可能会有不同的效果)。


创建两个文件: br />
现在我将umask设置为“ 111”以删除可执行位:umask。 br />
如您所见,umask 111忽略了chmod,而file1为其所有者获得了可执行位,但是第二个却什么也没做,因为它正在考虑umask的值。