我只是想知道两者之间到底有什么区别
[[ $STRING != foo ]]
Run Code Online (Sandbox Code Playgroud)
和
[ $STRING != foo ]
Run Code Online (Sandbox Code Playgroud)
除此之外,后者是符合 POSIX 的,可在 sh 中找到,而前者是在 bash 中找到的扩展。
NFSv3 很普遍,但默认的安全模型是... quaint。CIFS 可以使用 Kerberos 身份验证,但如果没有 POSIX 语义,它就无法启动。AFS 从未对线路上的流量进行加密,它是 krb4 — 基本上是一个死项目。花哨的新实验文件系统要么永远不会实现,要么专注于速度(如果幸运的话,还有数据可靠性)——例如,Lustre 使用与 NFSv3 相同的客户端信任模型。对于家庭使用,sshfs 非常好用,但这肯定不能扩展。
当然还有 NFSv4,sec=krb5p。理论上很好,但十年后,它似乎在现实世界中令人不安地未使用。Linux 客户端刚刚删除了实验标签。如果你看看 EMC Celerra、Isilon 等,它们都是 NFSv3。(Celerra 支持 NFSv4,但它确实隐藏在文档中。Isilon 显然致力于将 RPCGSS 支持添加到 FreeBSD,所以也许它即将到来,但现在还没有。)我什至不能将这篇文章标记为“nfsv4”,因为我我是新来的,那将是一个新标签。
所以,真的。你们都在做什么?
我有一个目录,其中有一个由多个用户共享的项目。这些用户使用 SSH 访问此目录并修改/创建文件。
这个项目应该只对特定的用户组是可写的:我们称之为“mygroup”。在 SSH 会话期间,当前用户创建的所有文件/目录默认应归组“mygroup”所有,并具有组可写权限。
我可以解决权限问题umask:
$ cd project
$ umask 002
$ touch test.txt
Run Code Online (Sandbox Code Playgroud)
文件“test.txt”现在是组可写的,但仍然属于我的默认组(“mislav”,与我的用户名相同)而不是“mygroup”。我可以chgrp递归地设置所需的组,但我想知道是否有一种方法可以隐式设置某些组,例如 umask 在会话期间更改默认权限。
这个特定目录是一个带有工作副本的共享 git 存储库,我希望git checkout和git reset操作为在工作副本中创建的新文件设置正确的掩码和组。操作系统是 Ubuntu Linux。
更新:一位同事建议我应该查看POSIX ACL 的getfacl/setfacl,但下面结合umask 002当前会话中的解决方案对我来说已经足够了,而且要简单得多。
我知道setgid是如何工作的,但我不知道它是为什么设计的,有没有例子可以说明它解决了什么问题?
我已经设置了一个带有 AD 集成和一个启用了 ACL 的文件系统的 Samba 3 主机。使用 Windows 客户端,我可以设置用户和组权限。
到目前为止,Samba 只是映射到 POSIX ACL 的 rwx 权限,这阻止我在 Windows 上使用“修改”或“完全控制”权限。我还阅读了一些关于 xattrs 和 ZFS ACL 支持的内容。
有人可以暗示超越 POSIX ACL 以完全类似于 Windows ACE 的最佳方法是什么吗?
active-directory samba access-control-list file-permissions posix
我们想在某个目录上模拟系统范围 002 umask 的行为,foo以确保以下结果:
foo将具有 775 权限foo和子目录都将具有 664 权限setfacl -R -d -m mask:002 foo
Run Code Online (Sandbox Code Playgroud)
......但这不起作用。在目录中创建的新文件最终看起来像:
-rw--wr--+
当我运行getfacl新文件时,我得到:
# file: newfile.py
# owner: root
# group: agroup
user::rw-
group::rwx #effective:-w-
mask::-w-
other::r--
换句话说,施加mask:200与ACL是不一样的涂敷umask 200。
那么有没有办法通过 ACL 应用每个目录的 umask?
我正在尝试在已经使用 POSIX ACL 的环境中使用 NFS4 ACL。我在互联网上找到了一些网站,它们解释了有关 NFS4 ACL 的一些技术细节以及它们是如何创建的,但是当我尝试执行这些工具时,这些工具似乎对我来说失败了。
有没有人有很好的资源/教程来解释如何设置 NFS4 ACL?
当我尝试从服务器更改 ACL 集时:
[root@ny-bar01 foo_server]# nfs4_setfacl -e /nfs/obfuscate/
Operation to request attribute not supported.
Failed to instantiate ACL.
Run Code Online (Sandbox Code Playgroud)
当我尝试从客户端更改 ACL 集时:
[root@ny-baz02 foo_client]# nfs4_setfacl -R -e .
Failed setxattr operation: Operation not permitted
An error occurred during recursive file tree walk.
Run Code Online (Sandbox Code Playgroud) 我有一个系统,其中多个用户正在运行chmod相同文件的应用程序。我尝试使用setacl将两个用户添加为文件的用户所有者来执行此操作,但它不起作用。由于chmod系统调用失败,应用程序出错。
见示例:
[jacob@macbook-debian ~/Projects/test] getfacl bin/testfile
# file: bin/testfile
# owner: root
# group: root
user::rwx
user:jacob:rwx
user:jason:rwx
group::r-x
group:www-data:rwx
mask::rwx
other::r-x
[jacob@macbook-debian ~/Projects/test] chmod 0755 bin/testfile
chmod: changing permissions of 'bin/testfile': Operation not permitted
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 CentOS 6 上安装 php-posix,但没有成功:
$ yum install php-posix
Run Code Online (Sandbox Code Playgroud)
得到以下错误:
Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.nluug.nl
* epel: nl.mirror.eurid.eu
* extras: ftp.nluug.nl
* updates: ftp.nluug.nl
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-process.x86_64 0:5.3.3-27.el6_5 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.3-27.el6_5 for package: php-process-5.3.3-27.el6_5.x86_64
--> Finished Dependency Resolution
Error: Package: php-process-5.3.3-27.el6_5.x86_64 (updates)
Requires: php-common(x86-64) = 5.3.3-27.el6_5
Installed: php-common-5.4.30-1.el6.remi.x86_64 (@remi)
php-common(x86-64) = 5.4.30-1.el6.remi
Available: php-common-5.3.3-26.el6.x86_64 (base)
php-common(x86-64) …Run Code Online (Sandbox Code Playgroud)