>시스템 튜토리얼 >리눅스 >쉘 작동 원리 및 Linux 권한에 대한 자세한 설명

쉘 작동 원리 및 Linux 권한에 대한 자세한 설명

王林
王林앞으로
2024-02-09 14:39:13705검색

Linux는 엄밀히 말하면 운영 체제의 핵심입니다. 즉, 일반 사용자는 코어를 직접 호출할 수 없습니다. 코어와 통신하려면 쉘이라고도 알려진 코어의 "쉘" 프로그램을 거쳐야 합니다. Shell은 사용자가 입력한 명령을 받아 시스템이 실행하는 작업 코드로 변환하는 명령줄 해석기입니다. 쉘은 명령 유형에 따라 다양한 시스템 기능을 호출하여 다양한 작업을 완료할 수 있습니다. 따라서 Shell을 사용하여 다양한 명령과 작업을 실행하여 시스템을 제어하고 관리할 수 있습니다. 간단히 말해서, 셸은 사용자와 기본 커널 사이의 다리 역할을 합니다.

이해하는 방법은 무엇입니까? 왜 커널을 직접 사용할 수 없나요?

기술적인 관점에서 볼 때 Shell의 가장 간단한 정의: 명령 해석기(명령 해석기)에는 주로 다음이 포함됩니다.

으아악 shell 运行原理和 Linux 权限详解

참고: shell은 모든 쉘 프로그램의 총칭이며, bash는 특정 쉘입니다. 예: centos 7 쉘: bash

  • Windows GUI와 비교하면 Windows를 작동할 때 Windows 커널을 직접 작동하지 않고 그래픽 인터페이스를 클릭하여 작업을 완료합니다. 예를 들어 D 드라이브를 입력하려면 일반적으로 D 드라이브 문자를 두 번 클릭합니다. 또는 응용 프로그램을 실행하십시오).
  • 쉘은 Linux와 동일한 기능을 가지고 있습니다. 주로 지침을 구문 분석하고 지침을 Linux 커널로 구문 분석합니다. 피드백 결과는 커널을 통해 실행되고 셸을 통해 사용자에게 구문 분석됩니다.
  • 쉘 작동 방식
아아아아
  • 이해를 돕기 위해:
  • 당신이 지루하고 수줍음이 많은 프로그래머라면 쉘은 중매인과 같습니다
  • 운영 체제 커널은 당신의 마음을 뛰게 만드는 마을의 아름다운 꽃입니다.
  • Xiaohua와 사랑에 빠졌지만 너무 부끄러워서 직접 고백할 수 없는 경우 가족이 중매인을 찾아 결혼 제안을 도와주도록 하세요
  • 당신은 모든 것에 대해 중매인과 직접 소통하고, 중매인은 당신의 생각을 샤오화에게 전달할 것입니다
  • 그리고 중매인의 성이 왕(Wang)이라는 것을 알게 되었고, 우리가 자주 사용하는 배쉬에 해당하는 왕포(Wang Po)라고 불렀습니다.
  1. 리눅스 권한

2.1 권한의 개념

  • Linux에는 슈퍼 사용자(루트)와 일반 사용자라는 두 가지 유형의 사용자가 있습니다.
  • 슈퍼 유저: Linux 시스템에서 제한 없이 무엇이든 할 수 있습니다
  • 일반 사용자: Linux에서는 제한된 작업을 수행합니다.
  • 슈퍼 유저의 명령 프롬프트는 "#"이고 일반 사용자의 명령 프롬프트는 "$"입니다.
shell 运行原理和 Linux 权限详解
  • 사용자 전환 명령

명령: su [사용자 이름]

기능: 사용자 전환.

예를 들어 루트 사용자에서 일반 사용자로 전환하려면 su 사용자를 사용합니다. 일반 사용자 사용자에서 루트 사용자로 전환하려면 suroot를 사용합니다(루트는 생략 가능). 이때 루트 사용자의 비밀번호를 입력하라는 메시지가 표시됩니다.

shell 运行原理和 Linux 权限详解
  • 루트로 전환: su -를 사용하면 루트 사용자로 전환할 수 있습니다(이때 루트 계정 비밀번호를 입력하면 비밀번호가 화면에 표시되지 않습니다)
  • 일반 사용자로 다시 전환: su – 사용자 이름을 사용하여 일반 사용자로 다시 전환합니다(지금은 비밀번호를 입력할 필요가 없지만, su – 명령을 사용할 때 더 많은 bash 프로세스가 발생하므로 이와 같이 다시 전환하는 것은 권장하지 않습니다) 생성됩니다)
  • 일반 사용자로 다시 전환하는 것이 좋습니다. 일반 사용자로 돌아가려면 종료를 입력하거나 Ctrl+d를 누르세요

2.2 권한 관리

  • 권한이란 무엇입니까

권한은 본질적으로 누군가가 어떤 일을 할 수 있는지 여부를 결정합니다.

  • 사람들의 경우: 예를 들어, 나는 이 집의 주인이므로 집에 자유롭게 드나들 수 있습니다
  • 타깃은 컴퓨터 먹고 싶다, 빵으로 리그오브레전드 하고 싶다, 영화 보고 싶다. 당신은 빵을 먹을 수 있지만 컴퓨터는 먹을 수 없습니다. 당신은 빵을 먹을 수 있지만 컴퓨터는 먹을 수 없습니다.

파일은 사람의 영향을 받고 파일은 그 자체의 특성(사물 속성)의 영향을 받으므로 파일 권한 = 사람 + 사물의 속성

파일 권한 속성: r(읽기), w(쓰기), x(실행 권한)

사람(특정인이 아닌 역할) : 소유자, 그룹, 기타(기타)

  • 파일 방문자(명) 분류
  • 파일 및 파일 디렉터리의 소유자: u—사용자(중국 민간 법률 문제)
  • 파일 및 파일 디렉터리의 소유자가 속한 그룹의 사용자: g—그룹(말할 것도 많지 않음)
  • 다른 사용자: o—기타(외국인)
  • 파일 형식 및 액세스 권한(사물 속성)
shell 运行原理和 Linux 权限详解

"

표시된 다중 열 속성의 첫 번째 열에 해당하는 문자로 파일 형식을 구별하려면 ls -l(ll) 명령을 사용하세요.

shell 运行原理和 Linux 权限详解

기타는 기재할 필요가 없습니다. 소유자나 소속 그룹이 아닌 경우에는 기타이기 때문입니다

이해를 돕기 위해 – 소유자 및 그룹

간단한 예를 들어보겠습니다. 한 회사 내에서 두 프로젝트 팀이 동일한 코드 작업을 완료해야 하는데, 회사에서는 완료한 코드를 제출하는 데 필요한 서버가 하나뿐입니다. 당신이 쓴 글은 당신과 당신의 팀 리더만이 볼 수 있어야 하며, 경쟁사 그룹이 볼 수는 없습니다. 이는 소속 그룹이라는 개념을 불러일으킵니다.

shell 运行原理和 Linux 权限详解

파일 형식

  • d: 폴더
  • -: 일반 파일
  • l: 소프트 링크(Windows 단축키와 유사)
  • b: 장치 파일 차단(예: 하드 디스크, 광학 드라이브 등)
  • p: 파이프 파일
  • c: 문자 장치 파일(예: 화면 및 기타 직렬 장치)
  • s: 소켓 파일
shell 运行原理和 Linux 权限详解
  • 기본 권한

i.읽기(r/4): 파일의 경우 읽기에는 디렉터리의 파일 내용을 읽을 수 있는 권한이 있고 디렉터리 정보를 탐색할 수 있는 권한이 있습니다

ii.쓰기(w/2): 파일의 경우 디렉터리의 파일 내용을 수정할 수 있는 권한, 이동된 디렉터리의 파일을 삭제할 수 있는 권한이 있습니다

iii.실행(x/1): 파일의 경우 실행에는 디렉터리에 대한 파일을 실행할 수 있는 권한이 있고, 디렉터리에 들어갈 수 있는 권한이 있습니다.

iv. “—”는 권한이 없음을 의미합니다

shell 运行原理和 Linux 权限详解2.3 파일 권한 값 표현 방법

캐릭터 표현

을 의미합니다.
Linux는지침 리눅스 지침
r – – 읽기 전용 – 승 – 쓰기 전용
– – x 실행 파일만 r 승 – 읽기 및 쓰기 가능
– wx 쓰기 및 실행 가능 r – x 읽기 및 실행 가능
rwx 읽기, 쓰기 및 실행 가능 ––– 권한 없음

8진수 값을 표현하는 방법

권한 기호(읽기, 쓰기, 실행) 옥탈 바이너리
r 4 1 0 0
w 2 0 1 0
x 1 0 0 1
rw 6 1 1 0
rx 5 1 0 1
wx 3 0 1 1
rwx 7 1 1 1
– – – 0 0 0 0
shell 运行原理和 Linux 权限详解

权限更改

$ chmod 777 text.c
$ chmod 000 text.c
$ chmod 640 text.c
shell 运行原理和 Linux 权限详解

2.4 文件访问权限的相关设置方法

chmod

  • 功能:设置文件的访问权限
  • 格式:chmod [参数] 权限 文件名
  • 常用选项:

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

说明:只有文件的拥有者和 root 才可以改变文件的权限

  • chmod 命令权限值得格式

① 用户表示符 +/-= 权限字符

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

示例:

shell 运行原理和 Linux 权限详解

注意:chmod 可以给拥有者,所属组,其他用户同时修改权限,中间用逗号隔开

如果要修改不是自己的文件的时候需要 sudo 临时权限提升或者直接切成 root 身份

  • sudo chmod 用户表示符 +/-= 权限字符 文件名

chown

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名

实例:

$ sudo chown root test.c// 修改拥有者
$ sudo chown lighthouse test.c// 修改拥有者
$ sudo chown :lighthouse test.c// 修改所属组
$ sudo chown lighthouse:lighthouse test.c// 可以将拥有者、所属组同时修改
$ sudo chown root:root test.c// 可以将拥有者、所属组同时修改
shell 运行原理和 Linux 权限详解

chgrp

功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组

实例:

$ sudo chgrp root text.c
$ sudo chgrp lighthouse text.c
shell 运行原理和 Linux 权限详解

2.4 修改文件的掩码

umask

功能:查看或修改文件掩码

语法:umask 权限值

shell 运行原理和 Linux 权限详解

新建文件夹默认权限 = 0666

新建目录默认权限 = 0777

shell 运行原理和 Linux 权限详解

但是我们观察到,新建的文件和目录并不是默认的起始权限,这里是什么原因呢?

原因就是创建文件或目录的时候还要受到 umask 的影响。假设默认权限是 mask,则实际创建的出来的文件权限是:umask & ~umask

shell 运行原理和 Linux 权限详解
  • 我们也可以通过修改文件的 umask 码值来修改文件的权限:
shell 运行原理和 Linux 权限详解

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为 0022,普通用户默认为 0002。

2.5 file 指令

file

功能说明:辨识文件类型。

语法:file [选项] 文件或目录…

常用选项:

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。

-z 尝试去解读压缩文件的内容。

shell 运行原理和 Linux 权限详解
  1. 目录权限

面试题:进入一个目录要什么权限?

  • 可读权限: 如果目录没有可读权限,则无法用 ls 等命令查看目录中的文件内容.
  • 可写权限: 如果目录没有可写权限,则无法在目录中创建文件, 也无法在目录中删除文件.
  • 可执行权限:如果没有目录可执行权限,则无法 cd 到目录中
x
r
w
  1. 粘滞位

新发现:

就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.我创建的一个文件, 凭什么被你一个外人可以删掉

shell 运行原理和 Linux 权限详解

结论

如果目录本身对 other 具有 w 权限,other 可以删掉任何目录下的东西
如果目录本身对 other 没有 w 权限,other 则不可以删除

我们的需求:other 可以在特定的目录下创建文件并写入,但是不想让任何人删除掉自己的文件

这里为了解决这个不科学的问题,Linux 引入了粘滞位的概念

粘滞位

语法:chmod +t 目录名

功能:给目录加上粘滞位

注意

디렉터리에만 설정할 수 있으며 일반적으로 다른 권한이 제한됩니다. 고정 비트가 설정된 디렉터리의 경우 파일 소유자와 루트 사용자만 이 디렉터리에서 삭제할 수 있으며 다른 사람은 삭제할 수 없습니다.

예:

shell 运行原理和 Linux 权限详解

사람이 여러 명이거나 시스템에 임시 데이터가 많으면 모든 임시 파일은 시스템의 /tmp 디렉터리에 저장됩니다. 모든 권한을 해제해야 하지만 파일 소유자가 자신의 파일만 삭제하도록 하려면 고정 비트를 설정해야 합니다

  1. 요약
  • 디렉터리의 실행 권한은 해당 디렉터리에서 명령을 실행할 수 있는지 여부를 나타냅니다.
  • 디렉토리에 없는 경우 – )
  • 그리고 디렉터리에 -x 권한이 있지만 -r 권한이 없는 경우 사용자는 명령을 실행할 수 있고 해당 디렉터리로 CD를 이동할 수 있습니다. 그런데 디렉토리에 대한 읽기 권한이 없기 때문에
  • 따라서 디렉터리에서 ls 명령을 실행할 수 있더라도 여전히 디렉터리의 문서를 읽을 수 있는 권한이 없습니다.

위 내용은 쉘 작동 원리 및 Linux 권한에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 lxlinux.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제