기본적으로 다음을 수행하는 명령을 찾고 있습니다. 사용자가 파일/디렉터리(ACL 포함)에 대해 어떤 권한을 가지고 있는지 확인하고 이를 반환합니다.
예를 들어 다음 디렉터리가 있다고 가정합니다.
-rw-r--r-- 1 user1 group1 [snip] file1
-rw-rw-r-- 1 user2 group1 [snip] file2
drwxrwx--- 1 user2 group2 [snip] dir1
그런 다음 명령과 출력은 다음과 같아야 합니다(user1이 group1의 구성원인 경우).
rights user1 file1 => r-- or 4
rights user1 file2 => rw- or 6
rights user1 dir1 => --- or 0
그러한 명령을 사용할 수 있습니까? 아니면 이를 수행할 수 있는 스크립트를 작성하는 데 사용할 수 없는 도구/명령이 있습니까?
답변1
다음 bash 코드에 대해 자세히 설명했습니다.
#!/bin/bash
# Use: $0 user files
user="$1"
shift
sudo -u "$user" bash -c 'for f; do
[[ -r "$f" ]] && printf 'r' || printf '-'
[[ -w "$f" ]] && printf 'w' || printf '-'
[[ -x "$f" ]] && printf 'x' || printf '-'
printf " %s\\n" "$f"
done' _ "$@"
이는 가능한 경우 자동으로 acl을 고려해야 하지만 이를 사용 sudo
(또는 대체 su
) 하는 단점이 있습니다 $user
.