如何设置文件的默认权限

如何设置文件的默认权限

有谁知道如何设置默认权限,如果用户创建新文件,则该文件将具有-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​​限以字符开头的权限删除功能-

相关内容