본문 바로가기
개발/정리

[Linux] 사용자 관리와 파일 속성

by parkkingcar 2023. 10. 19.

Rocky linux 9 기준

 



사용자와 그룹
리눅스는 다중 사용자 시스템으로 아래 명령을 통해 사용자가 담긴 파일을 볼 수 있다

$ vi /etc/passwd


root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
.....

각 행의 의미는 다음과 같다

사용자:비밀번호:사용자ID:소속된그룹ID:전체이름:홈 디렉토리:기본쉘

새로운 사용자를 추가하려면 아래 명령을 사용한다
$ useradd newuser 사용자생성
$ useradd -u 1111 -g mygroup -d /newhome -s /bin/csh newuser newuser 사용자를 생성하면서 사용자ID = 1111, 사용자그룸 = mygroup, 홈 디렉토리 = /newhome, 기본셸 = /bin/csh 로 지정 


newuser의 비밀번호를 지정하거나 변경
$ passwd newuser

newuser의 속성을 변경
$ usermod -g root newuser

사용자삭제
$ userdel - newuser

사용자 그룹 표시
$ group newuser

새로운 그룹 생성 후 ID지정
$ groupadd -g 2222 newgroup

그룹 속성 변경
$ groupmod -n mygroup newgro up

그룹 삭제
$ groupdel newgroup


- 파일과 디렉토리의 소유와 허가권

$ ls -l 을 통해 파일의 정보를 확인한다

합계 4
-rw-------. 1 root root 939 10월 17 17:38 anaconda-ks.cfg
drwxr-xr-x. 2 root root   6 10월 17 17:45 공개
drwxr-xr-x. 2 root root   6 10월 17 17:45 다운로드
drwxr-xr-x. 2 root root   6 10월 17 17:45 문서
drwxr-xr-x. 2 root root   6 10월 17 17:45 바탕화면
drwxr-xr-x. 2 root root   6 10월 17 17:45 비디오
drwxr-xr-x. 2 root root   6 10월 17 17:45 사진
drwxr-xr-x. 2 root root   6 10월 17 17:45 서식
drwxr-xr-x. 2 root root   6 10월 17 17:45 음악

각 순서대로 다음을 의미
d : 파일 유형
rwxr-xr-x : 파일 허가권
2 : 링크 수
root : 파일 소유자 이름
root : 파일 소유그룹
6 : 파일크기
10월 17 17:45 : 마지막 변경 날짜/시간
공개 : 파일이름

파일 허가권을 파일을 읽고, 쓰고, 실행할 수 있는 권한을 나타낸다. 9개의 문자로 구성되어 있으며
rwx, r-x, r-x 이렇게 3개씩 끊어 읽는다.
r은 읽기, w는 쓰기, x는 실행 권한이다.
첫번째 rwx는 소유자의 파일 접근 권한
두번째 r-x는 그룹의 파일 접근 권한
세번째 r-x는 그 외 사용자의 파일 접근 권한

또한 파일의 허가권을 아래와 같이 숫자로 표현할 수 있다
r w x
1 1 1
r - x
1 0 1
r - x
1 0 1

이렇게 이진수로 표현하면 7이라는 숫자는 2진수 111이므로 rwx로 표현할 수 있고,  5라는 숫자는 2진수 101이므로 r-x로 표현할 수 있다. 위 파일의 허가권을 순서대로 rwxr-xr-x 는  755로 볼 수 있다


파일 허가권을 변경하는 명령은 chmod이므로 아래와 같이 사용합니다

test.txt 라는 파일이 있을떄
$ chmod 777 test.txt 
위 명령은 test.txt 파일에 대해 소유자, 소유자가 속한 그룹, 그외 모든 사용자의 읽기, 쓰기 ,실행 권한을 부여합니다.

이후 ls -l 를 하면 아래와 같이 권한이 부여됨
-rwxrwxrwx    1 root root    0 10월 19 09:42 test.txt



7 - 읽기, 쓰기 ,실행 
6 - 읽기, 쓰기
5 - 읽기 ,실행
4 - 읽기
3 - 쓰기 ,실행 
2 - 쓰기
1 - 실행


 

오류

(NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/home/work test.txt ')을(를) 쓸 수 없음

 

해결방법


1. 아래 명령을 통해 test.txt파일의 소유권을 현재 사용자(your_username)로 변경
$ chown your_username:your_username test.txt

 

2. 아래 명령을 통해 test.txt파일 쓰기권한 부여

$ chmod +w test.txt

댓글