如何在 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
它 returns: jenkins : jenkins
然后我查看了用户nginx
被分配到哪个组。它是 nginx : nginx
我检查了创建为 /usr/share/nginx/html/frontend
的 frontend
文件夹 jenkins
的权限,它被自动分配给用户 jenkins
和组 jenkins
.通过使用 chown
命令更改此文件夹的权限,我发现为了让 nginx
用户能够读取这些文件,文件夹需要设置为 nginx:nginx
所有权。
我还尝试创建一个新组 workers
,然后使用
将 jenkins
和 nginx
用户分配给它
sudo groupadd workers
sudo usermod -aG workers jenkins
sudo usermod -aG workers nginx
但不幸的是,这并没有解决问题。 jenkins
用户继续创建与以前具有相同所有权的文件夹 jenkins:jenkins
。
有没有办法让两个用户都可以完全访问其中一个用户创建的文件夹?我该怎么办?
P.S.
以下是一些附加信息。
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
答案:稍后编辑:
以下是使一个用户创建的单个文件夹可供另一个用户访问所需步骤的细分。
- 创建一个新的用户组并将两个用户分配给它:
sudo groupadd newgroup
sudo usermod -aG jenkins
sudo usermod -aG nginx
- 现在,在
jenkins
用户创建一个具有默认 jenkins:jenkins
所有权的文件夹后,让 jenkins
用户更改文件夹的所有权设置为 jenkins:newgroup
(请注意 jenkins
将无法将文件夹的组所有权设置为 newgroup
除非它是 newgroup
的成员):
chown -R jenkins:newgroup /path/to/folder/created/by/jenkins/
- 让
jenkin
用户将 read-write
权限分配给所有者 user
(jenkins
) 和所有者 group
(newgroup
) 运行宁:
chmod -R 775 /path/to/folder/created/by/jenkins/
您可以在创建目录后尝试使用“chgrp”命令吗?
chgrp 组名目录名
之后,执行 chmod 以允许对该组进行完全访问。
chmod 775 目录名
这将允许两者访问。
有两个用户:用户jenkins
和用户nginx
(实际上都是服务帐号)。
首先,用户 jenkins
在 /usr/share/nginx/html
中创建目录 frontend
文件夹。然后它会下载一些 html
文件并将它们保存在这个文件夹中。
然后用户 nginx
尝试打开 html 文件之一并收到 Permission denied
错误。
为了解决这个问题,我首先检查了用户属于哪个组:
groups jenkins
它 returns: jenkins : jenkins
然后我查看了用户nginx
被分配到哪个组。它是 nginx : nginx
我检查了创建为 /usr/share/nginx/html/frontend
的 frontend
文件夹 jenkins
的权限,它被自动分配给用户 jenkins
和组 jenkins
.通过使用 chown
命令更改此文件夹的权限,我发现为了让 nginx
用户能够读取这些文件,文件夹需要设置为 nginx:nginx
所有权。
我还尝试创建一个新组 workers
,然后使用
jenkins
和 nginx
用户分配给它
sudo groupadd workers
sudo usermod -aG workers jenkins
sudo usermod -aG workers nginx
但不幸的是,这并没有解决问题。 jenkins
用户继续创建与以前具有相同所有权的文件夹 jenkins:jenkins
。
有没有办法让两个用户都可以完全访问其中一个用户创建的文件夹?我该怎么办?
P.S.
以下是一些附加信息。
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
答案:稍后编辑:
以下是使一个用户创建的单个文件夹可供另一个用户访问所需步骤的细分。
- 创建一个新的用户组并将两个用户分配给它:
sudo groupadd newgroup
sudo usermod -aG jenkins
sudo usermod -aG nginx
- 现在,在
jenkins
用户创建一个具有默认jenkins:jenkins
所有权的文件夹后,让jenkins
用户更改文件夹的所有权设置为jenkins:newgroup
(请注意jenkins
将无法将文件夹的组所有权设置为newgroup
除非它是newgroup
的成员):
chown -R jenkins:newgroup /path/to/folder/created/by/jenkins/
- 让
jenkin
用户将read-write
权限分配给所有者user
(jenkins
) 和所有者group
(newgroup
) 运行宁:
chmod -R 775 /path/to/folder/created/by/jenkins/
您可以在创建目录后尝试使用“chgrp”命令吗?
chgrp 组名目录名
之后,执行 chmod 以允许对该组进行完全访问。
chmod 775 目录名
这将允许两者访问。