getfacl이 절대 경로 이름에서 /를 제거하는 이유는 무엇입니까?


10

CentOS / Red Hat 6의 ACL에 대해 배우는 중입니다. getfacl절대 경로를 사용하여 실행할 때 출력 중 하나를 얻습니다.

getfacl : 절대 경로 이름에서 선행 '/'제거

왜 이렇게해야합니까? 어떤 상황에서 -p또는 --absolute-names스위치 를 사용해야 합니까?

Wale Soyinka와 Michael Jang의 저의 저서들은 이것에 대한 언급조차하지 않고 매뉴얼 페이지에 실마리가 보이지 않으며이 경고를 직접 다루는 사이트를 찾지 못하는 것 같습니다.


1
Linux에서 ACL 이 시작된 이래로 이와 같습니다 . 이유를 모르겠습니다.
질 'SO-정지 존재 악마'

링크를 찾아 보도록 도와 주셔서 감사합니다. 내 프로그래밍 기술은 현재 약간 기초적인 내용이지만 Gaddis 책으로 C / C ++를 시작할 때 파일을 저장했습니다.
Seananigans

답변:


6

의 맨 페이지에서 getfacl:

-p, --absolute-names
       Do not strip leading slash characters (`/'). The  default  behavior
       is to strip leading slash characters.

-p스위치 를 사용하지 않고 절대 경로를 제공하면 경고 메시지가 나타납니다 .

절대 경로가 getfacl명령에 제공되면 출력이 다릅니다 .

-p스위치 없이 :

$ getfacl /path/foo/bar
getfacl: Removing leading '/' from absolute path names
# file: path/foo/bar
[Output truncated...]

파일 경로의 선행 슬래시는 -p스위치가 사용될 때만 표시 됩니다.

$ getfacl -p /path/foo/bar
# file: /path/foo/bar
[Output truncated...]

-p 추가 처리를 위해 출력을 파이프 할 때 선행 슬래시를 유지하는 데 유용합니다.

상대 경로가 getfacl명령에 제공 될 때 출력은 동일합니다 .

$ getfacl bar
# file: bar
[Output truncated...]

변경 사항 없음:

$ getfacl -p bar
# file: bar
[Output truncated...]

내가 리눅스를 처음 접했을 때 용서하십시오. 그러나 출력을 다른 프로그램으로 파이프하는 경우 어쨌든 스트림을 편집하여 첫 번째 출력의 해당 섹션을 가져와야하므로 매우 불필요한 스위치처럼 보입니다. 장소, 맞습니까? 선행 슬래시를 제거하는 것이 유용한 경우의 예는 무엇입니까? 절대 경로이기 때문에 처음에는 약간 어리석은 것처럼 보입니다.
Seananigans

2
다른 배포판 (예 : FreeBSD)에서는이 스위치가 없습니다. RHEL acl 패키지의 소스 --absolute-names를 보면 출력 문자열 ( "# file :") 만 처리하지만 논리는 배제하지 않는 것 같습니다. 처음에는 보안 기능 일 수 있습니다. 그럼에도 스위치는 존재하지 않습니다 setfacl. 필자의 마지막 가정은 스위치 사용 이 쓸모가 tar없지만 저자가 동작 을 시뮬레이션하고 싶다는 것 입니다. -pgetfacl
Ivan Chau

9
그러나 그 이유에 대한 답은 아닙니다. 슬래시가 기본적으로 제거되는 이유는 무엇입니까?
Segfault
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.