专栏首页C/C++基础Linux 命令(80)—— chown 命令

Linux 命令(80)—— chown 命令

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/K346K346/article/details/102782740

1.命令简介

chown 命令用来改变某个文件或目录的所有者(owner)和所属用户组(group)。

该命令通过改变文件的所有者或者所属用户组可以向某个用户授权。所有者可以是用户名或用户 ID,用户组可以是组名或组 ID。文件名是由空格分隔的文件列表,在文件名中可以包含通配符。一般来说,这个指令仅限系统管理者(root)使用,普通用户没有权限改变文件所有者及所属组。

2.命令格式

chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...

在指定所有者与所属用户组时有如下几种情况: (1)如果只指定了所有者,则只改变每个给定文件的所有者,不会更改文件的用户组; (2)如果所有者后面跟一个冒号和用户组,则文件所属的用户组也将被更改; (3)如果用户名后面有冒号但没有组名,则该用户将成为文件的所有者,并且文件属组将更改为该用户的登录组; (4)如果给定冒号和组名,但省略了所有者,则只更改所属组。这种情况,chown 的功能等同于 chgrp; (5)如果只给定一个冒号,或者整个操作数为空,则所有者和用户组都不会更改。

注意,OWNER 与 GROUP 之间的冒号可以使用点号替代。

3.选项说明

-c
--changes
	 输出效果类似 verbose 模式,但只在有更改生效时才显示
--dereference
	修改符号链接指向的实际文件的所有者和所属用户组,而不是符号链接文件本身。为默认选项
-f
--silent
--quiet
	忽略大部分错误信息
-v
--verbose
	显示指令详细的执行过程
-h
--no-dereference
	修改符号链接文件本身的所有者和所属用户组。作用与 --dereference 相反
--from=CURRENT_OWNER:CURRENT_GROUP
	只有当文件的所有者和所属组符合选项所指定的才更改。CURRENT_OWNER 和 CURRENT_GROUP 可以省略,这时省略的属性就不需要进行匹配
--no-preserve-root
	不特殊对待根目录 /。为默认选项
--preserve-root
	不允许在根目录 /上递归操作
--reference=RFILE
	使用指定的文件 RFILE 的所有者和所属用户组,而非指定值
-R
--recursive
	递归处理所有的文件及子目录
	
	以下三个选项 -H、-L 和 -P 与 -R 配合使用,用于递归操作时确定遍历的方式:
-H
	如果命令行参数是一个符号链接指向一个目录,则遍历它
-L
	遍历每一个符号链接指向的目录
-P
	不遍历任何符号链接。为默认选项
--help
	显示帮助信息
--version
	显示版本信息

4.常用示例

(1)只修改文件所有者为 root。

chown root FILE

注意,指定的所有者必须是系统合法用户,可以查看文件 /etc/passwd 确定当前系统有哪些用户。

(2)修改文件所有者和用户组均为 root。

chown root:root FILE

(3)只修改文件所属组为 root。

chown :root FILE

(4)递归修改所有的文件及子目录所有者和所属组为 root。

chown -R root:root /DIR

(5)显示修改的动作,使用 -v 冗余模式输出。

chown -vR root:root /DIR

5.拓展知识

5.1 /etc/passwd 文件

/etc/passwd 文件内容如下:

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...

在 passwd 文件中,第一行内容是超级用户 root 行,可以看到它的 uid 和 gid 都为 0。为了方便理解,下面给出各字段的描述:

字段1:用户名,这是用户登录时使用的账户名称,在系统中是唯一的,不能重名
字段2:密码占位符 x;早期的 Unix 系统中,该字段是存放账户密码的,由于安全原因,后来把这个密码字段内容移到 /etc/shadow 中了
字段3:UID;范围是 0-65535
字段4:GID;范围是 0-65535;当添加用户时,默认情况下会同时建立一个与用户同名且 UID 和 GID 相同的组
字段5:用户说明;这个字段是对这个账户的说明
字段6:宿主目录;用户登录后首先进入的目录,一般为 "/home/用户名" 这样的目录
字段7:登录 Shell   当前用户登录后所使用的 Shell,在 Centos/RHEL 系统中,默认的 Shell 是 Bash;如果不希望用户登登系统,可以通过 usermod 或者手动修改 passwd 设置,将该字段设置为 /sbin/nologin 即可。出于安全考虑,大多数内置系统账户都是 /sbin/nologin,表示禁止登录系统

参考文献

[1] ps manual [2]【Linux】一步一步学Linux——chown命令(112) [3] Linux系统的用户和用户组管理

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux命令(36)——awk命令

    AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输...

    Dabelv
  • 一致性Hash

    Hash(哈希),亦称作散列或杂凑,指将输入通过散列算法变换成对应的散列值。这种转换是一种压缩映射,也就是说散列值的空间通常远小于输入的空间,不同的输入可能会散...

    Dabelv
  • Linux下使用awk批量删除共享内存

    awk 是一个强大的文本分析工具。sed 常常用于一整个行的处理,而 awk 则倾向于以空格和tab键为默认分隔符将每行切片成一个个域(也就是一列)来处理。aw...

    Dabelv
  • FNV算法实战

      FNV哈希算法有如下两种,FNV-1a相比FNV-1,散列分布更好。二者不同点为:for循环两行代码的顺序相反

    charlieroro
  • Lniux 磁盘管理 和 分区

    lvcreat -l (小写) 个数

    DataScience
  • 答题类小程序大热回归,连「国家队」也出来搞事情 | 晓访

    知晓君
  • 布科思谢传泉:以定位导航为核心切入仓储物流领域 | 镁客请讲

    仓库要想完全实现自动化还需要较长的一个循序渐进的过程,由当前的人机协作,逐步达到完全的自动化。

    镁客网
  • 易图秒懂の神经网络诞生

    在“易图秒懂の人工智能诞生"里面,简述了人工智能背后的人物关系 ( 男人们间的关系 ”机器学习背后的男人们“ )。 这里开始解释神经网络。

    史博
  • 全球公有云市场将超2000亿美元

    中国IDC圈讯 根据咨询机构Gartner的最新数据,全球公共服务市场今年预计将增长17.5%,达到2143亿美元,高于2018年的1824亿美元。

    CloudBest
  • 重归智力巅峰,这些小程序不能错过

    知晓君

扫码关注云+社区

领取腾讯云代金券