나는 나를 위해 몇 가지 정리 작업을 수행하는 bash 스크립트를 작성 중입니다(현재 디렉터리에 있는 모든 Rails 프로젝트의 로그 파일 지우기). 실행 가능하도록 만들고 있지만 "그룹" 및 "기타" 파일 권한 설정에 대한 모범 사례가 무엇인지 잘 모르겠습니다. 권한을 700으로 설정해야 합니까(소유자만 rwx 가능)?
내가 혼란스러워하는 부분은 파일이 한 시스템에서 다른 시스템으로 복사될 때 "소유권"이 어떻게 결정되는지입니다. 내 UID가 509이고 my_file.sh
파일 권한을 700으로 설정한 경우 UID를 파일에 저장하여 파일 소유권이 결정된다고 추측합니다. 내가 공유 my_file.sh
하고 누군가 자신의 시스템에 다운로드하면 UID가 자신의 UID와 일치하도록 변경됩니까? 파일 전송 방식(scp, git, http 등)에 따라 달라지나요?
답변1
"그룹" 및 "기타" 파일 권한을 설정하는 가장 좋은 방법이 무엇인지 잘 모르겠습니다.
일반적인 방법은 755이므로 그룹 및 기타 그룹에는 읽기 실행 권한이 있습니다. (eg)의 거의 모든 것이 /usr/bin
이런 식으로 설정됩니다.
my_file.sh를 공유하고 누군가가 이를 자신의 시스템에 다운로드하면 UID가 자신의 것과 일치하도록 변경됩니까? 파일 전송 방식(scp, git, http 등)에 따라 달라지나요?
거의 확실하게 UID로 설정되어 있지만 원래 값을 유지하는 방법이 있습니다. 예를 들어 tar
파일을 연 다음 어딘가에서 루트로 열면 원래 숫자 UID를 얻게 됩니다.
그러나 이는 특정 UID가 있는 위치에 파일을 배포하려는 특별한 이유가 없는 한 일반적으로 의미가 없습니다. 스크립트를 읽고 수정하는 능력이 문제라면 어떤 UID나 방법을 사용하더라도 이를 막을 수 있는 방법은 없습니다. 루트 액세스 권한이 있는 다른 시스템으로 파일을 전송하는 사람은 해당 파일로 무엇이든 할 수 있습니다. 그러나 원본 파일에 대한 쓰기 권한이 없으면 원본 파일을 바꾸거나 수정할 수 없습니다.
로컬 시스템에서는 읽기 실행 권한이 있는 파일을 복사할 수 있으며(읽을 수 있기 때문에) 복사본에는 복사본을 만든 사용자의 UID가 포함됩니다. 파일을 실행 가능하게 만들 수 있지만 읽을 수 없도록 만들 수는 있지만 파일이 실행 가능해야 하는 것은 아닙니다.그리고실행을 위해 읽을 수 있습니다. 즉, 모든 사람이 스크립트를 사용할 수 있도록 하려면 다음이 필요합니다.최소한으로world에는 이에 대한 읽기 및 실행 권한이 있습니다.