이러한 파일에 대한 권한을 600으로 설정하면 운영 체제를 사용할 수 없게 됩니까? .bash_logout, .bashrc, .profile

이러한 파일에 대한 권한을 600으로 설정하면 운영 체제를 사용할 수 없게 됩니까? .bash_logout, .bashrc, .profile

저는 별칭에 크게 의존하고 .bashrc있으며 홈 디렉터리와 그 하위 디렉터리 및 파일(파일 및 디렉터리) Ubuntu 20.04 데스크탑)의 권한을 반복적으로 변경하여 개인 정보 보호/보안을 향상하고 별칭을 어느 정도 강화할 수 있다는 생각이 들었습니다 600.700 그래서 나는 다음을 실행했습니다.

sudo chmod -R 600 /home/undoxed && sudo chmod -R u+X /home/undoxed

undoxed내 관리 사용자의 이름은 어디에 있습니까? 재귀 플래그는 , 및 에 면역 .bash_logout되지 .bashrc않습니다 .profile.

예전에 패치하면서 느낀 점은 /etc/adduser.conf,그것에 설정 DIR_MODE=0700 새 사용자를 추가 하도록 umask설정 하면 결과는 다음 파일을 제외한 새 사용자의 홈 디렉터리에 있는 모든 파일에 대한 권한이 됩니다 . 위의 세 파일에는 모두 내가 예상했던 것과는 달리 권한이 부여되었습니다 ..bashrc0077useradd600.bash_logout .bashrc .profile644600

이 세 개의 파일을 저장한 이유는 무엇입니까? 600수동으로 파일을 만드는 것처럼 이러한 파일을 만들면 chmod -R 600운영 체제를 사용할 수 없게 됩니까? 와 비교하여 이러한 권한을 가진 파일에 다른 결과가 있습니까 644?

지금까지는 모든 것이 괜찮아 보이지만 sudo chmod -R 600 /home/undoxed && sudo chmod -R u+X /home/undoxed 오늘의 달리기 이후 아직 다시 시작하지 않았습니다. 다시 시작하고 싶습니다.

답변1

TL,DR: .bash*600이 될 수도 있지만 chmod -R 600매우 위험합니다.

자신만 액세스할 수 있도록 홈 디렉터리를 설정할 수 있습니다.

chmod 700 ~

재귀가 필요하지 않습니다. 파일이 있는 디렉토리에 액세스하지 않고 파일에 액세스하는 것은 불가능합니다. 디렉토리의 경우 이는 상위 디렉토리에 액세스하지 않고는 디렉토리에 액세스할 수 없음을 의미합니다. 따라서 권한 없이 디렉터리에 액세스할 수 없게 하면 x해당 디렉터리 아래의 모든 항목에 액세스할 수 없게 됩니다.

(포함된 디렉토리에 액세스할 필요를 우회하는 방법이 있습니다. 즉, 이미 액세스 권한이 있습니다. 프로세스에 이미 파일이 열려 있으면 일부 변경으로 인해 프로세스가 해당 파일을 열 수 없더라도 파일은 열린 상태로 유지됩니다." open file" here "에는 디렉토리를 프로세스의 작업 디렉토리로 만드는 것이 포함됩니다(예: 권한 변경, 다른 디렉토리로 이동 또는 권한을 낮추는 프로세스).

어떤 경우에는 홈 디렉토리의 특정 부분을 다른 사용자나 시스템 서비스가 액세스할 수 있도록 해야 할 수도 있습니다(예: .plan또는 에서 액세스할 수 있음 fingerd). 대부분의 사람들이 공공 서비스를 실행하지 않는 개인용 컴퓨터를 사용하는 요즘에는 이러한 현상이 덜 일반적입니다. 이 경우:~/public_htmlhttpd

  • 홈 디렉토리를 모든 사람이 액세스할 수 있도록 하되, 본인만 읽고 쓸 수 있도록 하십시오.chmod 711 ~
  • 홈 디렉터리의 콘텐츠를 비공개로 설정하세요. ( chmod go= ~/* ~/.[!.]* ~/..?*숨겨지지 않은 파일, .및를 제외한 숨김 파일, ..*자신 ..이 아닌 다른 것으로 시작하는 숨김 파일 ..- 이러한 패턴 중 하나가 아무것도 일치하지 않으면 오류를 무시하세요.)
  • 이를 필요로 하는 특정 파일 및 디렉터리에 대한 읽기( ) 액세스 r와 디렉터리에 대한 실행/트래버스( ) 액세스를 허용합니다.x

이러한 권한을 통해 로컬 사용자는 특정 이름의 파일이 존재하는지 여부를 확인할 수 있지만( ls ~jerzy/somefile"권한이 거부됨" 또는 "해당 파일 또는 디렉터리 없음"으로 실패하는 경우) 홈 디렉터리에 있는 파일을 나열하지는 않습니다.

사용하는 프로그램(예: bash)의 구성 파일은 공개될 필요가 없습니다. 액세스하는 데 필요한 유일한 프로세스는 귀하의 계정에서 실행됩니다. 원한다면 괜찮습니다 chmod 600 ~/.bash*. 어쨌든 홈 디렉토리에 본인만 액세스할 수 있다면 별 차이는 없지만 나쁠 것은 없습니다.

umask를 077로 설정하면 모든 새 파일은 본인만 액세스할 수 있습니다.


뛰지 마세요chmod -R 600. 루트로서 이렇게 하면 시스템을 복구하기가 어려워지고 재설치가 더 쉬워집니다. 권한이 없는 사용자의 경우 복구가 더 쉽지만 여전히 고통스럽습니다.

chmod -R 600디렉토리에서 실행 권한을 제거합니다. 디렉토리의 경우 "실행" 권한( xchmod 의 비트 1 값)은 해당 디렉토리의 파일에 액세스할 수 있음을 의미합니다. "읽기"( r, 4) 권한은 디렉터리의 파일만 나열하도록 허용합니다. 따라서 chmod -R 600 ~귀하를 포함한 모든 사람이 귀하의 홈 디렉토리에 있는 파일에 액세스하는 것을 금지합니다. 그런 다음 chmod -R u+X ~디렉터리의 실행 권한을 복원합니다. 단, 그 동안 시스템이 충돌하지 않는 경우에만 해당됩니다.

또한 이 시퀀스는 모든 일반 파일에 대한 실행 권한을 제거합니다. 일부 일반 파일에는 실행 권한이 필요합니다. 여기에는 홈 디렉토리에 설치했을 수 있는 독립 실행형 소프트웨어는 물론 개인 스크립트나 기타 프로그램도 포함됩니다. 여기에는 일반적으로 직접 실행 가능한 것으로 간주되지 않는 파일도 포함될 수 있습니다.이전 버전의 Ubuntu에서는 실행 권한을 사용하여 특정 유형의 파일을 신뢰할 수 있음을 나타냈습니다., .desktop파일 포함(비록새 버전에서는 더 이상 이 메커니즘을 사용하지 않습니다.).

이 시퀀스는 또한 모든 파일을 쓰기 가능하게 만듭니다. 실수로 덮어쓰거나 삭제하는 것을 방지하려는 중요한 파일과 같은 특정 파일을 읽기 전용으로 설정하는 것이 유용할 수 있습니다. 많은 버전 제어 프로그램은 특정 파일을 읽기 전용으로 만듭니다. 그 이유는 해당 파일이 일반적으로 변경되지 않는 내부 상태 파일이기 때문입니다. 이는 사용자가 해당 파일을 직접 변경해서는 안 됨을 나타내거나 파일이 잠겨 있음을 나타냅니다. 그러나 이것은 중요하지 않습니다.

(그런데 파일이 여러 개 있습니다.~ 해야 하다SSH 키와 같은 비공개입니다. 홈 디렉토리의 재귀 chmod다음에 추가비사용자 권한은 이를 깨뜨릴 수 있으며, 특히 SSH를 통해 계정에 로그인하지 못하게 할 수 있습니다. )

모든 파일을 개별적으로 비공개로 설정하려면 자신에게 적용되는 권한을 변경하지 마세요.

chmod -R go= ~

관련 정보