Linux中更改文件属性

简介:

时间:2017.11.28

作者:李强

参考:man,info,magedu讲义

声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。


Changing file attributes

  • chown invocation:: Change file owner and group
  • chgrp invocation:: Change group ownership
  • chmod invocation:: Change access permissions
  • touch invocation:: Change file timestamps

1、chown

NAME
       chown - change file owner and group

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

具体的选项和作用说明:
--dereference (默认)影响的是符号链接链接的参考文件而不是符号链接本身
-h --no-dereference,和--dereference相反,影响的是符号链接本身而不是引用的文件。
-f --silent,--quiet,禁止大多数错误消息
--from=OLD-OWNER 更改文件的所有者,仅仅这个文件被当前的所有者修改时,才能修改其所属为其他。比如这个文件正在被使用,突然被root用户给更换了用户而导致无法使用了的问题。降低下风险。
-c --changes,类似-v参数,但只有改变的时候才会显示
-v --verbose 显示过程
--reference=RFILE 参考文件的owner和group值而不是手动指定owner:group的值
--preserve-root (默认)不特殊对待根目录,可以改变根目录的所有者所属组
--no-preserve-root 不能对根目录做递归操作
-R --recursive,递归,危险的操作,会丢失原文件的所有者所属组信息,
下面的选项指定在指定R选项时层次结构是如何遍历的。如果超过一个被指定,只有最后一个生效。
-H 如果命令行参数是指向目录的符号链接,遍历它。
-L 
-P (默认)不要遍历任何符号链接,如果没有指定-H,-L或者-P

这里有几种格式带表不同的含义:

OWNER 改变文件的所有者
OWNER:GROUP 改变文件的所有者和所属组
OWNER: 改变文件的所有者和所属组为所有者的组
:GROUP 改变文件的所属组
: 什么都不改变

  • 在一些老的脚本还会使用“ . ”来代替 “ :” ,但是建议不要再使用,会出现一些不良后果,但是是兼容的,新的脚本还是建议使用colon冒号,靠谱。
  • owner和group可以使用数字和单词2种方式来表示。
  • chown -h -R --from=OLDUSER NEWUSER /

2、chgrp

NAME
       chgrp - change group ownership

SYNOPSIS
       chgrp [OPTION]... GROUP FILE...
       chgrp [OPTION]... --reference=RFILE FILE...

具体的选项和作用说明:
--reference=RFILE 参考文件group值而不是手动指定group的值,就这里和chown不一样。chown是参考文件的owner和group的值。
##还有没有--from=OLDUSER 这个选项,其他和chown一个模子刻出来,写程序的的人都是同样的

3、chmod

NAME
   chmod - change file mode bits

SYNOPSIS
   chmod [OPTION]... MODE[,MODE]... FILE...
   chmod [OPTION]... OCTAL-MODE FILE...
   chmod [OPTION]... --reference=RFILE FILE...

具体的选项和作用说明:
--no-preserve-root 允许从根递归删除文件,不用对根特别对待,
--preserve-root 未能在“/”上递归操作,可以用上面的命令取消,就可以删了
--reference=RFILE 想要继承别的文件权限的时候使用,省自己写了
-R, --recursive 针对目录下的文件继承目录的权限使用,省事
-v, --verbose 显示设置权限的操作过程
-f, --silent,--quite 禁止显示大多数错误

此命令可以也可修改suid,sgid,sticky
符号模式。
字母模式

4、touch

NAME
       touch - change file timestamps

SYNOPSIS
       touch [OPTION]... FILE...

具体的选项和作用说明:
-a 修改access time
-m 修改motification time
-c --no-create 如果后面跟的文件不存在不创建文件
-h --no-dereference 影响每一个链接文件而不是去影响间接引用的文件
-d --date=STRING
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
-t STAMP 用时间格式为 [[CC]YY]MMDDhhmm[.ss] 如果cc为20,那么yy范围是0-68,如果为19那么范围为69-99,如果没指定就是当前年份
--time=WORD 单词如果是access或者atime 等价于-a ,如果是modify或者是mtime等价于-m。更改的时间是atime和mtime
-r --reference=FILE 引用文件的时间而不是当前时间,可以和-d配合使用,比如 touch -r foo -d "-5 minutes" file 意思就是创建file文件然后修改其时间为foo文件时间减去5分钟的时间。如果-r 跟的是符号文件使用符号文件的引用文件的时间戳,除非有-h选项。

  • 默认不加选项就是更改文件的所有时间戳值,atime,mtime,ctime。只有当前时间和文件的atime时间相比超过一天才会避免频繁修改时间而带来不必要的资源消耗,通过chattr +A 可以锁定文件的atime不许修改,用户文件经常被访问时候。
  • 所有程序执行后的进程权限和使用用户有关,和程序是否有suid和sgid有关。

注意事项:

1、chown user:group file/direc 如果在设置文件的时候通过chown设置的时候要注意,当只有user:的时候,文件的所有者改为user,所有组就改为user的所有组了,user 或者group 或 :group 都没有问题,

2、还有一个问题就是chown 加上-R 的时候要注意了,这个是递归recursive的动作,如果你不确定,回车,会导致这个文件夹下的所有文件的所有者和所有组都会被修改,这是很危险的一个动作。
3、chmod -R  a=rwX  dir 递归修改权限的时候,如果目录下有文件有x权限才会给其他角色x权限,如果没有,不会像chmod -R  a=rwx dir 给文件加上x权限。


本文转自 lajifeiwomoshu 51CTO博客,原文链接:http://blog.51cto.com/lajifeiwomoshu/2045312


相关文章
|
3月前
|
Linux 数据安全/隐私保护 Windows
命令方式:window向linux传文件
【10月更文挑战第6天】本文介绍了如何在Linux系统中通过命令`ip a`获取IP地址,并在Windows系统下使用CMD命令行工具和SCP命令实现文件传输。示例展示了如何将D盘中的`mm.jar`文件上传至IP地址为192.168.163.122的Linux系统的/up/目录下,最后在Linux系统中确认文件传输结果。
313 65
|
3月前
|
运维 安全 Linux
Linux中传输文件文件夹的10个scp命令
【10月更文挑战第18天】本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法,涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景,旨在帮助用户在不同情况下高效安全地完成文件传输任务。
409 5
|
3月前
|
Linux Shell 数据库
Linux文件查找新姿势:总有一种你没见过
【10月更文挑战第18天】文件查找是Linux用户提升工作效率的重要技能。本文介绍了几种实用的文件查找方法,包括基础的`find`命令、快速的`locate`和`mlocate`、高效的`fd`工具、以及结合`grep`和`rg`进行内容搜索。此外,还提供了编写Shell脚本和使用图形界面工具的建议,帮助你更灵活地管理文件。
88 3
|
23天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
55 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
9天前
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
68 14
|
8天前
|
存储 NoSQL Linux
linux积累-core文件是干啥的
核心文件是Linux系统在程序崩溃时生成的重要调试文件,通过分析核心文件,开发者可以找到程序崩溃的原因并进行调试和修复。本文详细介绍了核心文件的生成、配置、查看和分析方法
41 6
|
10天前
|
存储 NoSQL Linux
linux之core文件如何查看和调试
通过设置和生成 core 文件,可以在程序崩溃时获取详细的调试信息。结合 GDB 等调试工具,可以深入分析 core 文件,找到程序崩溃的具体原因,并进行相应的修复。掌握这些调试技巧,对于提高程序的稳定性和可靠性具有重要意义。
53 6
|
2月前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
44 5
|
2月前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
55 6
|
2月前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
136 6

热门文章

最新文章