linux修改用户uid和gid并且修改文件所有权(所属用户及所属用户组)(chown命令、chgrp命令)(批量修改查找并修改文件、目录uid和gid)

文章目录

  • 修改Linux用户UID和GID以及文件所有权
    • 1. 修改用户的UID和GID
      • 1.1 用户UID和GID的概念
      • 1.2 修改用户UID
      • 1.3 修改用户GID
    • 2. 修改文件所有权
      • 2.1 文件所有权的概念
      • 2.2 修改文件所有者(chown命令)
      • 2.3 修改文件所属用户组(chgrp命令)
    • 3. 注意:在Linux系统中,当修改用户的uid或gid后,该用户所拥有的文件的所有者信息并不会自动更改。它们仍然会关联到旧的uid和gid
      • 将所有属于旧uid的文件更改为新的uid
      • 将所有属于旧gid的文件更改为新的gid

修改Linux用户UID和GID以及文件所有权

在Linux系统中,每个用户和用户组都有唯一的数字标识符,分别称为用户ID(UID)和组ID(GID)。在某些情况下,可能需要修改这些值。例如,当将文件从一个环境迁移到另一个环境时,如果在目标环境中的UID和GID与源环境不匹配,则需要进行修改。此外,还可能需要修改文件或目录的所有权。

1. 修改用户的UID和GID

1.1 用户UID和GID的概念

在Linux系统中,用户账号信息包括用户名、密码、用户ID(UID)、用户组ID(GID)等存储在/etc/passwd文件中。每个用户和用户组都有唯一的数字标识符,这就是所说的UID和GID。这两者在系统中用于识别用户或用户组,而不是通过用户名或组名。

cat /etc/passwd

在这里插入图片描述

例如,在/etc/passwd文件中的一行可能看起来像这样:

username:x:1001:1001::/home/username:/bin/bash

其中,第三字段1001就是UID,第四字段1001就是GID。

1.2 修改用户UID

修改用户的UID可以使用usermod命令,其基本格式如下:

sudo usermod -u new_uid username

其中,new_uid是新的用户ID,username是要修改的用户名。

1.3 修改用户GID

修改用户的GID可以使用groupmod命令,其基本格式如下:

sudo groupmod -g new_gid groupname

其中,new_gid是新的组ID,groupname是要修改的组名。

2. 修改文件所有权

2.1 文件所有权的概念

在Linux系统中,每个文件都有一个所有者和一个所属组。所有者是创建文件的用户,所属组则是创建文件用户所在的用户组。文件所有者和所属组可以使用chown和chgrp命令进行修改。

2.2 修改文件所有者(chown命令)

修改文件或目录的所有者可以使用chown命令,其基本格式如下:

sudo chown new_owner filename

其中,new_owner是新的所有者用户名,filename是要修改的文件或目录名。

如果要递归修改目录中所有文件的所有者,可以加-R参数:

sudo chown new_owner dir_name -R

2.3 修改文件所属用户组(chgrp命令)

修改文件或目录的所属用户组可以使用chgrp命令,其基本格式如下:

sudo chgrp new_group filename

其中,new_group是新的用户组名,filename是要修改的文件或目录名。

如果要递归修改目录中所有文件的所属用户组,可以加-R参数:

sudo chgrp new_group dir_name -R

3. 注意:在Linux系统中,当修改用户的uid或gid后,该用户所拥有的文件的所有者信息并不会自动更改。它们仍然会关联到旧的uid和gid

如果想更改文件的所有者,需要手动使用chown和chgrp命令来更改每个文件的所有者和组。

将所有属于旧uid的文件更改为新的uid

例如,如果想将所有属于旧uid的文件更改为新的uid,你可以使用以下命令:

find / -user old_uid -exec chown new_uid {} \;

命令解释:
这个命令的功能是在整个系统中查找所有属于旧UID用户的文件,并将这些文件的所有者更改为新UID。
这个命令的结构分为三个主要部分:

  1. find / -user old_uid: 这个部分的功能是在根目录(/)下查找所有属于旧UID用户的文件和目录。-user参数后跟旧的UID,表示查找所有者UID为old_uid的文件。

  2. -exec: 这个部分是find命令的一个选项,它告诉find命令对找到的每个文件执行后面的命令。在此例中,后面的命令是chown new_uid {},其中chown new_uid是要执行的命令,而{}是一个特殊符号,代表find命令找到的每个文件。

  3. \;: 这个部分是-exec选项的结束标记,表示命令的结束。

所以,整个命令的意思是:在整个系统(从根目录开始)中查找所有属于旧UID用户的文件和目录,并使用chown命令将这些文件和目录的所有者更改为新的UID。

将所有属于旧gid的文件更改为新的gid

类似地,你可以使用以下命令来更改组:

find / -group old_gid -exec chgrp new_gid {} \;

命令解释: 这是一个使用find命令在Linux中查找并更改文件组的示例。下面来详细解释一下这个命令:

  1. find / -group old_gid: 这部分命令会在整个文件系统(由于指定的目录为根目录“/”)中查找所有属于组ID为old_gid的文件和目录。
  2. -exec chgrp new_gid {} \;: 这部分命令对上述查找到的每一个文件或目录执行chgrp命令,将它们的所属用户组改为new_gid。这里的{}是一个特殊符号,代表find命令找到的每一个文件或目录的路径,\;则表示-exec选项的结束。

所以整条命令的意思是:查找文件系统中所有所属用户组为old_gid的文件和目录,并将这些文件和目录的所属用户组改为new_gid。

请注意,这些命令可能需要root权限才能执行,并且在执行之前,建议先备份重要数据以防意外发生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/231533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gitlab仓库推送到Gitee仓库的一种思路

文章目录 Gitlab仓库推送到Gitee仓库的一种思路1、创建Gitee的ssh公钥(默认已有Gitlab的ssh公钥)2、添加Gitlab远程仓库地址3、添加Gitee远程仓库地址4、拉取Gitlab远程仓库指定分支到本地仓库指定分支(以test分支为例)5、推送本地…

PyTorch机器学习与深度学习

近年来,随着AlphaGo、无人驾驶汽车、医学影像智慧辅助诊疗、ImageNet竞赛等热点事件的发生,人工智能迎来了新一轮的发展浪潮。尤其是深度学习技术,在许多行业都取得了颠覆性的成果。另外,近年来,Pytorch深度学习框架受…

早期的OCR是怎么识别图片上的文字的?

现在的OCR技术融合了人工智能技术,通过深度学习,无论是识别的准确率还是效果都非常不错,那您知道在早期的OCR是通过什么技术来实现的吗?如果您不知道,那么,就让我来告诉您:它主要是基于字符的几…

【工具使用-Qt】Qt如何查看帮助文档

一,简介 Qt不需要单独下载帮助文档,在安装的时候,就已经帮你下载好了,在目录:安装目录/Qt5.14.2/Docs/目录下了。 二,查看方法 打开IDE,点击“帮助”: 输入想要查找的内容&…

阿里云主导《Serverless 计算安全指南》国际标准正式立项!

日前,在韩国召开的国际电信联盟电信标准分局 ITU-T SG17 全会上,由阿里云主导的《Serverless 计算安全指南》国际标准正式立项成功。 图 1 项目信息 在现今数字化时代,Serverless 计算正逐渐成为云计算的一个新的发展方向,其灵活…

【目标检测】视频输出体积太大?分析视频的编码与码率问题

在做视频目标检测时,发现一个问题,检测输出完的视频时大时小,有时输出体积过大,造成播放器播放时严重卡顿现象。本文就这一情况进行分析,并就该问题提出相关解决方案。 视频基础知识 隔行扫描和逐行扫描 早期电视台在…

恒创:多链路负载均衡是什么意思

多链路负载均衡是一种网络架构技术,它通过将流量分散到多个网络链路上,以提高网络的性能和可靠性。这种技术可以应用于各种场景,如数据中心、云计算、企业网络等。 在多链路负载均衡中,流量被分配到多个网络链路上,以…

【深度学习目标检测】十、基于yolov5的火灾烟雾识别(python,目标检测)

YOLOv5是目标检测领域一种非常优秀的模型,其具有以下几个优势: 1. 高精度:YOLOv5相比于其前身YOLOv4,在目标检测精度上有了显著的提升。YOLOv5使用了一系列的改进,如更深的网络结构、更多的特征层和更高分辨率的输入图…

物联网对接使用蓝牙还是WiFi,应该如何选择?

蓝牙是一种无线技术协议,可促进连接设备之间短距离的数据交换。它依赖于物理邻近性并使用2.400至2.485 GHz之间的UHF(超高频)无线电波。蓝牙旨在创建个人区域网络(PAN)并在笔记本电脑、智能手机和外围设备等计算设备之…

Unity SRP 管线【第四讲:URP 阴影】

URP 全文源码解析参照 引入 在UniversalRenderer.cs/ line 505行处 此处已经准备好了所有渲染数据(所有数据全部存储在了renderingData中) 我们只用renderingData中的数据初设置mainLightShadows bool mainLightShadows m_MainLightShadowCasterPass…

【MAC】M2 安装mysql

一、docker下载地址 下载地址 二、安装docker完成 三、安装mysql 一、拉取镜像 # 拉取镜像 docker pull mysql# 或者 docker pull mysql:latest# 以上两个命令是一致的,默认拉取的就是 latest 版本的# 我们还可以用下面的命令来查看可用版本: docker…

Docker介绍,Docker安装

docker镜像仓库官网 一、Docker的基本概念 1.Docker的三大核心组件 docker 镜像 --------docker images docker 仓库---------docker registeries docker 容器---------docker containers 2.Docker 镜像 Docker镜像是运行docker容器时的只读模板,每一个镜像由一…

【Transformer】Transformer and BERT(1)

文章目录 TransformerBERT 太…完整了!同济大佬唐宇迪博士终于把【Transformer】入门到精通全套课程分享出来了,最新前沿方向 学习笔记 Transformer 无法并行,层数比较少 词向量生成之后,不会变,没有结合语境信息的情…

数据加密标准DES硬件实现(Modelsim)

数据加密标准DES硬件实现 本文内容摘要理论依据和设计内容仿真结果整体代码 本文内容摘要 本文设计并验证了DES的密钥扩展通路,分别采用Round Based方法和Pipeline方法两种方式设计并验证DES的明文通路 理论依据和设计内容 首先,要了解分组密码算法及DE…

cdr格式怎么打开?cdr文件查看工具CDR Viewer功能介绍

CDRViewer Pro for Mac是一款专业的矢量图形文件查看器,主要用于打开、浏览和查看CorelDRAW(CDR)文件。以下是该软件的主要功能和特点: CDR文件支持:CDRViewer Pro可以快速加载和显示CorelDRAW(CDR&#x…

【面试】Java最新面试题资深开发-微服务篇(1)

问题九:微服务 什么是微服务架构?它与单体架构相比有哪些优势和劣势?解释一下服务发现和服务注册是什么,它们在微服务中的作用是什么?什么是API网关(API Gateway)?在微服务中它有何…

大模型(LLM)+词槽(slot)构建动态场景多轮对话系统

构建动态场景多轮对话系统 引言 在人工智能和自然语言处理领域,聊天机器人的开发一直是一个热点话题。近年来,随着大型语言模型(LLM)的进步,构建能够理解和响应各种用户需求的聊天机器人变得更加可行和强大。本文将介…

Acrel-1000DP分布式光伏系统在某重工企业18MW分布式光伏中应用——安科瑞 顾烊宇

摘 要:分布式光伏发电特指在用户场地附近建设,运行方式以用户侧自发自用、余电上网,且在配电系统平衡调节为特征的光伏发电设施,是一种新型的、具有广阔发展前景的发电和能源综合利用方式,它倡导就近发电,就…

DiffUtil + RecyclerView 在 Kotlin中的使用

很惭愧, 做了多年的Android开发还没有使用过DiffUtil这样解放双手的工具。 文章目录 1 DiffUtil 用来解决什么问题?2 DiffUtil 是什么?3 DiffUtil的使用4 参考文章 1 DiffUtil 用来解决什么问题? 先举几个实际开发中的例子帮助我们感受下: 加载内容流时,第一次加载了ABC,…

gitlab(gitlab-ce)下载,离线安装

目录 1.下载 2.安装 3.配置 4.启动 5.登录 参考: 1.下载 根据服务器操作系统版本,下载对应的RPM包。 gitlab官网: The DevSecOps Platform | GitLab rpm包官网下载地址: gitlab/gitlab-ce - Results in gitlab/gitlab-ce 国内镜像地…