otu*_*tus 74 permissions chmod files setgid
你好我想了解chmod g+s命令在Unix中的作用。
我还想知道它在这种特定情况下的作用:
cd /home/canard;
touch un;
chgrp canard .;
chmod g+s .;
touch deux ;Run Code Online (Sandbox Code Playgroud)
我了解所有命令角色,除了chmod g+s我想知道文件之间的差异un以及deux由这一系列命令产生的差异。
Joh*_*024 91
chmod g+s .;
Run Code Online (Sandbox Code Playgroud)
此命令在当前目录上设置“设置组 ID”(setgid)模式位,写为..
这意味着在当前目录中创建的所有新文件和子目录都继承目录的组 ID,而不是创建文件的用户的主要组 ID。这也将传递到在当前目录中创建的新子目录。
g+s 影响文件的组 ID,但不影响所有者 ID。
请注意,这仅适用于新创建的文件。那些文件 移动 (mv)到该目录是由setgid的设置的影响。随同复制的文件cp -p也不受影响。
touch un;
chgrp canard .;
chmod g+s .;
touch deux ;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,deux将属于组canard但un将属于创建它的用户组,无论是什么。
与 C 或 Perl 不同,如果在同一命令行上有另一个 shell 命令跟在它后面,则 shell 命令只需要跟一个分号。因此,请考虑以下命令行:
chgrp canard .; chmod g+s .;
Run Code Online (Sandbox Code Playgroud)
最后的分号是多余的,可以删除:
chgrp canard .; chmod g+s .
Run Code Online (Sandbox Code Playgroud)
此外,如果我们将这两个命令放在不同的行上,那么剩下的分号就不需要了:
chgrp canard .
chmod g+s .
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅man chmod。此外,维基百科有总结命令选项的表格chmod。
小智 11
您可以使用 chmod 命令更改文件权限。在 Unix 中,文件权限由访问类和访问类型指定,文件权限确定谁可能对文件具有不同类型的访问权限。访问类是用户组,每个用户都可以分配特定的访问类型
选项 g+s 如下:
g - 文件组中的其他用户对其拥有的权限
s - 在执行时设置用户或组 ID
这是一个示例用法:
chmod =rwx,g+s filename
Run Code Online (Sandbox Code Playgroud)
(允许每个人读、写和执行特定文件并打开设置的组 ID)
要设置/修改文件的权限,您需要使用 chmod 程序。当然,只有文件的所有者可以使用 chmod 来更改文件的权限。chmod 具有以下语法: chmod [options] mode file(s) 'mode' 部分指定作为参数的文件的新权限。模式指定应更改哪些用户的权限,然后应更改哪些访问类型。让我们说例如:chmod ax socktest.pl
这意味着应为所有用户清除 (-) 执行位。(所有者、组和世界其他地方)权限以一个字母开头,指定哪些用户应该受到更改的影响,这可能是以下任何一项:
u the owner user
g the owner group
o others (neither u, nor g)
a all users
Run Code Online (Sandbox Code Playgroud)
紧随其后的是更改指令,该指令由 +(设置位)或 -(清除位)和对应于应更改位的字母组成。让我们看一些例子:
$ ls -l socktest.pl
-rwxr-xr-x 1 nick users 1874 Jan 19 10:23 socktest.pl*
$ chmod a-x socktest.pl
$ ls -l socktest.pl
-rw-r--r-- 1 nick users 1874 Jan 19 10:23 socktest.pl
$ chmod g+w socktest.pl
$ ls -l socktest.pl
-rw-rw-r-- 1 nick users 1874 Jan 19 10:23 socktest.pl
$ chmod ug+x socktest.pl
$ ls -l socktest.pl
-rwxrwxr-- 1 nick users 1874 Jan 19 10:23 socktest.pl*
$ chmod ug-wx socktest.pl
$ ls -l socktest.pl
-r--r--r-- 1 nick users 1874 Jan 19 10:23 socktest.pl
Run Code Online (Sandbox Code Playgroud)
奇怪的数字...您可能遇到过诸如 chmod 755 somefile 之类的东西,当然您会想知道这是什么。问题是,您可以使用一个数字(如本例中的数字)一次性更改文件的整个权限模式。每个模式都有一个相应的代码编号,正如我们将看到的,有一种非常简单的方法可以找出对应于任何模式的编号。模式编号的三位数字中的每一位都对应于三个权限三元组之一。(u, g 和 o) 三元组中的每个权限位对应一个值:r 为 4,w 为 2,x 为 1。如果权限位您将此值添加到权限三元组的数量。如果它被清除,那么你什么都不添加。(你们中的一些人可能会注意到,事实上,
你的三胞胎:
rwx => 4 + 2 + 1 =7g 三元组:
r-x => 4 + 0 + 1 =5o 的三元组:
r-x => 4 + 0 + 1 =5这使得:
755
因此,755 是一种简洁的方式,表示“我不介意其他人是否阅读或运行此文件,但只有我应该能够修改它”,而 777 表示“每个人都可以完全访问此文件”
我只想在这里添加我的答案,因为这个主题通常没有被清楚地理解。Linux文件/文件夹权限位总共由16位组成,细分如下:
文件或文件夹具有此user,group和other属性。该属性中的每个属性都包含read、write和子属性。executemodifier
它user有三位对应于rwx我们看到的东西。该group可能也有rwx,所以是other也有自己的rwx。但实际上,在它的下面是 is 修饰符rwx?位?。因此,我们有三个修饰符位,通常根据它是否是user,group或 的第 4 位来命名other:
然后,这些位的隐含系统语义根据它是文件、文件夹还是可执行文件而变化。最终的效果是,某些文件变成只读,或者可执行的二进制文件在RAM中长期保留,或者文件执行时进程的有效用户/组ID发生变化。
因此,以下命令将是无效且没有效果的:
chmod u+tchmod o+sand修饰符位可以通过 and 进行设置,出于某种原因或约定,user修饰符可以通过or simple设置。group+sothero+t+t
| 归档时间: |
|
| 查看次数: |
192407 次 |
| 最近记录: |