首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 命令(80)—— chown 命令

Linux 命令(80)—— chown 命令

作者头像
恋喵大鲤鱼
发布2019-10-30 11:50:15
2.2K0
发布2019-10-30 11:50:15
举报
文章被收录于专栏:C/C++基础C/C++基础C/C++基础

版权声明:本文为博主原创文章,遵循 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系统的用户和用户组管理

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.命令简介
  • 2.命令格式
  • 3.选项说明
  • 4.常用示例
  • 5.拓展知识
    • 5.1 /etc/passwd 文件
    • 参考文献
    相关产品与服务
    访问管理
    访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档