Quando eu corro chmod +w filename
, não dá permissão para gravação other
, apenas dá permissão para user
e group
.
Depois de executar este comando
chmod +w testfile.txt
ls -l testfile.txt
impressões em execução
-rw-rw-r-- 1 ravi ravi 20 Mar 10 18:09 testfile.txt
mas no caso de +r
e +x
funciona corretamente.
Eu não quero usar chmod ugo+w filename
.
linux
command-line
permissions
chmod
Ravi Sevta
fonte
fonte
ugo
, usea
.+w
não está trabalhando.askubuntu
resposta que você mencionou acima que "Esse comportamento é obrigatório para POSIX e, portanto, não é um bug". Esteja ciente de que o texto de uso do aplicativo POSIX não é normativo e, portanto, não é obrigatório pelo POSIX.Respostas:
Sua situação específica
Na sua situação específica, podemos supor que sua atual
umask
seja002
(esse é um valor padrão comum) e isso explica sua surpresa.Nessa situação específica em que o
umask
valor é 002 (todos os números octais).+r
significaugo+r
porque002 & 444
é000
, que permite que todos os bits sejam definidos+x
significaugo+x
porque002 & 111
é000
, que permite que todos os bits sejam definidos+w
significaug+w
porque002 & 222
é002
, o que impede que o bit "o" seja definido.Outros exemplos
umask 022
+w
significariau+w
.umask 007
+rwx
significariaug+rwx
.umask 077
+rwx
significariau+rwx
.O que teria correspondido às suas expectativas
Quando você muda
umask
para000
, executandono seu terminal, então
irá definir permissões para ugo + w.
Nota
Conforme sugerido por ilkkachu, observe que
umask 000
isso não significa que todos possam ler e gravar todos os seus arquivos.Mas
umask 000
significa que todos os que têm algum tipo de acesso a qualquer conta de usuário em sua máquina (que pode incluir programas executando os serviços de servidor ofc) podem ler e gravar todos os arquivos que você cria com essa máscara ativos e não são alterados (se a cadeia que contém diretórios até a raiz também os permite).fonte
r
bit para as partes onde o umask permite. Isso está claramente indicado nos manuais, por exemplo, GNU chmod e FreeBSD chmod, bem como no padrão. O mesmo para+x
. Pois+w
você está certo, no caso daquela umask em particular.0
não significa que todos possam ler e gravar todos os seus arquivos, pois muitos aplicativos criam arquivos que são particularmente privados no modo0600
, o que significa que o grupo e outros não têm acesso, independentemente do umask.umask
é uma parte importante de como+r
se comporta, não uma nota de rodapé. Além disso, mesmo supondo que umask002
,chmod +r
não significachmod ugo=r
, isso significachmod ugo+r
Com:
os privilégios são adicionados ao usuário , grupo e outros, mas com o umask ainda sendo aplicado. Ele garante que o arquivo não tenha mais permissão do que um arquivo recém-criado.
Se você deseja adicionar as permissões ao usuário , grupos e outros, independentemente da umask, use
que é abreviação de
fonte
Você precisa especificar a quem você está dando permissões, como
other
, usandochmod o+w testfile.txt
fonte
+w
dá permissão para todos (usuário, grupo e outros).chmod a+w testfile.txt
. Useu
para usuário,g
para grupo,o
para outro ea
para todos.chmod a+w filename
,chmod +w filename
echmod ugo+w filename
são alternativos entre si, em seguida, por que não usar+w