繁体   English   中英

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

[英]How to manage file or folder permissions between two user accounts on Linux

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

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

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

为了解决这个问题,我首先检查了用户所属的组: groups jenkins并返回: jenkins: jenkins

然后我检查了用户nginx分配到哪个组。 它是nginx: nginx

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

我还尝试创建一个新的组workers ,然后将jenkinsnginx用户分配给它

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. Now, after jenkins user creates a folder with the default jenkins:jenkins ownership, make jenkins user change the folder's ownership setting it with jenkins:newgroup (note that jenkins won't be able to set the folder's group ownership to newgroup unless it is a新组newgroup ):
chown -R jenkins:newgroup /path/to/folder/created/by/jenkins/
  1. 通过运行以下命令让jenkin用户为所有者user ( jenkins ) 和所有者group ( newgroup ) 分配read-write权限:
chmod -R 775 /path/to/folder/created/by/jenkins/

您可以在创建目录后尝试使用“chgrp”命令吗?

chgrp 组名 目录名

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

chmod 775 目录名

这将允许两者访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM