Linux Shell Sticky Bit Uso e exemplos
- 3629
- 909
- Maurice Champlin
Antes de falarmos sobre o que é uma parte pegajosa, vamos começar explicando por que precisamos. Por exemplo, temos um diretório /var/share
Em algum lugar do sistema de arquivos com um acesso total para todos os grupos de permissão que são proprietários, grupo e qualquer um, portanto, todos os bits de permissão são definidos como "ON" drwxrwxrwx
:
# ls -ld/var/share/drwxrwxrwx. 2 raiz raiz 4096 5 de março 11:02/var/share/
Pelo acima, podemos ver que qualquer usuário leu, escrever e executar permissões para o /var/share
diretório. Em seguida, em nosso cenário, temos dois usuários nomeados usuário1
e usuário2
. Já que todos agora têm acesso a /var/share
diretório, nosso usuário1
pode navegar para este diretório e simplesmente criar qualquer arquivo arbitrário:
user1@localhost ~] $ cd/var/share/[user1@localhost share] $ touch file1 [user1@localhost share] $ ls -l file1 -rw -rw -r -r--. 1 Usuário1 Usuário1 0 5 de março 11:08 File1 [User1@localhost Share] $
O arquivo1
foi criado com um bit de permissão definido pelo usuário Umask
valor e a propriedade do usuário e do grupo é definido para seu criador que é usuário1
. Até agora não temos problemas e tudo funciona perfeitamente como pretendido. Mais tarde, nosso usuário2
navega para o /var/share
diretório e decide renomear ou excluir arquivo1
para File2
:
[user2@localhost share] $ cd/var/share/[user2@localhost share] $ ls -l Total 0 -RW -RW -R--. 1 Usuário1 Usuário1 0 5 de março 11:20 FILE1 [User2@localhost Share] $ MV File1 File2 [User2@localhost Share] $ LS -l Total 0 -RW -RW -R--. 1 Usuário1 Usuário1 0 5 de março 11:20 FILE2 [User2@localhost Share] $ RM File2 RM: Remova o arquivo vazio regular de gravação 'File2'? y [user2@localhost share] $ ls [user2@localhost share] $
O que aconteceu no exemplo acima é que nosso usuário2
navegou para /var/share
diretório, listou todos os arquivos e encontrado arquivo1
. Com uso de MV
comando o usuário renomeado para arquivo1
para File2
. O arquivo foi renomeado enquanto o proprietário e o grupo do arquivo permaneceram inalterados. Depois disso usuário2
simplesmente decidiu remover o arquivo usando rm
comando.
Nesta fase, precisamos de algum mecanismo para impedir que os usuários que não possuem o diretório ou o arquivo real dentro do diretório de renomear ou remover os arquivos de outros usuários. Este mecanismo é chamado de "bit pegajoso". O bit sticky permite apenas root, proprietário do diretório e proprietário de arquivo para renomear e excluir arquivos. Usar chmod
comando para definir uma parte pegajosa em um diretório:
[root@localhost ~]# chmod +t/var/share/[root@localhost ~]# ls -ld/var/share/drwxrwxrwt. 2 raiz raiz 4096 5 de março 11:21/var/share/
O último bit de permissão executável para todos os usuários agora está definido como t
O que significa que uma parte pegajosa está agora em vigor e apenas os proprietários de raiz, arquivo ou diretórios podem renomear e excluir arquivos. Vamos replicar o cenário acima e deixar usuário1
Para criar um novo arquivo1
arquivo:
[user1@localhost share] $ ls [user1@localhost share] $ touch file1 [user1@localhost share] $ ls -l Total 0 -rw -rw -r -r--. 1 Usuário1 Usuário1 0 5 de março 11:34 file1 [user1@localhost share] $
arquivo1
agora é criado e como a parte pegajosa está agora no lugar usuário2
agora será impedido de renomear ou excluir o arquivo que não pertence a ele:
[user2@localhost share] $ ls -l Total 0 -RW -RW -R--. 1 Usuário1 Usuário1 0 5 de março 11:34 FILE1 [User2@localhost Share] $ MV File1 File2 MV: Não é possível mover 'file1' para 'file2': Operação não permitida [user2@lochost share] $ rm file1 rm: Remover Write-Proteged arquivo vazio regular 'arquivo1'? y rm: não é possível remover 'file1': operação não permitida [user2@localhost share] $ ls -l Total 0 -RW -RW -R--. 1 Usuário1 Usuário1 0 5 de março 11:34 FILE1 [User2@localhost Share] $
Do exemplo acima, podemos ver que usuário2
não conseguiu renomear ou excluir um arquivo porque é de propriedade de outro usuário, enquanto esse comportamento é imposto pelo mecanismo de bits pegajoso. O melhor exemplo de uso de bits pegajoso é /tmp/
diretório.
# ls -ld / tmp / drwxrwxrwt. 18 raiz raiz 480 5 de março 11:42 /tmp /
Qualquer usuário tem acesso a /tmp/
, No entanto, para impedir que outros usuários renomeassem ou excluam arquivos pertencentes a diferentes usuários, o bit sticky é definido como este diretório por padrão. Apenas para uma integridade, observe que você pode remover uma parte pegajosa de um diretório por já mencionado chmod
comando:
[root@localhost ~]# ls -ld/var/share/drwxrwxrwt. 2 raiz raiz 4096 5 de março 11:38/var/share/[root@localhost ~]# chmod -t/var/share/[root@localhost ~]# ls -ld/var/share/drwxrwxrwx. 2 raiz raiz 4096 5 de março 11:38/var/share/[root@localhost ~]#
Tutoriais do Linux relacionados:
- Uma introdução à automação, ferramentas e técnicas do Linux
- Coisas para instalar no Ubuntu 20.04
- Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
- Mastering Bash Script Loops
- Como aproveitar ao máximo o OpenSsh
- Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
- Com que frequência você tem que reiniciar seu servidor Linux?
- Como fazer bota dupla kali linux e windows 10
- Computer Math Basics: binário, decimal, hexadecimal, octal
- Crie e configure diretórios SetGid para colaboração -…
- « Como verificar o cabeçalho do site usando a linha de comando Linux
- Como inserir linha no início do arquivo no Linux »