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

通过在组前面加一个冒号,可以只更改组。现在,gamma 组的成员可以编辑该文件:

$ 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 -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 安全命令集中最常见和最重要的命令之一。

chown 命令使用方法相关推荐

  1. linux chown命令格式,Linux chown命令详解使用格式和方法

    指令名称 : chown     使用权限 : root 使用方式 : chown [-cfhvR] [--help] [--version] user[:group] file- 利用 chown ...

  2. linux chown 命令 更改设置文件对应的用户和组

    更改设置文件对应的用户和组 chown语法: chown [选项]-[所有者][:[用户组]] 文件-- root@localhost ~]# chown root.root 1.txt # 同时修改 ...

  3. Linux 常用命令使用方法

    Linux 常用命令使用方法 1.# 表示权限用户(如:root),$ 表示普通用户  开机提示:Login:输入用户名  password:输入口令   用户是系统注册用户成功登陆后,可以进入相应的 ...

  4. linux命令:vim文件操作命令、新建用户,查看用户列表,chown命令

    命令 简单说明 :w 保存编辑后的文件内容,但不退出vim编辑器.这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中. :w! 强制写文件,即强制覆盖原有文件.如果原有文件的访问权限不允 ...

  5. php 运行外部程序_PHP在linux上执行外部命令的方法

    目录: 一.PHP中调用外部命令介绍 二.关于安全问题 三.关于超时问题 四.关于PHP运行linux环境中命令出现的问题 一.PHP中调用外部命令介绍 在PHP中调用外部命令,可以用,1>调用 ...

  6. Linux chown命令学习

    一般试用方法: chown -R name 用途: 更改与文件关联的所有者或组. 语法: 1.chown [ -f ] [ -h ] [ -R ] Owner [ :Group ] { File .. ...

  7. linux红帽chown命令,Linux chown命令

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...

  8. linux操作系统怎么创建文件,Linux操作系统创建文件命令的方法

    创建文件 mkdir aaa mkdir –p aaa 创建文件夹命令 Vi foo.txt emacs foo.txt echo "aaa">foo.txt cat > ...

  9. Linux 常用命令使用方法大搜刮

    Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户   开机提示:Login:输入用户名   password:输入口令   用户是系统注册用户成功登陆后,可以 ...

最新文章

  1. 概率x^2 t F三大分布的联系
  2. 十一、springboot WebMvcConfigurer与HandlerInterceptorAdapter使用
  3. 第 1 章 虚拟化 - 013 - 动手实践 Linux VLAN
  4. 我的C#文章模块代码
  5. Qt Creator如何恢复默认布局
  6. Android7.0 PowerManagerService亮灭屏分析(三)
  7. 以太坊Sharding FAQ
  8. html5 js保存token,vue生成token并保存到本地存储中
  9. 2020年计算机视觉学习指南
  10. 【youcans 的 OpenCV 例程 200 篇】107. 退化图像的维纳滤波
  11. C++之运算符重载(前置++和后置++)
  12. 一天一种设计模式之七-----装饰模式
  13. 精细运营,这只“蚂蚁”开辟了一条全新的财富之路
  14. linux如何磁盘管理工具下载,Linux_Linux系统的磁盘空间管理工具, 1.fdisk -lDis - phpStudy...
  15. 第八次作业——MPEG音频编码
  16. 推荐一部非常精彩的小说
  17. 开发钉钉和企业微信微应用
  18. minpack.error: Result from function call is not a proper array of floats.
  19. 亚信Internet中国
  20. Objective-C Memory Management For Lazy People

热门文章

  1. python学习第一站:计算机基础
  2. 你需要补哪些核心能力?
  3. 北师大历史系1965级2012同学聚会诗词汇集
  4. 上市六年亏损五年,飞鱼科技有什么魔力让腾讯两次增持?
  5. 华云数据张华林:投身数字蓝海 绘就云上强国
  6. 2434 失恋28天-追女孩篇
  7. PAOGD个人作业2-角色动画基础(Blender骨骼动画)
  8. JAVA中线程中的异步和同步
  9. 叮叮当当(c++基础)
  10. 任务管理器没有菜单栏了