[Linux]--Explicação detalhada do princípio de funcionamento e permissões dos comandos Shell

Índice

1. Princípio de operação do comando Shell

1. Concha        

2. Por que o Linux não permite que os usuários usem o kernel diretamente?

2. Conceito

3. Gerenciamento de permissões Linux

1. Classificação do usuário para acesso a arquivos

2. Tipos de arquivos e permissões de acesso 

(1) Tipo de arquivo 

(2)Direitos de acesso

3. Como expressar permissões

(1) Representação de personagem 

(2) Notação octal 

4. Configurações de permissão

(1) chmod altera as permissões de acesso ao arquivo

(2) chown altera o proprietário do arquivo

(3) chgrp modifica o grupo ao qual um arquivo ou diretório pertence

(4) umask para visualizar ou modificar a máscara do arquivo

(5) Permissões de diretório 

(6) Pedaço pegajoso


1. Princípio de operação do comando Shell

1. Concha        

        O Linux, como sistema operacional, é chamado de "kernel", os usuários gerais não podem usar o kernel diretamente, mas se comunicar com o kernel através do programa shell "Shell" do "kernel".

        Portanto, em sentido amplo, distribuição Linux = kernel Linux + shell, e em sentido estrito, distribuição Linux = kernel Linux.

Shell, como um programa shell, está envolto na camada externa do kernel Linux. É um programa aplicativo que emite tratamentos relevantes para o sistema operacional por meio de uma série de comandos Linux para fornecer uma interface humana. Ele conecta os usuários e o kernel do Linux, permitindo que os usuários usem o kernel do Linux de forma mais eficiente, segura e com baixo custo. Essa é a essência do Shell. bash é um tipo de Shell.

Processo de execução do comando Shell:

Shell tem duas funções:

(1) Passe o comando de solicitação e deixe o sistema operacional executar o comando

(2) Proteja o kernel 

2. Por que o Linux não permite que os usuários usem o kernel diretamente?

 Em comparação com a GUI do Windows, os usuários não operam diretamente o kernel do Windows ao operar o Windows, mas clicam na interface gráfica para concluir as operações do usuário (por exemplo, para entrar na unidade D, o usuário geralmente entra na unidade D clicando duas vezes no letra da unidade D).

O shell tem a mesma função para Linux, principalmente analisando instruções do usuário e analisando as instruções para o kernel Linux. Os resultados do feedback são executados no kernel e analisados ​​para o usuário por meio do shell.

2. Conceito de permissão do Linux

As permissões especificam se algo pode ser feito por uma pessoa específica. As permissões do Linux podem especificar quem pode executar quais operações em um arquivo ou diretório. Existem dois tipos de usuários no Linux: superusuários e usuários comuns. O prompt de comando do superusuário é "#" e o prompt de comando do usuário comum é "$".

Superusuário : pode fazer qualquer coisa no sistema Linux sem restrições. O prompt de comando do superusuário é "#"

Usuários comuns : Faça coisas limitadas no Linux. O prompt de comando para usuários comuns é "$"

Os dois tipos de usuários podem alternar entre si:

Você também pode usar ctrl + d para mudar para o usuário root em um usuário comum. Depois de mudar para root, a identidade do usuário pode ser atualizada e os comandos correspondentes podem ser executados.

3. Gerenciamento de permissões Linux

1. Classificação do usuário para acesso a arquivos

Os usuários são divididos em 3 categorias: 

(1) Usuário proprietário do arquivo --- u

(2) Grupo --- g ao qual o arquivo pertence

(3) Outros --- o

2. Tipos de arquivos e permissões de acesso 

(1) Tipo de arquivo 

 ​​​​​​​No Linux, o sufixo de arquivo não é usado como forma de distinguir os tipos de arquivo, mas o primeiro na lista detalhada de arquivos é usado para identificar a distinção:

Conforme mostrado acima, os tipos de arquivo incluem - e d. Os tipos de arquivo no Linux são divididos nas seguintes categorias:

d:文件夹
-:普通文件(包括文本、各种静态库、可执行程序、源程序)
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

(2)Direitos de acesso

O Linux tem três tipos de direitos de acesso aos arquivos:

r: read, para arquivos, tem permissão para ler o conteúdo do arquivo; para diretórios, tem permissão para navegar pelas informações do diretório.

w: write, para arquivos, tem permissão para modificar o conteúdo do arquivo; para diretórios, tem permissão para excluir arquivos no diretório móvel.

x: execute, para arquivos, tem permissão para executar o arquivo; para diretórios, tem permissão para entrar no diretório

3. Como expressar permissões

As permissões podem ser expressas em caracteres ou octais 

(1) Representação de personagem 

linux significa ilustrar
r-- somente leitura
-c- Apenas gravável
--x Apenas executável
rw- Legível e gravável
-wx gravável e executável
RX Legível e executável
rwx Legível, gravável e executável
--- Sem permissão

Para cada arquivo, existem três tipos de usuários, e cada usuário tem três permissões: 

(2) Notação octal 

Símbolos de permissão (leitura-gravação-execução) octal binário
r-- 4 100
-c- 2 010
--x 1 001
rw- 6 110
-wx 5 101
RX 3 011
rwx 7 111
--- 0 000

4. Configurações de permissão

O Root não está sujeito a nenhuma restrição de permissão e as permissões são limitadas apenas a usuários comuns. 

(1) chmod altera as permissões de acesso ao arquivo

 Somente o proprietário do arquivo e o root podem definir permissões de acesso ao arquivo:

chmod 【参数】 权限 文件名

Opções: 

R -> 递归修改目录文件的权限

 ①Símbolo do usuário +/-/=caractere de autoridade

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

Por exemplo, modifique as permissões de acesso de IP.log e adicione permissões executáveis ​​ao usuário: 

②Três dígitos octais

Por exemplo, altere as permissões de IP.log para não legível, não gravável e executável do proprietário (1), a matriz não pode ser lida, não gravável e executável (1), e outros não podem ler, não- gravação e executável (0):

 ​​​​​​​

Embora o usuário delia não possa ler IP.log, o root pode ler IP.log. Isso ocorre porque o root não está sujeito a nenhuma restrição de permissão:

Se você precisar fazer cd em um diretório, precisará ter permissões X. Se você não tiver permissões x, poderá verificar o nome do arquivo com ls, mas não poderá fazer cd nele.

(2) chown altera o proprietário do arquivo

Alterar proprietário do arquivo:

chown 【参数】 用户名 文件名

Opções:

-R 递归修改目录的拥有者

  Por exemplo, para alterar o proprietário do arquivo IP2.log para o usuário Gino, ele deve ser modificado com permissões de root. Você pode mudar para root:

Em seguida, modifique o proprietário do arquivo:

(3) chgrp modifica o grupo ao qual um arquivo ou diretório pertence

Modifique o grupo ao qual um arquivo ou diretório pertence:

chgrp 【参数】 用户组名 文件名

 Opções:

-R  递归修改文件或目录的所属组

Você também precisa de permissões de root para modificá-lo. Por exemplo, altere o grupo do arquivo IP2.log para Gino: 

Se quiser modificar o proprietário e o grupo ao mesmo tempo, você ainda precisará ter permissões de root:

chown 拥有者:所属组 文件名

 Por exemplo, se quiser alterar o proprietário e o grupo de IP2.log para root, você pode alterá-lo assim: 

(4) umask para visualizar ou modificar a máscara do arquivo

Ao criar um novo arquivo, as permissões de acesso devem ser 777, mas você descobre que as permissões do diretório recém-criado são 755:

Isso ocorre porque ao criar um arquivo ou diretório, ele também é afetado por umask.Supondo que a permissão padrão seja máscara, as permissões do arquivo realmente criado são máscara e ~umask.

Visualizar máscara de arquivo:

umask

Verifica-se que a umask do sistema é 0022:

Você só precisa se preocupar com os três últimos dígitos. As permissões do arquivo realmente criado são máscara e ~umask. Qualquer bit 1 em umask deve ser removido da permissão inicial:

 Modifique a máscara do arquivo:

umask 八进制

Altere a máscara do arquivo de 022 para 333 e descubra que as permissões do novo diretório criado também correspondem a 333: 

 Mas se você sair, fizer login novamente e criar um novo diretório, descobrirá que a máscara modificada é inválida e se torna 022 novamente.

 

 Isso ocorre porque a configuração da máscara só é eficaz durante esse login e se tornará inválida quando você sair.

(5) Permissões de diretório 

Permissões legíveis: se o diretório não tiver permissões legíveis, você não poderá usar comandos como ls para visualizar o conteúdo dos arquivos no diretório.
②Permissões graváveis : Se o diretório não tiver permissões graváveis, os arquivos não poderão ser criados no diretório e os arquivos não poderão ser excluídos do diretório.
③Permissões executáveis : Se o diretório não tiver permissões executáveis, você não poderá fazer cd no diretório.
Então há um problema. Contanto que o usuário tenha permissões de gravação para o diretório , o usuário poderá excluir arquivos no diretório , independentemente de o usuário ter permissões de gravação para o arquivo. Isso não é uma contradição?

(6) Pedaço pegajoso

 No diretório raiz do root, há uma pasta tmp. Os arquivos temporários são armazenados nesta pasta. Antes de o usuário salvar o arquivo, os arquivos são armazenados na pasta tmp. Esta pasta armazena os arquivos temporários do usuário. Você pode ver que há at às suas permissões:

 

As permissões desta pasta são rwx para o proprietário e o grupo ao qual pertence, e as permissões para outras são rwt. Qual é o atributo deste t? Qual é a diferença entre r, w e x?

Vejamos primeiro o exemplo a seguir. O usuário root criou uma pasta test no diretório raiz e criou 2 arquivos test1 e test2 nesta pasta. Em seguida, o usuário root mudou para o usuário delia. Neste momento, descobriu-se que delia poderia realmente excluir arquivos em teste:

 

Como isso pode ser tolerado? Como os arquivos que criei podem ser excluídos casualmente por outras pessoas? O diretório de teste possui permissões w e x em outro. Uma vez que tenha permissões w, outro pode criar arquivos e excluir arquivos nele. Mas o que devo fazer se não quiser que os arquivos criados por um usuário sejam excluídos por outros usuários?

Neste cenário, o sticky bit é necessário. Quando o sticky bit é definido em um diretório, mesmo que o usuário tenha permissões de gravação no diretório, os arquivos de outros usuários no diretório não podem ser excluídos. Somente o proprietário do arquivo e o o usuário root pode excluir os arquivos. Isso atinge o objetivo de que cada usuário possa ler, gravar, modificar e excluir arquivos no diretório, mas não pode excluir os arquivos de outros usuários à vontade.

Defina a parte pegajosa:

Verificou-se que depois que o sticky bit for definido, outros usuários não poderão excluir os arquivos criados por este usuário. 

Portanto, quando um diretório é definido como "sticky bit" (chmod +t), os arquivos no diretório só podem ser
excluídos por (1) o superadministrador
(2) o proprietário do diretório
(3) o proprietário do arquivo excluir

Acho que você gosta

Origin blog.csdn.net/gx714433461/article/details/127222316
Recomendado
Clasificación