No Unix, há muito tempo, aprendi sobre chmod
: a maneira tradicional de definir permissões, no Unix (e permitir que os programas obtenham privilégios usando setuid, setgid).
Eu descobri recentemente alguns comandos mais recentes, no GNU / Linux:
setfacl
estende osugo:rwx
bits tradicionais e ost
bits dechmod
.setcap
dá mais controle de grãos finos do queug:s
pedaços dechmod
.chattr
Permite alguns outros controles (um pouco de mistura) do arquivo.
Existem outros?
linux
permissions
filesystems
gnu
ctrl-alt-delor
fonte
fonte
chmod
Respostas:
chmod
: alterar bits do modo de arquivoUso (modo octal):
Uso (modo simbólico):
references
é uma combinação das letrasugoa
, que especificam qual acesso do usuáriofiles
será modificado:u
o usuário que o possuig
outros usuários nofile
grupo deo
outros usuários que não estão no grupo do arquivoa
todos os usuáriosSe omitido, o padrão é todos os usuários, mas apenas as permissões permitidas pelo
umask
são modificadas.operator
é um dos caracteres+-=
:+
adicione os bits de modo de arquivo especificados aos bits de modo de arquivo existentes de cadafile
-
remove os bits de modo de arquivo especificados nos bits de modo de arquivo existentes de cadafile
=
adiciona os bits especificados e remove os bits não especificados, exceto os bitssetuid
esetgid
definidos para os diretórios, a menos que especificado explicitamente.mode
consiste em uma combinação das letrasrwxXst
, que especificam qual bit de permissão deve ser modificado:r
lerw
escreverx
executar (ou procurar diretórios)X
execute / pesquise apenas se o arquivo for um diretório ou se já tiver definido o bit definido para algum usuários
setuid ou setgid (dependendo do especificadoreferences
)t
sinalizador de exclusão restrita ou bit adesivoComo alternativa,
mode
pode consistir em uma das letrasugo
; nesse caso, o modo corresponde às permissões atualmente concedidas ao proprietário (u
), membro dofile
grupo do grupo (g
) ou permissões de usuários em nenhuma das categorias anteriores (o
).Os vários bits de
chmod
explicado:setfacl
)rwx
- leia (r), escreva (w) e execute / cruze (x) permissões.#!
) e outros arquivos executáveis.s
et
- bit pegajoso (t) e setgid (s) em diretórioss
- setuid, setgid, em arquivos executáveis.setcap
uma maneira mais moderna de fazer isso.chown
chgrp
:chattr
: alterar atributos do arquivoUso:
operator
é um dos personagens+-=
: *+
adiciona os atributos selecionados para ser ao existenteattributes
dofiles
*-
remove o selecionadoattributes
*=
substitui o actual conjunto de atributos que os arquivos com o especificadoattributes
.attribute
é uma combinação das letrasacdeijstuADST
, que correspondem aos atributos:a
acrescentar apenasc
comprimidod
sem lixeirae
formato da extensãoi
imutávelj
diário de dadoss
exclusão segurat
sem fusão de caudau
undeletableA
sematime
atualizaçõesD
atualizações de diretório síncronasS
atualizações síncronasT
topo da hierarquia de diretóriossetfattr
: alterar atributos de arquivo estendidosUso (atributo definido):
Uso (remover):
name
é o nome do atributo estendido para definir ou removervalue
é o novo valor do atributo estendidosetfacl
: alterar listas de controle de acesso a arquivosUso:
option
deve incluir um dos seguintes:--set
defina a ACL de um arquivo ou diretório, substituindo a ACL anterior-m
|--modify
modificar a ACL de um arquivo ou diretório-x
|--remove
remover entradas da ACL de um arquivo ou diretóriotarget
é uma das letrasugmo
(ou o formato mais longo mostrado abaixo):u
,users
permissão de um usuário nomeado identificado porparam
, padroniza o proprietário do arquivouid
se omitidog
,group
permissão de um grupo nomeado identificado porparam
, padrão para o grupo proprietário,uid
se omitidom
,mask
Direitos efetivos mascararo
,other
permissões de outrosperms
é uma combinação das letrasrwxX
, que correspondem às permissões:r
lerw
escreverx
executarX
executar apenas se o arquivo for um diretório ou já tiver permissão de execução para algum usuárioComo alternativa,
perms
pode ser um dígito octal (0
-7
) indicando o conjunto de permissões.setcap
: alterar recursos do arquivoUso:
A
capability-clause
consiste em uma lista separada por vírgula de nomes de recursos, seguida por uma lista de pares operador-sinalizador.Os operadores disponíveis são
=
,+
e-
. As bandeiras disponíveis sãoe
,i
ep
que correspondem às eficaz , Inheritable e permitidas conjuntos de recursos.O
=
operador aumentará os conjuntos de recursos especificados e redefinirá os outros. Se nenhum sinalizador for fornecido em conjunto com o=
operador, todos os conjuntos de recursos serão redefinidos. Os operadores+
e-
aumentarão ou diminuirão um ou mais conjuntos de recursos especificados, respectivamente.chcon
: alterar arquivo contexto de segurança do SELinuxUso:
user é o usuário do SELinux, como
user_u
,system_u
ouroot
.role é o papel do SELinux (sempre
object_r
para arquivos)type é o tipo de assunto do SELinux
chsmack
: alterar atributos estendidos do SMACKUso:
value
é o rótulo SMACK a ser definido para oSMACK64
atributo de arquivo estendidosetrichacl : altera a lista de controle de acesso avançado .
richacl s são um recurso que adicionará ACLs mais avançadas.
Atualmente um trabalho em andamento, por isso não posso falar muito sobre eles. Eu não os usei.
Consulte também esta pergunta Existem ACLs do sistema de arquivos mais avançadas além das tradicionais 'rwx' e POSIX ACL? e página de manual
fonte
de um nível alto:
-rwxrwxrwx
tratado porchmod
, juntamente com o proprietário e grupo identificadores ligados a cada arquivo ou pasta no sistema de arquivos manipulados porchown
echgrp
; todo mundo basicamente conhece essa peça.outros pontos-chave:
user_xattr
e eu poderia optar por não ter o xattr disponível no sistema de arquivos raiz no momento da instalação; Eu acho que agora com o RHEL / CentOS 7 que o xattr está lá por padrão e você não pode deixar de usá-lo.ls
se você vir-rwxrwxrwx+
que+
indica que um atributo de arquivo estendido está presente nesse objeto .tar
coisas com o xattr, se ele permanecer nesse sistema sem problemas, mas se for para outro lugar pode ser problemático se os xattrs forem importantes (por exemplo, samba e cópia entre win10 ntfs e linux ext3 / 4, btrfs, xfs; ou vice-versa) entre dispositivos de armazenamento conectados à rede)xattr
s, então,xattr
teoricamente , s pode significar nada e ser descartado ou retirado porque, nesse ponto, é apenas bagagem extra.O compartilhamento básico do Samba não funciona no RHEL / CentOS 7 ... porque o selinux, por padrão, está definido como imposição; O selinux negou tudo até você permitir, para desativar o selinux (ruim) ou configurá-lo como permissivo. Se você deixar o selinux como impositivo, precisará rotular a pasta que deseja compartilhar com o samba com um atributo estendido, para que o selinux reconheça e permita o compartilhamento. Portanto, se você deixar o selinux reforçando, todos os comandos selinux (que definirão os
xattr
s necessários ):você ainda usa o selinux, no sistema linux com este compartilhamento samba, para impor restrições aos arquivos / pastas sob esse compartilhamento samba (usando qualquer atributo estendido). Como esses arquivos / pastas são compartilhados, um usuário copia legitimamente alguns para o PC win10 e depois copia novamente, perdendo o atributo estendido. Agora, depois dessa cópia, o selinux restringirá o acesso aos arquivos porque o xattr necessário não está mais presente, e os usuários / administradores se perguntam por que as coisas funcionaram agora e não ... permissivo e reconhecer o problema de
xattr
s perdidos aparecendo nos logs de auditoria, mas isso não indica diretamente que foi o resultado da cópia para frente e para trás da perda do xattr. Considere também o backup e restauração de dados e o trabalho potencial necessário para lembrarxattr
s, além de uid / gid, se você deseja reforçar a segurança com base nosxattr
s corretos .fonte