有谁知道如何设置默认权限,如果用户创建新文件,则该文件将具有-rwxrw-r—权限。
答案1
免责声明:正如一些用户所评论的那样,自动创建具有可执行权限的文件会破坏 Linux 安全模型的很大一部分。
也就是说,有一种方法可以在命令行上实现您想要的操作并限制哪些用户可以执行此操作。
您可以编写一个函数来同时创建文件和修改权限。该函数应添加到每个用户.bashrc
文件中。该文件可在 找到/home/username/.bashrc
。
下面是创建一个名为 createafile 的函数的示例,要添加的行如下:
createafile() {
if [[ -z $1 ]]; then
echo "Cannot create a file with no name!"
return 1
elif [[ -e $1 ]]
echo "That file already exists!"
return 1
elif [[ $2 = -* ]]; then
echo "Permissions must not start with a '-'!"
return 1
fi
touch $1
if [[ -z $2 ]]; then
perms=764
else
perms=$2
fi
chmod $perms $1
}
一旦将其写入用户.bashrc
文件,用户必须先注销然后重新登录才能使用。该函数可以在命令行中调用,如下所示。
createafile newfile.txt
这将创建具有默认八进制权限 764 的文件,或-rwxrw-r--
。或者,如果您想指定不同的权限模式,您可以以命令识别的任何格式输入此chmod
权限。因此,要创建一个对每个人都具有读/写权限的文件
createafile anotherfile.txt 555
或者
createafile anotherfile.txt a+rw
如果文件已存在或者您未输入文件名,则此函数将发出警告并退出。如果用户没有适当的目录权限来写入文件或更改权限,则该函数将不起作用。
函数中有一行可以阻止用户chmod
意外输入选项。这意味着您无法使用权chmod
限以字符开头的权限删除功能-
。