Aviso: Como alguns usuários comentaram, a criação automática de arquivos com permissões executáveis interrompe uma parte significativa do modelo de segurança do Linux.
Dito isso, há uma maneira de conseguir o que você quer, na linha de comando, e limitar quais usuários podem fazer isso.
Você pode escrever uma função para criar o arquivo e modificar as permissões ao mesmo tempo. Esta função deve ser adicionada ao arquivo .bashrc
de cada usuário. Este arquivo pode ser encontrado em /home/username/.bashrc
.
Aqui está um exemplo para fazer uma função chamada createafile, As linhas a adicionar seriam:
createafile() {
if [[ -z ]]; then
echo "Cannot create a file with no name!"
return 1
elif [[ -e ]]
echo "That file already exists!"
return 1
elif [[ = -* ]]; then
echo "Permissions must not start with a '-'!"
return 1
fi
touch
if [[ -z ]]; then
perms=764
else
perms=
fi
chmod $perms
}
Depois que isso for gravado no arquivo .bashrc
de um usuário, ele deverá efetuar logout e devolução antes de poder ser usado. A função pode ser chamada na linha de comando assim.
createafile newfile.txt
O que criará o arquivo com suas permissões octal padrão de 764 ou -rwxrw-r--
. Como alternativa, se você quiser especificar um modo de permissão diferente, poderá inserir isso em qualquer formato reconhecido para o comando chmod
. Então, para fazer um arquivo com permissão de leitura / gravação para todos
createafile anotherfile.txt 555
ou
createafile anotherfile.txt a+rw
Esta função irá reclamar e sair se o arquivo já existir ou se você não inserir um nome de arquivo. A função não funcionará se o usuário não tiver as permissões de diretório apropriadas para gravar o arquivo ou alterar permissões.
Há uma linha na função que impede os usuários de inserir uma opção chmod
acidentalmente. Isso significa que você não pode usar a funcionalidade de remoção de permissão de chmod
, em que as permissões começam com um caractere -
.