Linux组成员共享目录

背景

在实际工作中常常会遇到这样的问题:一台服务器上的多个用户需要合作完成一个项目,他们都有自己的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命令删除组即可

posted @ 2022-03-05 16:00  Cheney822  阅读(119)  评论(0编辑  收藏  举报