it-swarm-ko.tech

'ls -al'을 실행 한 후 + 또는 @ 표시

Mac OS X에서 'ls -al'을 실행하면 이와 같은 결과가 나타납니다.

 drwxrwxrwx + 4 smcho 직원 136 May 5 09:18 공개 
 drwxr-xr-x + 6 smcho 직원 204 2010 년 2 월 1 일 사이트 
 drwxrwxrwx 9 smcho 직원 306 2010 년 2 월 2 일 백업 
 drwxr-xr-x @ 36 smcho 직원 1224 9 월 4 일 22:51 bin 
  • 첫 번째 열의 끝에서 + 또는 @는 무엇입니까?
  • 이것은 Mac에 고유합니까, 아니면 UNIX에서 일반적입니까?

추가

Michael Mrozek의 답변 후 'ls -ale'을 실행하여 다음을 얻었습니다.

 drwx ------ + 66 smcho 직원 2244 Aug 30 13:40 라이브러리 
 0 : 그룹 : com.Apple.sharepoint.group.3 검색 허용 
 1 : 그룹 : 모두 삭제 거부 
 drwxr-xr-x 3 smcho 직원 102 9 월 4 일 15:01 Mail 
 drwx ------ + 13 smcho 직원 442 8 월 28 일 17:55 영화 
 0 : 그룹 : 모두 삭제 거부 
 drwx ------ + 6 smcho 직원 204 7 월 9 일 09:37 음악 
 0 : 그룹 : 모두 삭제 거부 
 drwx ------ + 11 smcho 직원 374 8 월 28 일 16:55 사진 
 0 : 그룹 : 모두 거부 삭제 
 drwxr-xr-x 3 smcho 직원 102 3 월 18 일 15:43 프로젝트 
 drwxrwxrwx + 4 smcho 직원 136 May 5 09:18 공개 
 0 : 그룹 : 모두 삭제 거부 
 drwxr-xr-x + 6 smcho 직원 204 2010 년 2 월 1 일 사이트 
 0 : 그룹 : 모두 삭제 거부 

첨부 된 메시지의 의미는 무엇입니까? 일부 파일에 대해 왜 필요한가요? 나는 그들을 위해 특별한 일을 기억하지 않습니다.

30
prosseek

@ 접미사는 Mac OS에 고유하며 이 질문 으로 덮여 있습니다. 파일에 확장 속성 이 있음을 의미합니다. xattr 명령 줄 유틸리티를 사용하여보고 수정할 수 있습니다.

xattr --list filename
xattr --set propname propvalue filename
xattr --delete propname filename

+ 접미어는 파일에 액세스 제어 목록이 있으며 ACL을 지원하는 모든 * nix에서 일반적입니다. ls-e 플래그를 지정하면 파일 다음에 연관된 ACL이 표시되고 chmod을 사용하여 수정할 수 있습니다. 이것의 대부분은 chmod 맨 페이지에서 온 것입니다 :

chmod +a "type:name flag permission,..."로 ACL을 추가하고 chmod -a로 ACL을 제거합니다. chmod에 대한 인수는 상당히 복잡합니다.

  • type user 또는 group이며, name이 사용자 이름을 참조하는지 또는 그룹 이름. name가 분명한 경우 유형을 생략 할 수 있습니다
  • name 은 ACL이 적용되는 사용자 이름 또는 그룹입니다.
  • flag 는이 ACL 항목이 권한을 부여하는 경우 allow이고 권한을 거부하는 경우 deny입니다.
  • permission 은 수정중인 실제 권한입니다. 쉼표로 구분하여 원하는대로 나열 할 수 있습니다
    • delete -파일/디렉토리 삭제 허용
    • readattr -기본 속성 읽기
    • writeattr -기본 속성 쓰기
    • readextattr -확장 속성 읽기 (위에서 xattr 사용)
    • writeextattr -확장 된 속성 쓰기
    • readsecurity -ACL 정보 읽기
    • writesecurity -ACL 정보 쓰기
    • chown -소유자 변경
    • 디렉토리 별 권한
      • list -디렉토리에 파일/폴더 표시
      • search -이름으로 디렉토리에서 파일/폴더 찾기
      • add_file -디렉토리에 새 파일을 만듭니다
      • add_subdirectory -디렉토리에 새 디렉토리를 만듭니다
      • delete_child -디렉토리에서 파일/디렉토리 제거
      • 상속 통제
        • file_inherit -디렉토리의 ACL이 파일로 상속됩니다.
        • directory_inherit -디렉토리의 ACL은 하위 디렉토리에 상속됩니다.
        • limit_inherit -이 디렉토리에 상속 된 ACL이 하위 디렉토리에 상속되지 않도록합니다.
        • only_inherit -새로 만든 모든 항목에 상속되지만 무시
    • 파일 별 권한
      • read -읽을 파일을 엽니 다
      • write -쓰기 위해 파일을 엽니 다
      • append -추가 할 파일 열기
      • execute -파일을 실행

특정 예에서 대부분의 ACL 항목은 group:everyone deny delete입니다. 즉, everyone 그룹의 모든 사용자 (자연스럽게 모든 사람)는 폴더를 삭제할 수있는 권한이 거부됩니다. 필자는 그것에 대한 문서를 찾을 수 없지만 필수 루트 폴더를 제거하지 못하게하는 기본 ACL이라고 생각합니다. 그렇지 않으면 누군가가이를 수정하십시오. 다른 항목은 group:com.Apple.sharepoint.group.3 allow search이며, 디렉토리 서비스는 /Library 폴더에서 이름으로 파일을 검색 할 수 있습니다.

40
Michael Mrozek