티스토리 뷰

CentOS 강좌 PART 1. 5 사용자 권한


명령어 요약

사용자 그룹 관련 명령어

groups "username" 사용자계정이 포함된 그룹 출력
groupadd "groupname" 그룹추가
gpasswd "groupname" 그룹 패스워드 생성
gpasswd -A "username" "groupname" 특정 사용자 계정을 그룹관리자로 지정.
tail -n 5 /etc/group 생성된 그룹 확인
tail -n 5 /etc/gshadow 생성된 그룹 확인
gpasswd -a "username" "groupname" 특정사용자 계정을 특정그룹에 포함.
gpasswd -d "username" "groupname" 특정사용자 계정을 특정그룹에서 제외.
groupdel "groupname" 그룹삭제

파일 권한,소유권 관련 명령어

ls -al 파일 정보에 대한 분석
chmod 파일, 디렉토리 권한 변경
chown 파일, 디렉토리 소유권 변경

사용자 계정 관련 명령어

useradd -m 사용자계정 추가
passwd "username" 비밀번호 생성
tail -n 5 /etc/passwd 생성된 사용자 유저 확인
tail -n 5 /etc/shadow 생성된 사용자 유저 확인
adduser "username" 사용자 계정 추가
userdel -r "username" 사용자 계정 삭제
adduser test2 -g user2 새로운 계정을 생성하고, 존재하는 그룹에 포함 시킴


[파일 정보 및 권한에 대한 분석] 

파일에 대한 정보를 출력해 주는 "ls" 명령의 옵션 "-ㅣ"은  파일들에 대한 접근권한, 링크, 소유자, 소유그룹, 파일 크기, 최종 변경한 날짜와 시간, 파일 이름등 다양한 정보를 출력한다.

특히 접근권한, 소유자, 소유그룹 등은 사용자의 권한을 정의하는 데 매우 중요한 정보들이다.

[whchoi@CentOS153 cp_test]$ ls -al
total 12
drwxrwxr-x.  2 whchoi whchoi   93 Mar  6 15:38 .
drwx------. 17 whchoi whchoi 4096 Mar  6 19:26 ..
-rw-rw-r--.  1 whchoi whchoi   11 Mar  6 15:38 backup1.txt
-rw-rw-r--.  1 whchoi whchoi   11 Mar  6 15:38 test1.txt
-rw-rw-r--.  1 whchoi whchoi    0 Mar  6 15:37 test2.txt
-rw-rw-r--.  1 whchoi whchoi    0 Mar  6 15:37 test3.txt
-rw-rw-r--.  1 whchoi whchoi    0 Mar  6 15:37 test4.txt

-rw-rw-r-- : 접근권한을 나타낸다.
# 1 : 링크를 의미한다.
# whchoi : 파일 소유자를 의미한다.
# whchoi : 파일 소유그룹을 의미한다.
# 11 : 파일 크기를 나타낸다.
# Mar 6 15:38 : 최종변경한 날짜와 시간을 의미한다.
# test1.txt : 파일이름을 의미한다.

특히 접근 권한은 아래와 같은 정보를 담고 있다.

d rwx rwx r-x
d - 파일 종류 ( "d"는 디렉토리를 의미하며, "-"는 일반 파일을 의미한다.)
rwx - 파일 소유자 권한.
rwx - 파일 소유그룹 권한.
r-x - 다른 모든 사용자.
("r"은 read 권한을 , "w"는 write 권한을 , "x"는 excute 권한을 "-" 권한이 없음을 의미한다.)

특히 접근 권한은 아래와 같은 정보를 담고 있다. 이러한 접근권한은 실제 2진수로 구성이 되어 있다.
아래는 권한 rwx rwx rwx , 10진수 777로 구성될 때의 예를 표현한 것이다.

User
Group
Others
r (read)
w (write)
e (excute)
r (read)
w (write)
e (excute)
r (read)
w (write)
e (excute)
1
1
1
1
1
1
1
1
1
10 진수 : 7
10진수 : 7
10 진수 : 7


[사용자 관리를 위한 방법]

centos에서는 아래와 같이 명령어 기반으로 사용자계정을 추가하거나 삭제가 가능하다.
새로운 계정의 추가 방법에 대해서 살펴본다.

[whchoi@CentOS153 ~]$ sudo useradd -m user1
# user1 이라는 새로운 사용자 계정을 추가. "-m" 옵션을 적용하면 자동으로 home dir을 생성
[whchoi@CentOS153 ~]$ tail -n 5 /etc/passwd
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
whchoi:x:1000:1000:whchoi:/home/whchoi:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
# passwd 파일에 user1이 등록되었는지 확인.

[whchoi@CentOS153 ~]$ ls -al /home/
total 4
drwxr-xr-x.  4 root   root     33 Mar  6 21:24 .
dr-xr-xr-x. 17 root   root    224 Mar  5 04:02 ..
drwx------.  2 user1  user1    62 Mar  6 21:24 user1
drwx------. 17 whchoi whchoi 4096 Mar  6 19:26 whchoi
# user1 의 홈디렉토리가 정상적으로 등록된 것을 확인 할 수 있다.

[whchoi@CentOS153 ~]$ ls -al /home/user1/
ls: cannot open directory /home/user1/: Permission denied
# whchoi 계정은 권한 문제로 인해 user1 계정을 조회할 수 없다.

[whchoi@CentOS153 ~]$ sudo ls -al /home/user1/
total 12
drwx------. 2 user1 user1  62 Mar  6 21:24 .
drwxr-xr-x. 4 root  root   33 Mar  6 21:24 ..
-rw-r--r--. 1 user1 user1  18 Oct 31 02:07 .bash_logout
-rw-r--r--. 1 user1 user1 193 Oct 31 02:07 .bash_profile
-rw-r--r--. 1 user1 user1 231 Oct 31 02:07 .bashrc
# root 관리자 계정을 통해서 조회가 가능.

[whchoi@CentOS153 ~]$ sudo adduser user2
# useradd 와 같은 기능을 하지만 옵션이 필요없이 홈디렉토리를 자동 생성해 준다.

[whchoi@CentOS153 ~]$ tail -n 5 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
whchoi:x:1000:1000:whchoi:/home/whchoi:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
# user2가 정상적으로 계정이 생성된 것을 확인할 수 있다.

[whchoi@CentOS153 ~]$ ls -al /home/
total 4
drwxr-xr-x.  5 root   root     46 Mar  6 23:48 .
dr-xr-xr-x. 17 root   root    224 Mar  5 04:02 ..
drwx------.  2 user1  user1    62 Mar  6 21:24 user1
drwx------.  2 user2  user2    62 Mar  6 23:48 user2
drwx------. 17 whchoi whchoi 4096 Mar  6 19:26 whchoi

생성된 사용자 계정을 삭제하는 방법을 살펴 본다.

[whchoi@CentOS153 ~]$ sudo userdel -r user1
# 기존 사용자 계정을 삭제한다. "-r" 옵션은 사용자계정의 홈디렉토리를 자동 삭제해 준다.

[whchoi@CentOS153 ~]$ tail -n 5 /etc/passwd
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
whchoi:x:1000:1000:whchoi:/home/whchoi:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
# user2가 정상적으로 계정이 삭제된 것을 확인할 수 있다.

[whchoi@CentOS153 ~]$ ls -al /home/        
total 4
drwxr-xr-x.  4 root   root     33 Mar  6 23:51 .
dr-xr-xr-x. 17 root   root    224 Mar  5 04:02 ..
drwx------.  2 user2  user2    62 Mar  6 23:48 user2
drwx------. 17 whchoi whchoi 4096 Mar  6 19:26 whchoi
# 정상적으로 디렉토리가 삭제된 것을 확인할 수 있다.

[파일 권한,소유권 변경]

사용자 계정과 파일들의 권한과 소유권에 따라 읽기, 쓰기, 실행의 권한이 모두 다르므로, 파일이나 디렉토리 속성을 살펴보는 것이 매우 중요하다.

[root@CentOS153 home]# ls -al
total 4
drwxr-xr-x.  5 root   root     46 Mar  6 23:57 .
dr-xr-xr-x. 17 root   root    224 Mar  5 04:02 ..
drwx------.  2 user1  user1    62 Mar  6 23:57 user1
drwx------.  2 user2  user2    62 Mar  6 23:48 user2
drwx------. 17 whchoi whchoi 4096 Mar  6 19:26 whchoi
[root@CentOS153 home]# chown user1:whchoi /home/user1/
# user1 디렉토리의 Group을 user1 에서 whchoi로 변경한다.

[root@CentOS153 home]# ls -al
total 4
drwxr-xr-x.  5 root   root     46 Mar  6 23:57 .
dr-xr-xr-x. 17 root   root    224 Mar  5 04:02 ..
drwx------.  2 user1  whchoi   62 Mar  6 23:57 user1
drwx------.  2 user2  user2    62 Mar  6 23:48 user2
drwx------. 17 whchoi whchoi 4096 Mar  6 19:26 whchoi
# user1 directory의 Group이 정상적으로 whchoi Group으로 변경된 것을 확인.
# 하지만 여전히 user1은 User외에는 Group과 Others에 Read, Write, Excute 권한이 없음.

[root@CentOS153 home]# chmod 750 /home/user1
# chmod 권한 변경을 통해 user1 directory의 whchoi Group에 속한 사용자들에게 Read와 Excute 권한을 부여한다.

[root@CentOS153 home]# ls -al
total 4
drwxr-xr-x.  5 root   root     46 Mar  6 23:57 .
dr-xr-xr-x. 17 root   root    224 Mar  5 04:02 ..
drwxr-x---.  2 user1  whchoi   62 Mar  6 23:57 user1
drwx------.  2 user2  user2    62 Mar  6 23:48 user2
drwx------. 17 whchoi whchoi 4096 Mar  6 19:26 whchoi
# user1의 디렉토리 권한이 whchoi Group에게도 Read, Excute 가 부여된 것을 확인.

[whchoi@CentOS153 ~]$ ls -al /home/user2
ls: cannot open directory /home/user2: Permission denied
# user2 directory는 권한이 700 (소유자에게만 모든 권한이 있음) 이므로 ls 는 권한이 없음.

[whchoi@CentOS153 ~]$ ls -al /home/user1
total 12
drwxr-x---. 2 user1 whchoi  62 Mar  6 23:57 .
drwxr-xr-x. 5 root  root    46 Mar  6 23:57 ..
-rw-r--r--. 1 user1 user1   18 Oct 31 02:07 .bash_logout
-rw-r--r--. 1 user1 user1  193 Oct 31 02:07 .bash_profile
-rw-r--r--. 1 user1 user1  231 Oct 31 02:07 .bashrc
# whchoi 사용자는 user1 directory의 ls 명령은 정상적으로 수행됨.

[root@CentOS153 whchoi]# ls -al /home/
total 4
drwxr-xr-x.  5 root   root     46 Mar  6 23:57 .
dr-xr-xr-x. 17 root   root    224 Mar  5 04:02 ..
drwxr-x---.  2 user1  whchoi   62 Mar  6 23:57 user1
drwx------.  2 user2  user2    62 Mar  6 23:48 user2
drwx------. 17 whchoi whchoi 4096 Mar  6 19:26 whchoi
[root@CentOS153 whchoi]# chmod u+rw- /home/user2
# user2 directory는 10진수로 권한 변경이 아닌 rwx로 변경
# user2 directory를 소유자에게도 read, excute 권한만 부여

[root@CentOS153 whchoi]# chmod ugo+rwx /home/user1
# user1 directory에게 모든 사용자에게 권한 부여.

[root@CentOS153 whchoi]# ls -al /home/
total 4
drwxr-xr-x.  5 root   root     46 Mar  6 23:57 .
dr-xr-xr-x. 17 root   root    224 Mar  5 04:02 ..
drwxrwxrwx.  2 user1  whchoi   62 Mar  6 23:57 user1
drw-------.  2 user2  user2    62 Mar  6 23:48 user2
drwx------. 17 whchoi whchoi 4096 Mar  6 19:26 whchoi
# user1 directory에 777 모드 (read,write,excute) 권한이 설정된 것을 확인.

[root@CentOS153 whchoi]# chmod o-rwx /home/user1
# user1 directory에 others 사용자에게 모든 권한을 제거함.
   
[root@CentOS153 whchoi]# ls -al /home/          
total 4
drwxr-xr-x.  5 root   root     46 Mar  6 23:57 .
dr-xr-xr-x. 17 root   root    224 Mar  5 04:02 ..
drwxrwx---.  2 user1  whchoi   62 Mar  6 23:57 user1
drw-------.  2 user2  user2    62 Mar  6 23:48 user2
drwx------. 17 whchoi whchoi 4096 Mar  6 19:26 whchoi
# 정상적으로 user1 directory에서 others를 제외하고, Read,Write,Excute 권한이 부여.

[root@CentOS153 whchoi]# whoami
root
[root@CentOS153 whchoi]# su - user1
[user1@CentOS153 ~]$ touch test1.txt
# user1 으로 login 하여 파일을 만든다.

[root@CentOS153 whchoi]# ls -al /home/user1
total 16
drwxrwx---. 2 user1 whchoi 100 Mar  7 00:13 .
drwxr-xr-x. 5 root  root    46 Mar  6 23:57 ..
-rw-------. 1 user1 user1   52 Mar  7 00:13 .bash_history
-rw-r--r--. 1 user1 user1   18 Oct 31 02:07 .bash_logout
-rw-r--r--. 1 user1 user1  193 Oct 31 02:07 .bash_profile
-rw-r--r--. 1 user1 user1  231 Oct 31 02:07 .bashrc
-rw-rw-r--. 1 user1 user1    0 Mar  7 00:13 test1.txt
# chmod에서 -R 옵션을 주지 않은 상태에서 directory 권한을 변경하면 종속되지 않는다.

[root@CentOS153 whchoi]# chmod -R 750 /home/user1
# chmod "-R" 옵션을 부여하여 directory 밑에 모든 파일에 750 권한을 부여
# others 사용자를 제외한 소유권자에게는 Read,Write,Excute를 부여
# 같은 그룹에게는 Read, Excute 권한을 부여

[root@CentOS153 whchoi]# ls -al /home/user1      
total 16
drwxr-x---. 2 user1 whchoi 100 Mar  7 00:13 .
drwxr-xr-x. 5 root  root    46 Mar  6 23:57 ..
-rwxr-x---. 1 user1 user1   52 Mar  7 00:13 .bash_history
-rwxr-x---. 1 user1 user1   18 Oct 31 02:07 .bash_logout
-rwxr-x---. 1 user1 user1  193 Oct 31 02:07 .bash_profile
-rwxr-x---. 1 user1 user1  231 Oct 31 02:07 .bashrc
-rwxr-x---. 1 user1 user1    0 Mar  7 00:13 test1.txt
# 하위 디렉토리에 정상적으로 구성되었는지 확인.


[사용자 그룹 관리를 위한 방법]

centos에서는 아래와 같이 명령어 기반으로 사용자계정을 추가하거나 삭제가 가능하다.
새로운 계정의 추가 방법에 대해서 살펴본다.

[root@CentOS153 whchoi]# groups user1
user1 : user1
[root@CentOS153 whchoi]# groups user2
user2 : user2
[root@CentOS153 whchoi]# groups whchoi
whchoi : whchoi wheel
# 사용자 계정이 속한 그룹 정보를 출력해 준다.

[root@CentOS153 whchoi]# groupadd test
# 새로운 그룹 생성
[root@CentOS153 whchoi]# gpasswd test
# 그룹 패스워드를 구성.
[root@CentOS153 whchoi]# adduser test -g test
# 신규 사용자를 특정 그룹에 배속

[root@CentOS153 whchoi]# tail -n 5 /etc/group
postfix:x:89:
whchoi:x:1000:whchoi
user2:x:1002:
user1:x:1003:
test:x:1004:
# 신규 그룹 생성 여부 확인

[root@CentOS153 whchoi]# ls -al /home/
total 4
drwxr-xr-x.  6 root   root     58 Mar  7 00:39 .
dr-xr-xr-x. 17 root   root    224 Mar  5 04:02 ..
drwx------.  2 test   test     62 Mar  7 00:39 test
drwxr-x---.  2 user1  whchoi  100 Mar  7 00:13 user1
drw-------.  2 user2  user2    62 Mar  6 23:48 user2
drwx------. 17 whchoi whchoi 4096 Mar  6 19:26 whchoi
# 신규그룹과 사용자 정상적으로 생성되었는지 확인.

[root@CentOS153 whchoi]# adduser test2 -g user2
# 생성된 그룹에 신규 사용자 계정을 포함하고, 자동으로 홈 디렉토리를 생성.




공지사항