If you are new to Linux / Unix, then the concept of permissions may be confusing. Este guia fornece-lhe uma explicação do que são as permissões, como funcionam e como geri-las. Um número de exemplos são fornecidos para ilustrar como definir e mudar as permissões para usuários e grupos.,
o Que são Linux de Usuário e Permissões de Grupo?
sistemas operacionais Linux/Unix têm a capacidade de multitarefas de uma forma semelhante a outros sistemas operacionais. No entanto, a maior diferença do Linux em relação a outros sistemas operacionais é a sua capacidade de ter vários usuários., O Linux foi projetado para permitir que mais de um usuário tenha acesso ao sistema ao mesmo tempo. Para que este projeto multi-usuário funcione corretamente, precisa haver um método para proteger os usuários uns dos outros. É aqui que entram as permissões para jogar.
ler, escrever, & executar permissões
permissões são os “direitos” de agir em um arquivo ou diretório. Os direitos básicos são lidos, escritos e executados.
- leia: uma permissão legível permite que o conteúdo do arquivo seja visto., Uma permissão de leitura em um diretório lhe permite listar o conteúdo de um diretório.
- Write: uma permissão de escrita num ficheiro permite-lhe modificar o conteúdo desse ficheiro. Para um diretório, a permissão de escrita permite que você edite o conteúdo de um diretório (por exemplo, adicionar/apagar arquivos).
- Execute: para um ficheiro, a permissão do executável permite-lhe executar o ficheiro e executar um programa ou programa. Para uma pasta, a permissão de execução permite-lhe mudar para uma pasta diferente e torná-la a sua pasta de trabalho actual., Os usuários geralmente têm um grupo padrão, mas eles podem pertencer a vários grupos adicionais.
ver as permissões de Ficheiros
para ver as permissões num ficheiro ou directório, emitir o comando ls -l <directory/file>
. Lembre-se de substituir a informação no <directory/file>
pelo nome real do ficheiro ou directório. Abaixo está o resultado da amostra para o ls
comando:
-rw-r--r-- 1 root root 1031 Nov 18 09:22 /etc/passwd
os primeiros dez caracteres mostram as permissões de acesso., The first dash (-
) indicates the type of file (d
for directory, s
for special file, and -
for a regular file). Os próximos três caracteres (rw-
) definem a permissão do proprietário para o arquivo. Neste exemplo, o dono do ficheiro só tem permissões de leitura e escrita. Os próximos três caracteres (r--
) são as permissões para os membros do mesmo grupo que o proprietário do arquivo (que neste exemplo é lido apenas)., Os últimos três caracteres (r--
) mostram as permissões para todos os outros utilizadores e neste exemplo é apenas lido.
trabalhando com grupos Linux, usuários e diretórios
as seguintes seções passam por grupos Linux e os comandos necessários para criar, excluir e modificar contas de usuário. Os comandos para criar e excluir diretórios também são cobertos.
grupos primários Linux
um grupo primário é o grupo padrão a que uma conta de usuário pertence. Todos os usuários do Linux pertencem a um grupo primário., O grupo primário de um usuário é geralmente o grupo que é gravado no seu sistema Linux /etc/passwd
file. Quando um usuário Linux faz login em seu sistema, o grupo primário é geralmente o grupo padrão associado com a conta registrada.
pode encontrar o ID de grupo primário de um utilizador ao ver o conteúdo do ficheiro
do seu sistema.
cat /etc/passwd
a quarta coluna contém o ID de grupo primário de cada utilizador., No exemplo de saída, o ID de grupo primário para example_user
é 1001
:
postfix:x:106:113::/var/spool/postfix:/usr/sbin/nologinexample_user:x:1000:1001:,,,:/home/example_user:/bin/bash
Você também pode encontrar um grupo primário do usuário informações usando o id
comando. Substitua example_user
por um dos utilizadores do seu próprio sistema.
id example_user
a sua saída assemelha-se ao exemplo, que mostra o grupo primário como example_group
.,
uid=1000(example_user) gid=1001(example_group) groups=1001(example_group),27(sudo)
Se você quiser menos mensagens de saída que só mostra a sua principal nome do grupo, execute o seguinte comando:
id -gn example_user
a Sua saída, neste caso, é o seguinte:
example_group
Linux Grupos Secundários
uma Vez que o usuário foi criado com seu grupo primário, eles podem ser adicionados a grupos secundários. Os usuários do sistema Linux podem ter um máximo de 15 grupos secundários. Os grupos de um sistema Linux são armazenados no arquivo /etc/group
.,
Para localizar o grupo(s) pertence um usuário, execute o seguinte comando:
groups example_user
O exemplo exibe a saída principal de um usuário e grupo secundário(s):
example_user : example_group sudo
Para adicionar um usuário a um grupo secundário usar o comando de exemplo. Substituir pelo nome do grupo eexample_user
pelo nome do utilizador a adicionar ao grupo.
sudo usermod -a -G second_example_group example_user
Pode também adicionar um utilizador a vários grupos., The example command adds the user example_user
to the groups , third_example_group
, and fourth_example_group
. O -a
e-G
opções garantem que o Usuário não é removido de nenhum grupo a que o usuário já pertence.
sudo usermod -a -G second_example_group,third_example_group,fourth_example_group example_user
Qual é a diferença entre grupos primários e secundários no Linux?
um grupo primário é o grupo a que o usuário pertence por padrão. Cada usuário deve pertencer a um grupo primário e um usuário só pode pertencer a um grupo primário., Quaisquer novos diretórios ou arquivos criados por um usuário são automaticamente associados com o grupo primário de um usuário.
um grupo secundário é um grupo ao qual um utilizador é adicionado após a sua conta de Utilizador ser criada. Um usuário pode pertencer a zero ou mais grupos secundários.
criar e apagar contas de utilizador
para criar um novo utilizador-padrão, use o comando useradd
., A sintaxe é a seguinte:
useradd <name>
O comando useradd utiliza uma variedade de variáveis, algumas das quais são apresentadas na tabela abaixo:
Você precisa definir uma senha para o novo usuário, usando o passwd
comando. Nota: você precisa de privilégios de root para alterar uma senha de usuário. A sintaxe é a seguinte:
passwd <username>
O usuário será capaz de alterar sua senha a qualquer momento usando o passwd
comando com a sintaxe., Abaixo está um exemplo:
$ passwdChanging password for lmartin.(current) UNIX password:Enter new UNIX password:Retype new UNIX password:passwd: password updated successfully
há outra forma de criar contas de usuário que pode ser mais fácil para administradores pela primeira vez. No entanto, você pode precisar instalar um novo pacote. O comando de Instalação Para Debian / Ubuntu é o seguinte:
apt-get install adduser
o comando adduser cria automaticamente uma pasta pessoal e define o Grupo, linha de comandos, etc., Para criar um novo utilizador-padrão com o comando adduser
a sintaxe é a seguinte:
adduser <name>
Uma vez que introduza o comando que recebe uma série de instruções; a maior parte desta informação é opcional. No entanto, você deve incluir pelo menos o nome do usuário (por exemplo, o nome do Usuário é cjones) e uma senha.é importante notar que a segurança deve ser sempre levada muito a sério. Portanto, é fortemente recomendado usar senhas únicas para cada conta. Nunca partilhe ou dê a sua senha a outros utilizadores.,
para remover uma conta de utilizador, indique o seguinte comando:
userdel <name>
emitir o comando acima apenas apaga a conta do utilizador. Seus arquivos e diretório home não são apagados.
Para remover o usuário, sua pasta home, e seus arquivos, use este comando:
userdel -r <name>
a Compreensão do Sudo Linux Grupo e de Usuário
root
é o super usuário e tem a capacidade para fazer qualquer coisa no sistema., Portanto, a fim de ter uma camada adicional de segurança, um sudo
Usuário é geralmente usado no lugar do root. Enquanto sudo
é usado para dar um outro usuário limitado de acesso para a conta de outro usuário para a realização de tarefas (na maioria dos casos, o root
usuário ou o superusuário), sudo
pode ser melhor explicado como uma ferramenta que permite que os usuários e grupos para ter acesso aos comandos que normalmente não seria capaz de usar., sudo
permite que um usuário tenha privilégios de administração sem entrar diretamente como root. Um exemplo de sudo
comando é da seguinte forma:
sudo apt-get install <package>
Antes de usar sudo
, ele pode precisar ser instalado se ele não é parte da sua distribuição., O comando para o Debian é a seguinte:
apt-get install sudo
Para o CentOS, o comando é o seguinte:
yum install sudo
a fim de fornecer a um usuário com o sudo
capacidade, eles precisam ser adicionados a uma sudo
habilitado grupo, ou seu nome de usuário precisa ser adicionado ao arquivo sudoers com um conjunto de permissões. Este arquivo é sensível e importante como um controle de acesso e segurança, e não deve ser editado diretamente com um editor de texto., Se o ficheiro sudoers for editado incorrectamente, poderá impedir o acesso ao sistema ou outras alterações de permissões não intencionais.
Nota
Para obter instruções sobre como adicionar um usuário a um padrãosudo
habilitado grupo, consulte ourHow para a segurança de Seu Servidor guia
visudo
comando deve ser usado para editar o arquivo sudoers. Numa linha de comandos, entre no seu sistema como root
e indique o comando visudo
.,
seguinte sudoers
trecho permite que os utilizadores listados para executar qualquer comando que gostaria de prefixo com sudo
, que dá ao usuário controle total de um sistema.
Atenção
os Usuários nunca devem ser adicionados para osudoers
arquivo ou grupo com permissão total, se eles não são confiáveis. Você pode opcionalmente restringir o que os usuários podem fazer comsudo
como uma camada adicional de segurança; consulte os comandos de listagem com Sudo para alguns exemplos sobre sintaxe de uso restrito.,
Depois de ter dado os privilégios de sudo à sua conta de utilizador, grave o ficheiro sudoers e saia como root. Agora faça login como seu usuário e teste os privilégios como seu usuário com sudo access., Quando um novo utilizador necessita de acesso sudo, você agora é capaz de editar o arquivo sudoers com o seu próprio login usando o seguinte comando:
sudo visudo
lista de permissões Comandos Com o Sudo
Em muitos casos, enquanto você quiser que os usuários tenham elevados sudo permissões, você também quer seguir o princípio de privilégio mínimo e subsídios sudo usuários acesso somente para os comandos que eles precisam., No exemplo a seguir, o arquivo sudoers foi editado para limitar o uso do sudo para alguns claramente definidos comandos:
Enquanto a raiz e sudousername
usuários ainda têm total permissões de superusuário, o usuário username
foi limitado a apenas o top
e apt-get
comandos como o sudo usuário. Além disso, todos os usuários adicionados ao sudo
grupo separadamente são limitadas apenas para o less
ls
e apt
comandos com o sudo permissões., Se você queria dar ao usuário username
sudo acesso ao adicional de 3 comandos na lista de permissões para sudo
grupo, você apenas precisa adicionar a tag sudo
grupo e eles continuariam a manter as suas próprias permissões exclusivas, dando-lhes acesso sudo para um total de 5 de comandos. Este processo pode ser repetido para tantos usuários e grupos quanto necessário.
Note
quando se whitelisting comandos individuais usando a sintaxe acima, é importante usar o caminho absoluto para o comando.,
which
comando pode ser usado para encontrar este caminho absoluto:which command-name
o Trabalho com Grupos
o Linux usa grupos como uma forma de organizar os usuários. Grupos organizam coleções de contas, principalmente como uma medida de segurança. O controle de membros do grupo é administrado através do arquivo/etc/group
, que mostra uma lista de grupos e seus membros. Cada usuário tem um grupo padrão ou Primário. Quando um usuário faz login, os membros do grupo são definidos para seu grupo primário., Isto significa que quando um usuário lança um programa ou cria um arquivo, tanto o arquivo eo programa em execução está associado com a adesão do grupo atual do Usuário. Um usuário pode acessar outros arquivos em outros grupos, desde que eles também sejam membros desse grupo e as permissões de acesso sejam definidas. Para executar programas ou criar um ficheiro num grupo diferente, o utilizador deve executar o comando newgrp
para mudar o seu grupo actual., A sample of the newgrp command is as follows:
$ newgrp <marketing>
If the user entering the above-referenced command is a member of the marketing group in the /etc/group
file, then the current group membership changes. É importante notar que quaisquer arquivos criados estão agora associados com o grupo de marketing ao invés do grupo primário do Usuário.,
a Criação e Remoção de Diretórios
Para tornar um diretório, use o comando:
mkdir <directory name>
Para fazer uma pasta e defina as permissões ao mesmo tempo, utilizar a seguinte opção e sintaxe:
mkdir -m a=rwx <directory name>
A opção-m é curto para o modo de e a=rwx significa que todos os utilizadores têm de ler, escrever e executar permissões no diretório. Para ver uma lista completa de todas as opções para o comando mkdir, indique man mkdir
numa linha de comandos.,
Para remover um arquivo, use o seguinte:
rm <file>
Para remover um diretório:
rm -r <directory name>
é importante notar que se você remover um diretório de todos os arquivos que são excluídos.
A alterar as permissões de directório e de ficheiro
para ver as permissões e a propriedade dos ficheiros e directórios, use o comando ls -al
. A opçãoa
é mostrar arquivos escondidos ou todos os arquivos, e a opçãol
é para a listagem longa., O resultado é semelhante ao seguinte:
A primeira coluna com as dez letras e traços mostra as permissões do ficheiro ou directório. A segunda coluna (com o número único) indica o número de ficheiros ou directórios contidos no directório. A coluna seguinte indica o proprietário, seguido pelo nome do grupo, o tamanho, data e hora do último acesso, e finalmente o nome do arquivo ., Por exemplo, usando a primeira linha da saída acima, os detalhes são como se segue:
Nota
uma vez que um diretório é um arquivo, de qualquer diretório, mostra4096
é o tamanho. Isto não reflecte a dimensão do conteúdo do directório.
chmod Command
o comando chmod
é curto para mudar o modo. O Chmod é usado para alterar as permissões nos ficheiros e directórios., O comando chmod
pode ser usado com letras ou números (também conhecido como octal) para definir as permissões.,/td>
É importante lembrar que o primeiro caractere da primeira coluna de um ficheiro de listagem indica se é um diretório ou um arquivo., Os outros nove caracteres são as permissões para o ficheiro/directório. Os três primeiros caracteres são para o usuário, os três seguintes são para o grupo, e os três últimos são para os outros. O exemplo drwxrw-r– decompõe-se como segue:
d é um diretório
rwx o usuário tem de ler, escrever, e executar permissões
rw – o grupo tem permissões de leitura e escrita
i– a de todos os outros têm permissões só de leitura
Observe que o traço (-) indica as permissões são removidas., Portanto, com o grupo “todos os outros”, R– traduz apenas para permissão de leitura, as permissões de escrita e execução foram removidas.
por outro lado, o sinal de adição (+) é equivalente a concessão de permissões: chmod u+r,g+x <filename>
O exemplo acima traduz da seguinte forma:
u is for userr is for readg is for groupx is for execute
Em outras palavras, o usuário foi dado permissão de leitura e o grupo foi dado permissão de execução para o arquivo. Note, Ao definir várias permissões para um conjunto, é necessária uma vírgula entre conjuntos.,
Chmod Octal Format
para usar o formato octal, você tem que calcular as permissões para cada porção do arquivo ou diretório. Os primeiros dez caracteres acima mencionados correspondem a um número de quatro dígitos em octal. A permissão de execução é igual ao número um (1), a permissão de escrita é igual ao número dois (2), e a permissão de leitura é igual ao número quatro (4). Portanto, quando você usa o formato octal, você precisa calcular um número entre 0 e 7 para cada porção da permissão. Foi apresentado a seguir um quadro para clarificação.,
Embora o formato octal pode parecer difícil de entender, ele é fácil de usar uma vez que você começa a questão. No entanto, a configuração de permissões com r, w e x pode ser mais fácil. Abaixo estão exemplos de como usar letras e formato octal para definir permissões em um arquivo ou diretório.,
Exemplo de sintaxe:
chmod <octal or letters> <file/directory name>
formato de Letra:
chmod go-rwx Work
(Negar permissão rwx para o grupo e outros)
A saída de ls -al após o comando chmod acima de procura da seguinte forma:
dr-------- 2 user user 4096 Dec 17 14:38 Work
Octal formato: chmod 444 Work
A saída de ls -al após o comando chmod acima ficaria da seguinte maneira:
dr--r--r-- 2 user user 4096 Dec 17 14:38 Work
Um octal tabela mostrando o equivalente numérico para permissões são fornecidas abaixo.,
Permissões de Arquivo Adicionais
além do mais comum de ler/escrever/executar arquivo de permissões, existem alguns modos adicionais que você pode achar útil, especificamente a +t (modo de sticky bit) e a +s (modo de bit setuid). Estas funções descrevem o comportamento de arquivos e executáveis em situações multi-usuário.,
Quando definido em um diretório, o sticky bit, ou modo +t, significa que apenas o proprietário (ou root) pode excluir ou mudar o nome de arquivos dentro desse diretório, independentemente de quais usuários têm acesso de escrita para o diretório por meio de filiação de grupo ou propriedade. Isto é útil quando um diretório é de propriedade de um grupo através do qual um número de usuários compartilham acesso de escrita a um determinado conjunto de arquivos.,
é importante notar que a configuração do bit pegajoso num ficheiro não impede que um utilizador com permissões de escrita na pasta envolvente remova ou renomeie o ficheiro—o bit pegajoso tem de ser definido na pasta envolvente. O sticky bit não tem função em sistemas Linux modernos quando configurado em arquivos.
Para definir o sticky bit em um diretório chamado /root/sticky
, emita o seguinte comando:
chmod +t /root/sticky
Para remover o bit sticky a partir de um arquivo ou diretório, use o chmod -t
comando., Nota: para alterar o ‘sticky bit’, terá de ser o ‘root’ ou o dono do ficheiro/directório. O usuário root é capaz de excluir diretórios e arquivos dentro deles, independentemente do Estado do sticky bit.
O bit setuid, ou +s, quando definido em arquivos permite aos usuários com permissões para executar um dado arquivo a capacidade de executar esse arquivo com as permissões do proprietário do arquivo., Por exemplo, se o arquivo work
era de propriedade de root
usuário e o marketing
grupo, os membros da marketing
grupo pode executar o work
programa como se fossem o usuário root. Isto pode representar riscos potenciais para a segurança em alguns casos e os executáveis devem ser devidamente avaliados antes de receberem o ID
flag., Para definir o+s
bit em um arquivo chamado/usr/bin/work
, emita o seguinte comando:
chmod g+s /usr/bin/work
Em contraste com o +s o modo para a propriedade de um arquivo, o efeito de a +s do modo em um diretório é um pouco diferente. Os arquivos criados em diretórios +s recebem a propriedade do Usuário e grupo desse diretório, ao invés da propriedade do usuário que criou o arquivo e seu grupo padrão., Para definir o setguid (id do grupo) opção em um diretório, use o seguinte comando:
chmod g+s /var/doc-store/
Para definir o bit setuid (id de usuário) para um diretório chamado /var/doc-store
, emita o seguinte comando:
chmod u+s /var/doc-store/
Alterar a Propriedade do Arquivo
Por padrão, todos os arquivos são “propriedade” o usuário que cria-los e por que o usuário padrão do grupo. Para mudar a propriedade de um arquivo, use o comando chown
no formato chown user:group /path/to/file
. No exemplo seguinte, a propriedade da ” lista.,html “file is changed to the” cjones “user in the” marketing”group:
chown cjones:marketing list.html
To change the ownership of a directory and all the files contained inside, use the recursive option with the -R
flag. No exemplo a seguir, altere a propriedade de /srv/smb/leadership/
para o “cjones de usuário” no “marketing” do grupo:
chown -R cjones:marketing /srv/smb/leadership/
Aproveitando os Utilizadores de Linux e Grupos
Em muitos casos, as permissões de usuário são usados para fornecer o sistema com maior segurança e sem qualquer interação direta., Muitos sistemas operacionais criam contas específicas de usuário do sistema para diferentes pacotes durante o processo de instalação.
a melhor prática é dar a cada usuário seu próprio login para o seu sistema. Isso protege os arquivos de cada usuário de todos os outros usuários. Além disso, o uso de contas específicas para usuários permite um registro mais preciso do sistema, particularmente quando combinado com ferramentas como sudo
. Recomendamos evitar situações em que mais de um indivíduo conhece a senha de uma conta de usuário para máxima segurança.,
em contraste, os grupos são úteis para permitir que várias contas de usuário independentes colaborem e compartilhem arquivos. Se você criar grupos de uma máquina para tarefas comuns em uma base por tarefa (e.g. web editores, colaboradores, conteúdo submetedores, suporte) e adicionar usuários relevantes para os grupos relevantes, estes usuários podem editar e executar o mesmo conjunto de arquivos sem compartilhar esses arquivos com o mundo. O uso do comando chown
com permissões de arquivos de 770 e 740 ajudaria a alcançar este objetivo.