다음을 입력하면:
ls -l file.txt
파일에 "456"과 동일한 권한이 있는 것을 확인했습니다.
- 4 = 소유자(r--)
- 5 = 그룹(수신)
- 6 = 기타(RW-)
당신은 어떤 권리를 갖고 있나요?뿌리이 경우에는? 777이 있나요?
루트가 소유자보다 더 적은 권한을 갖도록 권한을 변경할 수 있습니까?
답변1
내가 확인합니다이 페이지는 종료되었습니다. 파일 권한에 대해 자세히 설명합니다.
그러나 귀하의 질문에 직접 대답하려면 다음을 수행하지 마십시오.
슈퍼유저 "루트"는 시스템의 모든 파일에 액세스할 수 있습니다.
예를 들어, 귀하의 예에서 파일이 say 에 소유되었고 bob
그룹 소유자도 소유했다면 bob
다음과 같은 내용이 표시됩니다.
-r--r-xrw-. 1 bob bob 8 Jan 29 18:39 test.file
others
루트가 이 그룹의 일부 이기 때문에 세 번째 비트 그룹(rw)도 루트에 적용됩니다 . 루트로 파일을 편집하려고 하면 아무런 문제가 없다는 것을 알게 될 것입니다.
그러나 이론을 추가로 테스트하려면 파일이 루트 소유인 경우:
-r--r-xrw-. 1 root root 8 Jan 29 18:40 test.file
그런 다음 파일을 다시 편집하면 여전히 편집에 문제가 없다는 것을 알게 될 것입니다.
마지막으로 극단적인 경우:
chmod 000 test.file
ls -lh test.file
----------. 1 root root 8 Jan 29 18:41 test.file
그런 다음 파일을 다시 편집하면(적어도 vi/vim에서는) "test.file" [readonly]
. 하지만 여전히 파일을 편집하여 강제로 :wq!
.
쉘 스크립트 파일을 사용하여 @Stéphane Chazelas의 명령문을 테스트하십시오.
#!/bin/sh
echo "I'm alive! Thanks root!"
[root ~]# ls -lh test.sh
----------. 1 atgadmin atgadmin 31 Jan 30 10:59 test.sh
[root ~]# ./test.sh
-bash: ./test.sh: Permission denied
[root ~]# sh test.sh
I'm alive! Thanks root!
@Shadur가 이미 말했으므로 다시 언급하지 않고 인용만 하겠습니다.
참고: 실행 비트가 있는지 확인하고, 루트에서 사용할 수 있는지 확인하세요.
답변2
설계상 루트 사용자는 시스템의 모든 파일에 대한 전체 액세스 권한을 갖습니다. 실수로 파일이 삭제되는 것을 방지하려면 다음을 사용하세요.
chattr +i file
그러면 GNU/Linux에 불변 플래그가 설정됩니다. -i
제거하는 대신 사용할 수 있습니다 +i
.
FreeBSD에서는 다음을 사용할 수 있습니다.
chflags schg file
대체 noschg
실행을 취소 schg
합니다.
루트에서 파일을 볼 수 없도록 하려면 파일을 다른 시스템에 저장하거나 최후의 수단으로 암호화를 사용해야 합니다.
답변3
루트가 소유자보다 더 적은 권한을 갖도록 권한을 변경할 수 있습니까?
Shure, 매우 간단합니다. 루트의 uid가 0이 아니도록 passwd 파일을 변경하기만 하면 됩니다. 반면에 그렇게하지 마십시오. 나쁜 생각입니다.
이 질문을 한 사람은 당신이 처음이 아닙니다. 그들 중 일부는 기능에 대한 아이디어를 내놓았지만 이에 대해서는 나중에 논의할 것입니다. 먼저 권한 시스템의 작동 방식을 이해하는 것부터 시작하겠습니다.
액세스 확인을 시작하는 컴퓨터 부분은 귀하의 이름을 알지 못하지만 uid 또는 사용자 식별자라는 번호로 귀하를 식별합니다. 비슷한 방식으로, 귀하가 속한 그룹의 이름은 모르고 gid만 알 수 있습니다. uid와 name 간의 매핑은 passwd 파일에 있고 gid는 groups 파일에 매핑됩니다.
이제 파일을 열 때 네 가지 확인이 이루어집니다. 확인을 건너뛸 수 있는 권한이 있는지, 사용자로서 허용되는지, 그룹 구성원으로 허용되는지, 허용하도록 되어 있습니다. 여기서는 이름 서비스 스위치, 액세스 제어 목록, 읽기/쓰기 실행과 같은 몇 가지 항목을 건너뛰지만 여러분이 관심을 가질 부분은 첫 번째 테스트입니다.
때로는 파일 권한 테스트를 건너뛸 수 있습니다. 왜? 그리고 (매우 중요하게) 언제요? 이제는 다른 사람이 수행할 수 없도록 해야 하는 작업이 있으며 파일 권한 모델에 잘 맞지 않는 경우도 있습니다. 낮은 포트에서 네트워크 연결 열기, 파티션 마운트, 권한 확인 건너뛰기 등 다양한 작업이 가능합니다. 요즘은 이런 것들을 능력이라고 부르죠. 과거 UID0에는 이러한 모든 기능이 있었고 이에 대해 할 수 있는 일은 없었습니다. 이제 다른 사용자에게 기능을 제공하거나 삭제할 수 있지만 기본값은 이전 동작입니다.
루트를 제한하는 또 다른 방법은 selinux와 같은 것을 사용하는 것이지만 이는 또 다른 왁스 공입니다.
답변4
이 경우 루트의 권리는 무엇입니까? 777이 있나요?
예.
앞서 언급했듯이 루트에는 읽기 및 쓰기 권한이 적용되지 않습니다. 그러나 실행 권한은 여전히 확인되어 있으므로 실행 플래그가 설정되지 않으면 루트는 해당 파일을 실행할 수 없습니다. 그룹에 깃발이 있기 때문에 여기서는 그렇지 않습니다 x
.
또한 쓰기 권한 부여 여부에 관계없이 루트 또는 다른 사람은 읽기 전용 파일 시스템에 저장된 파일에 대한 쓰기 액세스가 거부됩니다.
파일이 원격으로 마운트된 디렉터리(예: NFS)에 저장된 경우 루트 사용자는 소유자보다 더 적은 권한을 가질 수도 있습니다.
마지막으로, 심볼릭 링크 권한은 본질적으로 의미가 없습니다.