1. 리눅스에서 파일, 디렉토리의 권한을 알기 위해서는 rwx 에 대해 알아야 합니다.
( 파일 권한 숫자 )
파일 권한을 구분하는 경우 크게 3가지로 분류할 수 있습니다.
읽기(r) | Reading | 4 |
쓰기(w) | Writing | 2 |
실행(x) | Executing | 1 |
이 숫자들은 8진수로 바꿔서 해석을 할 수 있다.
2. 그런데 rw, rwx 등 으로 읽지 않고 그냥 숫자로 보고 싶습니다.
간단하게 아래와 같이 입력합니다.
# ls -al /etc/passwd | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
644 -rw-r--r--. 1 root root 3850 Aug 25 10:02 /etc/passwd
#ls -al /etc/group | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
644 -rw-r--r--. 1 root root 1616 Aug 25 10:02 /etc/group
# ls -al /etc/shadow | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
----------. 1 root root 7811 Aug 31 10:31 /etc/shadow
3. 디렉토리도 동일하게 하면 됩니다.
# ls -al /var/log | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
total 904764
755 drwxr-xr-x. 12 root root 4096 Aug 27 17:11 .
755 drwxr-xr-x. 20 root root 4096 Feb 17 2023 ..
755 drwxr-xr-x. 2 root root 4096 Feb 17 2023 anaconda
700 drwx------. 2 root root 99 Aug 31 12:15 audit
600 -rw-------. 1 root root 238166823 Aug 31 13:55 boot.log
600 -rw-------. 1 root utmp 134400 Aug 31 13:35 btmp
600 -rw-------. 1 root utmp 152832 Jul 31 18:07 btmp-20230801
750 drwxr-x---. 2 chrony chrony 6 Nov 15 2022 chrony
600 -rw-------. 1 root root 34796 Aug 31 13:01 cron
600 -rw-------. 1 root root 55786 Aug 6 03:23 cron-20230806
600 -rw-------. 1 root root 55722 Aug 13 03:10 cron-20230813
600 -rw-------. 1 root root 56049 Aug 20 03:30 cron-20230820
600 -rw-------. 1 root root 55431 Aug 27 03:01 cron-20230827
644 -rw-r--r--. 1 root root 523300 Aug 31 12:52 dnf.librepo.log
644 -rw-r--r--. 1 root root 1048456 Jul 10 17:20 dnf.librepo.log.1
644 -rw-r--r--. 1 root root 1048393 May 2 15:08 dnf.librepo.log.2
644 -rw-r--r--. 1 root root 1048487 Apr 11 15:01 dnf.librepo.log.3
644 -rw-r--r--. 1 root root 1048374 Mar 21 23:02 dnf.librepo.log.4
644 -rw-r--r--. 1 root root 143795 Aug 31 12:52 dnf.log
644 -rw-r--r--. 1 root root 1048577 Aug 27 17:11 dnf.log.1
644 -rw-r--r--. 1 root root 1048549 Jul 29 21:22 dnf.log.2
644 -rw-r--r--. 1 root root 1048539 Jun 30 20:27 dnf.log.3
644 -rw-r--r--. 1 root root 1048235 Jun 2 03:53 dnf.log.4
644 -rw-r--r--. 1 root root 199432 Aug 31 12:52 dnf.rpm.log
640 -rw-r-----. 1 root root 558 Aug 11 13:30 firewalld
640 -rw-r-----. 1 root root 3112 May 3 07:34 firewalld-20230503
644 -rw-r--r--. 1 root root 8415 Jun 18 00:46 kdump.log
664 -rw-rw-r--. 1 root utmp 314192 Aug 31 13:43 lastlog
...
끝
'리눅스와 쉘' 카테고리의 다른 글
임의 사용자가 방화벽 (firewalld) 중지 못하도록 제어 방법 (0) | 2023.09.06 |
---|---|
시스템에서 실행 중 서비스의 설치 패키지(rpm) 확인 (0) | 2023.09.05 |
tar 압축시 특정 디렉토리 제외하고 압축하기 (0) | 2023.06.29 |
cron 에 작업 등록 하면서 임의 시간에 실행 하기 (0) | 2023.06.24 |
RockyLinux 8에 python 설치 & virtualenv 구성방법 (0) | 2023.06.13 |