如何在 Linux 上管理两个用户帐户之间的文件或文件夹权限



有两个用户:用户jenkins和用户nginx(实际上两者都是服务帐户)。

首先,用户jenkins创建目录frontend/usr/share/nginx/html文件夹。然后它会下载一些html文件,将它们保存在此文件夹中。

然后,用户nginx尝试打开其中一个 html 文件并收到Permission denied错误。

为了解决这个问题,我首先检查了用户属于哪些组:groups jenkins,它返回:jenkins : jenkins

然后,我检查了用户nginx分配到哪个组。而且nginx : nginx

我检查了jenkins创建为/usr/share/nginx/html/frontendfrontend文件夹的权限,它会自动分配用户jenkins和组jenkins。通过使用chown命令更改此文件夹的权限,我发现为了使nginx用户能够读取这些文件,需要设置具有nginx:nginx所有权的文件夹。

我还尝试创建一个新的组workers,然后nginxjenkins使用

sudo groupadd workers 
sudo usermod -aG workers jenkins
sudo usermod -aG workers nginx

但不幸的是,这并没有解决问题。jenkins用户继续创建具有与jenkins:jenkins之前相同的所有权的文件夹。

有没有办法让两个用户对其中一个用户创建的文件夹具有完全访问权限?我该怎么办?

附言

以下是一些其他信息。frontend文件夹由jenkins用户在/usr/share/nginx/html/中创建。以下是一些详细信息:

sudo namei -om /usr/share/nginx/html/
f: /usr/share/nginx/html/
dr-xr-xr-x root  root    /
drwxr-xr-x root  root    usr
drwxr-xr-x root  root    share
drwxr-xr-x nginx jenkins nginx
drwxrwxrwx nginx nginx   html

然后,在创建frontend文件夹后,我运行

sudo namei -om /usr/share/nginx/html/

检查其所有权,它是:

f: /usr/share/nginx/html/frontend
dr-xr-xr-x root    root    /
drwxr-xr-x root    root    usr
drwxr-xr-x root    root    share
drwxr-xr-x nginx   jenkins nginx
drwxrwxrwx nginx   nginx   html
drwxr-xr-x jenkins jenkins frontend

答:后编:

以下是使一个用户创建的单个文件夹可供另一个用户访问所需的步骤的细分。

  1. 创建一个新用户组,并将两个用户都分配给该用户组:
sudo groupadd newgroup
sudo usermod -aG jenkins
sudo usermod -aG nginx
  1. 现在,jenkins用户创建具有默认jenkins:jenkins所有权的文件夹后,jenkins用户使用jenkins:newgroup更改文件夹的所有权设置(请注意,除非jenkinsnewgroup的成员,否则将无法将文件夹的组所有权设置为newgroup):
chown -R jenkins:newgroup /path/to/folder/created/by/jenkins/
  1. 通过运行以下命令jenkin用户将read-write权限分配给所有者user(jenkins) 和所有者group(newgroup):
chmod -R 775 /path/to/folder/created/by/jenkins/

创建目录后可以尝试使用"chgrp"命令吗?

CHGRP 组名目录名

之后,执行 chmod 以允许对该组的完全访问权限。

CHMOD 775 目录名

这将允许双方访问。

相关内容

最新更新