我正在尝试找到一种在其中建立多用户conda系统的方法
conda
组conda
组问题在于,默认情况下,当用户更改conda“世界”时,新添加的内容属于该用户组。
我想使用ACL设置默认组。
我设置了粘性位,以便文件默认为父级权限,并通过
确认(base) user2@balterbox:/home/conda/conda$ groups
user2 conda
(base) user2@balterbox:/home/conda/conda$ mkdir test
(base) user2@balterbox:/home/conda/conda$ ll test
total 8
drwxrwsr-x+ 2 user2 conda 4096 Feb 6 20:43 ./
drwxrwsr-x+ 14 balter conda 4096 Feb 6 20:43 ../
我还应用了以下ACL:
(base) user2@balterbox:/home/conda$ getfacl conda
# file: conda
# owner: balter
# group: conda
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:conda:rwx
default:mask::rwx
default:other::r-x
但是,user2
仍然无法创建新环境:
(base) user2@balterbox:/home/conda$ conda create -n env2
Solving environment: done
NotWritableError: The current user does not have write permissions to a required path.
path: /home/conda/conda/pkgs/cache/2ce54b42.json
uid: 1002
gid: 1002
If you feel that permissions on this path are set incorrectly, you can manually
change them by executing
$ sudo chown 1002:1002 /home/conda/conda/pkgs/cache/2ce54b42.json
In general, it's not advisable to use 'sudo conda'.
balter@balterbox:/home/conda$ ls -al /home/conda/conda/pkgs/cache/2ce54b42.json
-rwxrwxr-x 1 balter conda 2990059 Feb 6 20:55 /home/conda/conda/pkgs/cache/2ce54b42.json
如何调整ACL和权限以允许此操作?
答案 0 :(得分:0)
在遇到great answer之前,我面临着类似的问题。
简而言之,您需要将“ conda”组的过去和将来的写入权限添加到conda安装文件夹中。
要使用访问控制列表(ACL):
sudo setfacl -Rm d:g:conda:rwX,g:conda:rwX /home/conda/conda
更详细地,-Rm
指定对于/home/conda/conda
的所有子文件夹,这些标志被递归地 m 修饰为 R 。
第一个参数d:g:conda:rwX
将为该文件的成员添加读取,写入和执行权限(大写X
标志仅将其应用于已经e x 可执行文件的文件/文件夹)。对于任何未来文件和子文件夹(由g:conda
开头的 g rocon(由d
指定),对于 d efault),而第二个参数g:conda:rwX
会将这些权限添加到当前文件和文件夹中。
您还可以添加d:g:conda:rwX,g:conda:rwX,d:o::rX,o::rX
,以确保其他用户(不是来自conda
组的用户)可以从该文件夹读取并执行并使用环境(尽管应该是默认值)。
可以在here上找到有关getfacl
和setfacl
命令的更多信息。