Linux组成员共享目录

2023-10-27

背景

在实际工作中常常会遇到这样的问题:一台服务器上的多个用户需要合作完成一个项目,他们都有自己的home目录和初始私有组,而他们需要同时再同一个目录下做开发。
这时就会用到组成员共享目录,下面介绍如何让组成员再同一目录协同工作

以下操作默认用root用户进行

准备

假设需要合作的三个用户分别为U1、U2和U3,其中U1 为项目的管理员。

  • 首先新建这三个用户(包括设置初始密码):
useradd U1
passwd U1

同样的方法操作三次,依次新建这三个用户。

  • 新建介绍之后可以通过查看home目录下的文件夹来判断是否成功以及当前系统内的用户数。
ll /home
  • 还可以通过查看以下两个文件获得用户信息,以U1为例
# /etc/group 下存的是用户信息
# /etc/shadow 下存的是用户密码
grep U1 /etc/passwd /etc/shadow
  • 然后要新建一个组(包括设置初始密码):
groupadd pro1
gpasswd pro1
  • 可以用类似查看用户的方法查看组信息
grep pro1 /etc/gpasswd /etc/gshadow
  • 然后新建需要共享的目录(/project/pro1):
# 采用以下方式分步创建
cd /
mkdir project
cd project
mkdir pro1

# 也可以采用以下一句命令直接创建
mkdir -P /project/pro1
  • 创建结束可在project文件夹下运行ls -l命令查看文件夹信息

开始

  • 先把U1设置为管理员
gpasswd -A U1 pro1
# 注意这一句只把U1设置为管理员并没有将其加入对应的组
  • 再把三个用户加入组pro1
gpasswd -a U1 pro1
gpasswd -a U2 pro1
gpasswd -a U3 pro1
  • 把要共享的目录和组关联起来
chgrp pro1 /project/pro1
chmod 2770 /project/pro1 # 这一句使得组外除root的所有用户对pro1文件夹没有任何权限
  • 再次在project文件夹下运行ls -l命令查看文件夹信息,对比验证操作是否成功

验证

  • 新建用户U4

  • 切换到U1用户,在组内新建一个文件a.txt

  • 切换到U2 ,打开项目文件夹,发现可以打开并修改a.txt

  • 切换到U4,发现无法进入pro1文件夹,

删除

通过以上操作,已经将新建的三个用户加入组pro1,并且关联了工作目录/project/pro1,该文件夹组外用户无法访问,现在介绍删除所有用户和组的方法。

  • 利用命令userdel即可删除用户,但是这样并不能将所有文件删除干净
  • 利用以下两条命令查找用户的所有文件(以U1为例)
updatedb #更新索引文件
locate U1
  • 根据反馈结果,利用rm命令彻底删除所有文件
rm -rf /home/U1
rm -rf /var/spool/mail/U1
  • 再次更新数据库然后查找即可发现所有文件均已被删除。

  • 依次通过上述方法删除所有用户,然后利用groupdel命令删除组即可

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux组成员共享目录 的相关文章

  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do
  • 内核模式下的线程(和进程)与用户模式下的线程(和进程)有什么区别?

    我的问题 1 书中现代操作系统 它说线程和进程可以处于内核模式或用户模式 但没有明确说明它们之间有什么区别 2 为什么内核态线程和进程的切换比用户态线程和进程的切换花费更多 3 现在 我正在学习Linux 我想知道如何在LINUX系统中分别
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • 需要一些建议来开始在 ARM(使用 Linux)平台上编程

    我 也许 很快就会在托管 Linux 发行版的 ARM 平台上工作 我不知道哪个发行版 我知道该项目涉及视频流 但我无法告诉你更多信息 其实我只收到通知 还没见到任何人 我从来没有在这样的平台上工作过 所以我的想法是在项目开始之前进行测试
  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • NUMA 在虚拟内存中是如何表示的?

    有许多资源 https en wikipedia org wiki Non uniform memory access从硬件角度描述NUMA的架构性能影响 http practical tech com infrastructure num
  • 在 C++ linux 中将 STRINGS 写入串口

    我知道这个问题遍布互联网 但仍然没有任何东西能让我完全解决这个问题 我想用 C linux 将数据写入 Propeller 板的串行端口 从控制台获取输入时程序运行良好 但是当我向它写入字符串时总是返回 ERROR Invalid comm
  • 捕获实时流量时如何开启纳秒精度?

    如何告诉 libpcap v1 6 2 将纳秒值存储在struct pcap pkthdr ts tv usec 而不是微秒值 捕获实时数据包时 Note This question is similar to How to enable
  • 如何允许应用程序声明“https”方案 URI? (即如何从 https URL 打开桌面应用程序?)

    目前我正在尝试为 OAuth 2 0 授权流程创建一个客户端 实际上是一个本机应用程序 并且在规范中就在这儿 https www rfc editor org rfc rfc8252 section 7 2据说有 3 种方法来处理重定向 U
  • 为什么我可以在 /proc/pid/maps 输出中看到几个相同的段?

    测试在32位Linux上进行 代码如下 int foo int a int b int c a b return c int main int e 0 int d foo 1 2 printf d n d scanf d e return
  • 无法在 Perl 中找到 DBI.pm 模块

    我使用的是 CentOS 并且已经安装了 Perl 5 20 并且默认情况下存在 Perl 5 10 我正在使用 Perl 5 20 版本来执行 Perl 代码 我尝试使用 DBI 模块并收到此错误 root localhost perl
  • Mcrt1.o和Scrt1.o有什么用?

    我坚持使用以下两个文件 即 Mcrt1 o 和 Scrt1 o 谁能帮我知道这两个文件的用途 如何使用它 我们以 gcrt1 o 为例 在使用 pg 选项编译进行性能测试时非常有用 谢谢 表格的文件 crt o总是 C 运行时启动代码 大部
  • Linux 上的基准测试程序

    对于一项任务 我们需要使用不同的优化和参数来对我们的实现进行基准测试 有没有一种可行的方法可以在Linux命令行 我知道时间 上使用不同的参数对小程序进行基准测试 从而为我提供CSV或类似内容的时间数据 输出可能类似于 Implementa
  • 使用 plistBuddy 获取值数组

    var keychain access groups declare a val usr libexec PlistBuddy c Print var sample plist echo val echo val 0 Ouput Array
  • 每个命令都返回“bash:<命令>:找不到命令...”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我刚刚安装了 Scala 并添加了路径gedit bashrc export SCALA HOME home avijit sca
  • Web 应用程序的带宽和流量模拟器?

    您能否建议如何创建一个测试环境来模拟 Web 应用程序中的各种类型的带宽和流量 或者也许是一个针对本地主机执行此操作的开源程序 我认为在编写网络应用程序时这是一个非常重要的主题 但这不是一个常见的主题 我能想象创建这种环境的唯一方法是在本地
  • 使用 inotify 的正确方法是什么?

    我想使用inotifyLinux 上的机制 我希望我的应用程序知道文件何时aaa被改变了 您能给我提供一个如何做到这一点的示例吗 文档 来自监视文件系统活动 inotify https developer ibm com tutorials
  • linux下写入后崩溃

    如果我使用 write 将一些数据写入磁盘上的文件会发生什么 但我的应用程序在刷新之前崩溃了 如果没有系统故障 是否可以保证我的数据最终会刷新到磁盘 如果您正在使用write 并不是fwrite or std ostream write 那

随机推荐

  • python的cls,self,classmethod,staticmethod

    python的cls self classmethod staticmethod python类里会出现这三个单词 self和cls都可以用别的单词代替 类的方法有三种 一是通过def定义的 普通的一般的 需要至少传递一个参数 一般用sel
  • 【满分】【华为OD机试真题2023 JAVA&JS】最差产品奖

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 最差产品奖 知识点滑窗 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 A公司准备对他下面的N个产品评选最差奖 评选的方式是首先对每个产品进行评分 然后根据评分区
  • Chapter 1 Introduction

    Chapter 1 Introduction focus on communication and queueing systems formulated problem optimize the time averages of cert
  • 使用python实现短线选股

    经常做短线的朋友都知道 选股是个较为复杂的工作 尤其是像我们这种非职业选手 下面就分享一些通过python实现选股的思路 股票信息获取 炒短线离不开龙虎榜 我们先来通过龙虎榜来进行股票选择 url https applhb longhuvi
  • 数据结构和算法(5)-----树

    一 哈夫曼树 基本介绍 给定n个权值作为n个叶子结点 构造一棵二叉树 若该树的带权路径长度 wpl 达到最小 称这样的二叉树为最优二叉树 也称为哈夫曼树 Huffman Tree 还有的书翻译为霍夫曼树 赫夫曼树是带权路径长度最短的树 权值
  • 【JS算法系列】1.翻转字符串的四种方法

    1 使用数组的 reverse 方法 let str hello let reversed str split reverse join olleh 2 从字符串的尾部开始迭代 并逐个添加字符到新的字符串中 let str hello le
  • qt打包应用程序

    cannot find gcc installation directory g exe must be in the path http t csdn cn d5yaf
  • 期权酱也来说说期权双卖策略原理

    期权option 又称选择权 是一类衍生品合约 买方支付权利金给卖方之后 买方有权在未来的特定日期或之前 以特定的价格向卖方买入或卖出标的资产的权利 下文介绍期权酱也来说说期权双卖策略原理 本文来自 期权酱 期权的本质简单说就是买方支付权利
  • 自己挖坑自己填,谷歌大改Transformer注意力,速度、内存利用率都提上去了

    点击上方 AI遇见机器学习 选择 星标 公众号 重磅干货 第一时间送达 来自 机器之心 考虑到 Transformer 对于机器学习最近一段时间的影响 这样一个研究就显得异常引人注目了 Transformer 有着巨大的内存和算力需求 因为
  • 挖掘机整体(2012.11.30)

    将近1周 终于把整体搞定了 这周的问题所在就是由于 180 ANGLE或者180 ANGLE的余弦值都相同 所以才会来回晃 我用了ASINF反正弦
  • Spring 框架学习—控制反转(IOC)

    Spring是一个开源框架 Spring是于2003 年兴起的一个轻量级的Java 开发框架 由Rod Johnson创建 简单来说 Spring是一个分层的JavaSE EEfull stack 一站式 轻量级开源框架 主要用于降低模块之
  • C#编程中的报错解决System.InvalidOperationException

    C 编程中的报错解决System InvalidOperationException 问题场景 问题原因 解决方案 方案一 打破规则 方案二 利用委托 Delegate 问题场景 在C Windows GUI编程中 从某个子线程去访问设计器
  • 计算机类毕业设计优秀最新题目

    主要有以下类别 python c语言 c vc opencv opengl程序设计 单片机类 51 stm32 arduino arm avr 龙芯开发板 嵌入式系统等硬件设计 程序设计 protues仿真 下列题目涵盖但不限于以上内容 4
  • 【Unity】渐入渐出的黑屏(白屏)过场动画最简单的实现

    一个简单的黑屏动画 用于2D项目 效果类似慢眨眼 进 出房间时切换场景的衔接过渡 这种效果的实现方式其实蛮多的 我能想到的包括用shader 用一张全黑Sprite覆盖屏幕 或者直接做成一个UI 最近学了一些UnityShader 所以首先
  • html title 属性多行显示

    html global attribute title displays in multiple lines 下面的代码段主要是展现了4种方式让 title 属性的多行展示 经测试 至少兼容到了 ie8
  • java JDBC

    JDBC是什么 Java DataBase Connectivity Java语言连接数据库 JDBC的本质是什么 一套接口 JDBC是SUN公司制定的一套接口 interface 接口都有调用者和实现者 面向接口调用 面向接口写实现类 这
  • Golang笔记:使用exec包执行外部程序与Shell命令

    文章目录 目的 使用演示 Cmd结构体 总结 目的 程序中执行外部程序是比较常用的功能 Golang执行外部程序可以使用标准库中的 os exec https pkg go dev os exec 这个包默认是用来执行外部程序的 可以通过调
  • 3 分钟掌握 Node.js 版本的区别

    在我们日常开发中 Node js 使用场景越来越多 大到服务端项目 小到开发工具脚本 所以掌握 Node js 一些基础知识是非常有必要的 今天主要聊一下 Node js 中 LTS 和 Current 的区别和如何选择合适的版本 一 版本
  • 前端在线预览word,excel,pdf

    前端在线预览word excel pdf 预览Word 预览pdf 预览Excel 预览Word 微软的在线预览功能 可以预览word ppt Excel PDF 局限 需要外网能访问文件 如果是只能内网用的系统就不适合了 XDOX预览 局
  • Linux组成员共享目录

    背景 在实际工作中常常会遇到这样的问题 一台服务器上的多个用户需要合作完成一个项目 他们都有自己的home目录和初始私有组 而他们需要同时再同一个目录下做开发 这时就会用到组成员共享目录 下面介绍如何让组成员再同一目录协同工作 以下操作默认