gpt4 book ai didi

linux - unix - chmod 默认文件的 future 权限

转载 作者:太空狗 更新时间:2023-10-29 11:39:19 25 4
gpt4 key购买 nike

我知道默认情况下,当文件是使用 chmod 644 权限创建的。是否有任何改变,以便在特定文件夹中创建的任何文件默认为 664?

最佳答案

在 POSIX 系统上控制文件创建模式的实用程序称为 umask .我认为您不能像那样为每个文件夹应用文件创建掩码。但是,您可以使用 umask在脚本中。在子 shell 中定义的掩码不会影响您的常规 umask (0002) 设置。

如果您想在 cd 时自动更改掩码设置在一个特殊的目录中,你可以将以下内容添加到你的 bash 脚本中(我从 this SO 帖子中得到了关于 chdir() 函数的提示):

chdir() {
local action="$1"; shift
case "$action" in
# popd needs special care not to pass empty string instead of no args
popd) [[ $# -eq 0 ]] && builtin popd || builtin popd "$*" ;;
cd|pushd) builtin $action "$*" ;;
*) return ;;
esac
#
# now do stuff in the new pwd
#
SPECIAL_DIRS="/tmp/blah1 /tmp/blah2"
DEFAULT_MASK="0002"
for dir in $SPECIAL_DIRS
do
if [[ "$PWD" == "$dir" ]]
then
umask 0007
echo "[*] special mask settings applied - $(umask -S)"
else
umask $DEFAULT_MASK
fi
done
#
#
}
alias cd='chdir cd'
alias pushd='chdir pushd'
alias popd='chdir popd

如您所见,我定义了 /tmp/blah1/tmp/blah2作为特殊目录。现在如果我愿意 cd /tmp/blah1来自常规 bash,我的 umask设置将相应更改。

[22:45:43] user@host1:[~]$ cd /tmp/blah1
[*] special mask settings applied - u=rwx,g=rwx,o=
[22:45:49] user@host1:[/tmp/blah1]$ cd /tmp/blah2
[*] special mask settings applied - u=rwx,g=rwx,o=
[22:46:03] user@host1:[/tmp/blah2]$

关于linux - unix - chmod 默认文件的 future 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9532288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com