linux chown命令
Linux系统上的每个文件和目录均由某人拥有,所有者可以完全控制更改或删除他们拥有的文件。 除了拥有所有者用户之外 ,文件还具有所有者组 。
您可以使用ls -l命令查看文件的所有权:
[ pablo
@ workstation Downloads
] $
ls
-l
total
2454732
-rw-r--r--.
1 pablo pablo
1934753792 Jul
25
18 :
49 Fedora-Workstation-Live-x86_64-
30 -
1.2 .iso
输出的第三和第四列是拥有用户和组,它们一起称为所有权 。 两者都是上述ISO文件的pablo 。
所有权设置(由chmod命令设置)控制允许谁执行读取,写入或执行操作。 您可以使用chown命令更改所有权(一个或两个)。
通常必须更改所有权。 文件和目录可以在系统上长期存在,但用户可以来去去。 当文件和目录在系统中或从一个系统移动到另一个系统时,所有权也可能需要更改。
我的主目录中的文件和目录的所有权是我的用户和我的主要组,以user:group的形式表示。 假设Susan正在管理Delta组,该组需要编辑一个名为mynotes的文件。 您可以使用chown命令将用户更改为susan ,将组更改为delta :
$
chown susan:delta mynotes
ls
-l
-rw-rw-r--.
1 susan delta
0 Aug
1
12 :04 mynotes
Delta组完成文件后,可以将其分配给我:
$
chown alan mynotes
$
ls
-l mynotes
-rw-rw-r--.
1 alan delta
0 Aug
1
12 :04 mynotes
(:)发送到用户的用户和组可以通过附加冒号被分配回我:
$
chown alan: mynotes
$
ls
-l mynotes
-rw-rw-r--.
1 alan alan
0 Aug
1
12 :04 mynotes
通过在组前面加上一个冒号,您可以只更改组。 现在, 伽玛组的成员可以编辑文件:
$
chown :gamma mynotes
$
ls
-l
-rw-rw-r--.
1 alan gamma
0 Aug
1
12 :04 mynotes
在命令行和脚本中,chown的一些附加参数都可能有用。 就像许多其他Linux命令一样,chown具有递归参数 ( -R )告诉命令进入该目录以对其中的所有文件进行操作。 如果没有-R标志,则仅更改文件夹的权限,而保留其中的文件不变。 在此示例中,假定目的是更改目录及其所有内容的权限。 在这里,我添加了-v (详细)参数,以便chown报告其工作情况:
$
ls
-l . conf
.:
drwxrwxr-x
2 alan alan
4096 Aug
5
15 :
33 conf
conf:
-rw-rw-r--
1 alan alan
0 Aug
5
15 :
33 conf.xml
$
chown
-vR susan:delta conf
changed ownership of
'conf/conf.xml' from alan:alan to susan:delta
changed ownership of
'conf' from alan:alan to susan:delta
根据您的角色,您可能需要使用sudo来更改文件的所有权。
--reference = RFILE ),以更改文件的所有权以匹配特定配置时,或者您不知道所有权(例如运行脚本时)。 例如,您可以复制另一个文件( RFILE ,称为参考文件)的用户和组,以撤消上面所做的更改。 回想点( 。 )指向当前的工作目录。 $ chown -vR --reference =. conf
报告变更
大多数命令都有用于控制其输出的参数。 最常见的是-v( - -verbose)启用详细,但执行chown还具有-C(--changes)参数指示CHOWN只报告时做出改变。 Chown还会报告其他内容,例如不允许进行的操作。
参数-f (-- silent ,-- quiet )用于禁止显示大多数错误消息。 在下一节中,我将使用-f和-c ,以便仅显示实际更改。
保留根
Linux文件系统的根( / )应该受到高度重视。 如果在此级别上犯了错误,后果可能会使系统完全无用。 尤其是在运行递归命令时,它会进行任何类型的更改或更糟的操作:删除。 chown命令具有可用于保护和保留根的参数。 参数是--preserve-root 。 如果将此参数与根目录上的递归chown命令一起使用,则不执行任何操作,而是出现一条消息。
$
chown
-cfR
--preserve-root alan
/
chown: it is dangerous to operate recursively on
'/'
chown: use
--no-preserve-root to override this failsafe
如果不与--recursive结合使用,则该选项无效。 但是,如果该命令由root用户运行,则/本身的权限将被更改,但其中的其他文件或目录的权限则不会更改。
$
chown
-c
--preserve-root alan
/
chown: changing ownership of
'/' : Operation not permitted
[ root
@ localhost
/
]
# chown -c --preserve-root alan /
changed ownership of
'/' from root to alan
所有权就是安全
文件和目录所有权是良好的信息安全性的一部分,因此,偶尔检查和维护文件所有权以防止不必要的访问很重要。 chown命令是Linux安全命令集中最常见和最重要的命令之一。
翻译自: https://opensource.com/article/19/8/linux-chown-command
linux chown命令