Data Base/Linux

231204 Linux 사용자 계정 관리

잇꼬 2023. 12. 4. 18:24
728x90
반응형
SMALL

(root 계정에서 설정 할 것!)

■ 사용자 계정 관리 : 리눅스는 다중 사용자 시스템(multi user system) 

 

# 사용자 계정 정보 
(sql : dba_users)
[root@centos ~]# cat /etc/passwd

user1:x:1000:1000:user1:/home/user1:/bin/bash
사용자명:암호:사용자id:사용자가 소속되 그룹id:전체이름:/home/홈디렉터리:/bin/기본셸

 

[root@centos ~]# cat /etc/group

user1:x:1000:user1
그룹명:암호:그룹id:그룹에 속한 유저

 

 useradd, adduser : 유저 생성하는 명령어

# useradd : 유저 생성(암호X) 
[root@centos ~]# useradd user2
[root@centos ~]# tail -1 /etc/passwd # tail -1 : 마지막으로 설정된 사용자 출력
user2:x:1001:1001::/home/user2:/bin/bash
[root@centos ~]# tail -1 /etc/group
user2:x:1001:
# adduser : 유저생성(암호X)


[root@centos ~]# adduser user3
[root@centos ~]# tail -1 /etc/passwd
user3:x:1002:1002::/home/user3:/bin/bash
[root@centos ~]# tail -1 /etc/group
user3:x:1002:

 

■ passwd : 사용자의 비밀번호를 지정하거나 변경하는 명령어

 

# 암호 설정 및 변경 
(sql : alter user 유저명 indentified by 유저명)

[root@centos ~]# passwd user2
Changing password for user user2.
New password: (1234 → 출력상 보이지 않는다.)
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: (1234 → 출력상 보이지 않는다.)
passwd: all authentication tokens updated successfully.

 

passwd[옵션] 유저명
옵션 

1) passwd -S :  사용자의 패스워드 정보 출력(단, 암호화 되어있다)
[root@centos ~]# passwd -S user3 → 암호 설정 전
user3 LK 2023-12-04 0 99999 7 -1 (Password locked.)
[root@centos ~]# passwd -S user3 → 암호 설정 후
user3 PS 2023-12-04 0 99999 7 -1 (Password set, SHA512 crypt.) (→ SHA512 암호화)

 

2) passwd -l : 사용자의 계정 lock
[root@centos ~]# passwd -l user3
Locking password for user user3.
passwd: Succes

 

3) passwd -u : 사용자의 계정 unlock

[root@centos ~]# passwd -u user3
Unlocking password for user user3.
passwd: Success

 

4) passwd -d : 사용자의 패스워드 제거
[root@centos ~]# passwd -d user3
Removing password for user user3.
passwd: Success

 

# 패스워드 관리하는 파일(암호화가 되어 있어 확인이 어렵다)
[root@centos ~]# cat /etc/shadow

 

■ usermod : 계정 정보를 변경하는 명령어

usermod [옵션] 유저명
옵션
usermod -g 기본그룹명 -G 1차원그룹에 속할 그룹명 유저명
1) usermod -g  : 기본그룹(1차원그룹)


[root@centos ~]# usermod -g oinstall -G dba,oper user5
[root@centos ~]# tail -5 /etc/group
vboxdrmipc:x:980:
oinstall:x:2002: → 1차원그룹
dba:x:2000:user5 → 2차원그룹
oper:x:2001:user5
user5:x:1001:

 

# id, 그룹 확인 
[root@centos ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@centos ~]# id user5
uid=1001(user5) gid=2002(oinstall) groups=2002(oinstall),2000(dba),2001(oper)
유저번호(유저명) 그룹번호(기본그룹명) 속해 있는 그룹

 

2) usermod -G  : 2차원그룹


[root@centos ~]# useradd -g oinstall -G dba,oper oracle
[root@centos ~]# id oracle
uid=1002(oracle) gid=2002(oinstall) groups=2002(oinstall),2000(dba),2001(oper)
[root@centos ~]# tail -1 /etc/passwd
oracle:x:1002:2002::/home/oracle:/bin/bash
[root@centos ~]# tail -5 /etc/group
vboxdrmipc:x:980:
oinstall:x:2002:
dba:x:2000:user5,oracle
oper:x:2001:user5,oracle
user5:x:1001:

 

■ userdel : 계정삭제하는 명령어
[root@centos ~]# userdel user3
userdel: user user3 is currently used by process 4086

 

userdel[옵션] 계정
(sql : drop)
옵션
1) userdel -r : 유저에게 할당된 모든 파일, 디렉터리 모두 삭제
[root@centos ~]# userdel -rf user2 (→ 보편적으로 같이 사용)
userdel: user user2 is currently used by process 3693
2) userdel -f : 유저가 리눅스에 접속을 했더라고 KILL 시킨 후 삭제
[root@centos ~]# userdel -f user3
userdel: user user3 is currently used by process 4086
[root@centos ~]# tail -3 /etc/passwd
user1:x:1000:1000:user1:/home/user1:/bin/bash
vboxadd:x:987:1::/var/run/vboxadd:/bin/false
user2:x:1001:1001::/home/user2:/bin/bash

 

user 관련 명령어

명령어 sql 옵션 해석
useradd adduser
  유저 생성
기본값 : 암호 설정X
passwd  
passwd -S
사용자의 패스워드 정보 출력(단, 암호화 되어있다)

passwd -l 
사용자 계정 lock

passwd -u 
사용자 계정 unlock

passwd -d 
사용자의 패스워드 제거
사용자의 비밀번호 지정 또는 변경
usermod     usermod -g 기본그룹명 -G 1차원그룹에 속할 그룹명 유저명

usermod -G  : 2차원그룹
계정 정보 변경
userdel  
userdel -r
유저에게 할당된 모든 파일, 디렉터리 모두 삭제

userdel -f
유저가 리눅스에 접속을 했더라고 KILL 시킨 후 삭제
계정 삭제

 

■ 그룹(group)
(sql : role)
- 그룹이란 사용자를 하나로 묶어 관리 가능하게 하는 기능으로, 모든 사용자는 그룹에 속하도록 되어 있다.
- 사용자를 그룹을 통하여 관리하면 각 그룹에게 보안 설정, 접근 설정, 권한 등을 주고 일괄적으로 그룹에 속한 사용자에게 적용할 수 있다.

# 현재 사용자 그룹 확인 
[root@centos ~]# groups
root
[user1@centos ~]$ groups
user1
# 그룹 정보 확인
[root@centos ~]# cat /etc/group
...
user1:x:1000:user1
...

 

■ groupadd : 그룹을 생성하는 명령어

# oracle 설치시 필수적으로 필요한 그룹(oinstall, dba)
[root@centos ~]# groupadd oinstall
[root@centos ~]# tail -1 /etc/group
oinstall:x:1001:

# group 명을 지정가능하다
# groupadd -g : 그룹번호, 그룹명 지정
[root@centos ~]# groupadd -g 2000 dba
[root@centos ~]# groupadd -g 2001 oper
[root@centos ~]# tail -3 /etc/group
oinstall:x:1001:
dba:x:2000:
oper:x:2001:

 

■ groupmod : 그룹을 변경하는 명령어
- 그룹명, 그룹번호 변경

옵션 
1) groupmod -n : 그룹명 변경
groupmod -n 새로운그룹명 기존그룹명
[root@centos ~]# groupmod -n dbaoper oper : 'oper' 그룹명(기존 그룹명)으로 'dbaoper'(새로운 그룹명) 로 변경
[root@centos ~]# tail -3 /etc/group
oinstall:x:1001:
dba:x:2000:
dbaoper:x:2001:

2) groupmod -g : 그룹 번호 변경, 그룹id 변경
groupmod -g 변경할그룹id 변경할기준그룹명
[root@centos ~]# groupmod -g 2002 oinstall
[root@centos ~]# tail -3 /etc/group
oinstall:x:2002:
dba:x:2000:
oper:x:2001:

 

■ gpasswd : 특정그룹에 유저 추가 및 제거하는 명령어

gpasswd [옵션] 유저명
옵션
1) gpasswd -a : 특정 그룹에 새로운 유저(멤버) 추가
[root@centos ~]# gpasswd -a user5 oinstall
Adding user user5 to group oinstall
[root@centos ~]# tail -5 /etc/group
vboxdrmipc:x:980:
oinstall:x:2002:user5
dba:x:2000:
oper:x:2001:
user5:x:1001:


2) gpasswd -d : 특정그룹에 기존 유저(멤버) 제거
[root@centos ~]# gpasswd -d user5 oinstall
Removing user user5 from group oinstall
[root@centos ~]# tail -5 /etc/group
vboxdrmipc:x:980:
oinstall:x:2002:
dba:x:2000:
oper:x:2001:
user5:x:1001: → 'user5' 1차원그룹

 

# 유저 생성 시에 1차원, 2차원 그룹 지정
[root@centos ~]# useradd -g oinstall -G dba,oper oracle
[root@centos ~]# id oracle
uid=1002(oracle) gid=2002(oinstall) groups=2002(oinstall),2000(dba),2001(oper)
[root@centos ~]# tail -1 /etc/passwd
oracle:x:1002:2002::/home/oracle:/bin/bash
[root@centos ~]# tail -5 /etc/group
vboxdrmipc:x:980:
oinstall:x:2002:
dba:x:2000:user5,oracle
oper:x:2001:user5,oracle
user5:x:1001:

 

■ groupdel : 그룹 삭제하는 명령어

# groupdel dba, oper : 하나씩 그룹명을 작성해야 한다.
[root@centos ~]# groupdel dba, oper
Usage: groupdel [options] GROUP

Options:
  -h, --help                    display this help message and exit
  -R, --root CHROOT_DIR         directory to chroot into
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -f, --force                   delete group even if it is the primary group of a user

[root@centos ~]# groupdel dba
[root@centos ~]# groupdel oper
[root@centos ~]# id user5
uid=1001(user5) gid=2002(oinstall) groups=2002(oinstall)
[root@centos ~]# id oracle
uid=1002(oracle) gid=2002(oinstall) groups=2002(oinstall)
[root@centos ~]# tail -5 /etc/group
user1:x:1000:user1
vboxsf:x:981:
vboxdrmipc:x:980:
oinstall:x:2002:
user5:x:1001:

 

# 1차원 그룹 삭제시, 주의!
[root@centos ~]# groupdel oinstall
groupdel: cannot remove the primary group of user 'user5' → 유저가 속해있기 때문에 삭제 불가
[root@centos ~]# usermod -g user5 user5
[root@centos ~]# id user5
uid=1001(user5) gid=1001(user5) groups=1001(user5)
[root@centos ~]# groupdel oinstall
groupdel: cannot remove the primary group of user 'oracle' → 유저가 속해있기 때문에 삭제 불가
[root@centos ~]# usermod -g oracle oracle
usermod: group 'oracle' does not exist → 'oracle'이라는 그룹명이 없기 때문에
[root@centos ~]# groupadd oracle
[root@centos ~]# usermod -g oracle oracle
[root@centos ~]# groupdel oinstall

 

group 관련 명령어

명령어 옵션 해석
groupadd groupadd -g
그룹번호, 그룹명 지
그룹을 생성
groupmod groupmod -n : 그룹명 변경

groupmod -g : 그룹 번호 변경, 그룹id 변경
그룹을 변경
gpasswd gpasswd -a : 특정 그룹에 새로운 유저(멤버) 추가

gpasswd -d : 특정그룹에 기존 유저(멤버) 제거
특정그룹에 유저 추가 및 제거
groupdel   그룹 삭제

 

■ 파일의 접근 권한 관리
[user1@centos ~]$ ls -ld test1
drwxrwxr-x. 2 user1 user1 50 Dec  1 18:19 test1

★ 권한의 3가지 종류
1. 읽기(read) 권한 _r
2. 쓰기(write) 권한 _w
3. 실행(execute) 권한 _x : 디렉터리에 cd로 접근 가능, shell script 실행

권한 대표문자 file directory
read(읽기) r 읽기, 복사 디렉터리에서 ls 실행가능
write(쓰기) w 수정 디렉터리에서 file 생성
execute x shell script 실행 디렉터리에서 cd로 접근가능


[user1@centos ~]$ cp /etc/passwd .
[user1@centos ~]$ ls -l passwd
-rw-r--r--. 1 user1 user1 2477 Dec  4 11:51 passwd

-rw-r--r--. 1 user1 user1 2477 Dec  4 11:51 passwd
              rw-              r--             r--
파일소유자권한 그룹의권한 기타사용자권한

옵션

u g o a r w x + -
유저 정보 그룹 정보 기타유저 전체 정보 읽기 쓰기 실행 권한 부여 권한 해제

 

■ chmod : 권한을 수정하는 명령어
(sql :grant,revoke)

#1. 파일소유자의 권한에게 실행 권한 주기
[user1@centos ~]$ ls -l passwd
-rw-r--r--. 1 user1 user1 2477 Dec  4 11:51 passwd
[user1@centos ~]$ chmod u+x passwd
[user1@centos ~]$ ls -l passwd
-rwxr--r--. 1 user1 user1 2477 Dec  4 11:51 passwd

#2. 그룹에게 실행권한 주기
[user1@centos ~]$ chmod g+w passwd
[user1@centos ~]$ ls -l passwd
-rwxrw-r--. 1 user1 user1 2477 Dec  4 11:51 passwd

#3. 기타 유저들에게 쓰기 권한 주기
[user1@centos ~]$ chmod o+w passwd
[user1@centos ~]$ ls -l passwd
-rwxrw-rw-. 1 user1 user1 2477 Dec  4 11:51 passwd

#4. 모든 유저에게 권한 쓰기 권한 회수하기
[user1@centos ~]$ chmod a-w passwd
[user1@centos ~]$ ls -l passwd
-r-xr--r--. 1 user1 user1 2477 Dec  4 11:51 passwd

#5. 모든 유저에게 권한 모든권한 부여하기
[user1@centos ~]$ chmod a+rwx passwd
[user1@centos ~]$ ls -l passwd
-rwxrwxrwx. 1 user1 user1 2477 Dec  4 11:51 passwd

#6. 모든 유저에게 권한 모든권한 회수하기 
[user1@centos ~]$ chmod a-rwx passwd
[user1@centos ~]$ ls -l passwd
----------. 1 user1 user1 2477 Dec  4 11:51 passwd
[user1@centos ~]$ cat passwd
cat: passwd: Permission denied

[user8@centos ~]$ ls -l /home
total 4
drwx------. 19 user1  user1  4096 Dec  4 12:09 user1
drwx------.  5 user8  user8   107 Dec  4 12:10 user8

[root@centos ~]# chmod a+r /home/user1
[root@centos ~]# ls -l /home
total 4
drwxr--r--. 19 user1 user1 4096 Dec  4 12:09 user1
drwx------.  5 user8 user8  128 Dec  4 12:13 user8
[root@centos ~]# su - user8
Last login: Mon Dec  4 12:10:42 KST 2023 on pts/0
[user8@centos ~]$ ls -l /home/user1

...

ls: cannot access /home/user1/test3: Permission denied
ls: cannot access /home/user1/test4: Permission denied
ls: cannot access /home/user1/passwd: Permission denied
total 0

-????????? ? ? ? ?            ? asia
d????????? ? ? ? ?            ? Desktop
d????????? ? ? ? ?            ? Documents
d????????? ? ? ? ?            ? Downloads
d????????? ? ? ? ?            ? Music
-????????? ? ? ? ?            ? output_202312
-????????? ? ? ? ?            ? output_ls
-????????? ? ? ? ?            ? passwd
d????????? ? ? ? ?            ? Pictures
d????????? ? ? ? ?            ? Public
d????????? ? ? ? ?            ? Templates
d????????? ? ? ? ?            ? test1
d????????? ? ? ? ?            ? test2
d????????? ? ? ? ?            ? test3
d????????? ? ? ? ?            ? test4
d????????? ? ? ? ?            ? Videos
-????????? ? ? ? ?            ? wc_output

[user8@centos ~]$ cd /home/user1
-bash: cd: /home/user1: Permission denied

# 권한 유무
[user8@centos ~]$ cd /home/user1
-bash: cd: /home/user1: Permission denied
[user8@centos ~]$ exit
logout
[root@centos ~]# chmod a+x /home/user1 → 모두에게 쓰기 권한 
[root@centos ~]# ls -l /home
total 4
drwxr-xr-x. 19 user1 user1 4096 Dec  4 12:09 user1
drwx------.  5 user8 user8  128 Dec  4 12:13 user8
[root@centos ~]# su - user8
Last login: Mon Dec  4 12:15:58 KST 2023 on pts/0
[user8@centos ~]$ cd /home/user1
[user8@centos user1]$ pwd
/home/user1
[user8@centos user1]$

# 권한 회수
[root@centos ~]# chmod a-rwx /home/user1 → user1의 모든 권한 해
[root@centos ~]# ls -l /home
total 4
d---------. 19 user1 user1 4096 Dec  4 12:09 user1
drwx------.  5 user8 user8  128 Dec  4 12:13 user8
[root@centos ~]# chmod g-rx,o-rx /home/user1 
[root@centos ~]# ls -l /home
total 4
drwx------. 19 user1 user1 4096 Dec  4 12:09 user1
drwx------.  5 user8 user8  128 Dec  4 12:13 user8
[root@centos ~]

# 권한 확인 및 회수
[root@centos ~]# date
Mon Dec  4 13:46:44 KST 2023
[root@centos ~]# ls -l /bin/date
-rwxr-xr-x. 1 root root 62200 Aug 20  2019 /bin/date
[root@centos ~]# chmod o-x /bin/date
[root@centos ~]# ls -l /bin/date
-rwxr-xr--. 1 root root 62200 Aug 20  2019 /bin/date
[root@centos ~]# su - user1
Last login: Mon Dec  4 11:50:41 KST 2023 on pts/0
[user1@centos ~]$ date
-bash: /bin/date: Permission denied

# 권한 확인
[root@centos ~]# chmod o+x /bin/date
[root@centos ~]# ls -l /bin/date
-rwxr-xr-x. 1 root root 62200 Aug 20  2019 /bin/date
[root@centos ~]# su - user1
Last login: Mon Dec  4 13:48:07 KST 2023 on pts/0
'abrt-cli status' timed out
[user1@centos ~]$ date
Mon Dec  4 13:48:53 KST 2023

■ 권한을 설정하는 숫자

0 : 권한을 허용하지 않겠다.
1 : 실행(x), 권한 허용
2 : 쓰기(w), 권한 허용
4 : 읽기(r), 권한 허용

출력 r w x r w x r w x
2진수 4 2 1 4 2 1 4 2 1
10진수 7 7 7

# 유저 권한
[user1@centos ~]$ chmod 000 ls_print
[user1@centos ~]$ ls -l ls_print
----------. 1 user1 user1 2239 Dec  4 13:49 ls_print
[user1@centos ~]$ chmod 777 ls_print
[user1@centos ~]$ ls -l ls_print
-rwxrwxrwx. 1 user1 user1 2239 Dec  4 13:49 ls_print
# 디렉터리 권한 
[user1@centos ~]$ ls -ld new
drwxrwxr-x. 2 user1 user1 6 Dec  4 13:50 new
[user1@centos ~]$ chmod 755 new
[user1@centos ~]$ ls -ld new
drwxr-xr-x. 2 user1 user1 6 Dec  4 13:50 new

# chmod  -R  : 서브 디렉터리들도 다 동일하게 한을 부여
[user1@centos ~]$ chmod -R 755 u01
[user1@centos ~]$ ls -ld u01
drwxr-xr-x. 3 user1 user1 17 Dec  4 14:07 u01
# 권한 확인
[user1@centos u01]$ ls -ld
drwxr-xr-x. 3 user1 user1 17 Dec  4 14:07 .
[user1@centos u01]$ ls -ld u02
drwxr-xr-x. 2 user1 user1 6 Dec  4 14:07 u02

 

■ 기본 접근 권한 
- 리눅스에서는 파일이나 디렉터리를 생성할 때 기본 접근 권한이 자동으로 설정된다

 

<user1 계정>
# 파일 생성 및 권한확인
[user1@centos ~]$ ls -al > ls_print
[user1@centos ~]$ ls -l ls_print
-rw-rw-r--. 1 user1 user1 2239 Dec  4 13:49 ls_print

 

# 디렉터리 생성 및 권한확인
[user1@centos ~]$ mkdir new
[user1@centos ~]$ ls -ld new
drwxrwxr-x. 2 user1 user1 6 Dec  4 13:50 new
[user1@centos ~]$ umask
0002

 

# 마스크 값을 문자로 출력
[user1@centos ~]$ umask -S
u=rwx,g=rwx,o=rx

- 리눅스에서는 기본적으로 파일을 생성하면 실행권한('x')를 갖고 생성하지 못한다

 

일반 파일의 최대 권한 : 최대 권한 666이고 기준으로 잡는다.
rw- rw- rw-
110 110 110 ← 2진수로 변환(666)
000 000 010 ← 마스크값(002)
110 110 100 ← 664

일반 디렉터리의 최대 권한 : 최대 권한 777
rwx rwx rwx
111 111 111 ← 2진수로 변환(777)
000 000 010 ← 마스크값(002)
777 - 002 = 775 ← rwxrwxr-x

 

# 마스크값 변경 
[user1@centos ~]$ umask 002 → 기본값
[user1@centos ~]$ umask -S
u=rwx,g=rwx,o=rx
[user1@centos ~]$ umask 022 → 변경값
[user1@centos ~]$ umask -S
u=rwx,g=rx,o=rx
[user1@centos ~]$ cal > cal_print
[user1@centos ~]$ ls -l cal_print
-rw-r--r--. 1 user1 user1 150 Dec  4 14:28 cal_print

 

# root 권한 
[root@centos ~]# umask
0022

# 파일 권한 확인
[root@centos ~]# date > date_test
[root@centos ~]# ls -l date_test
-rw-r--r--. 1 root root 29 Dec  4 14:33 date_test

# 디렉터리 권한 확인
[root@centos ~]# mkdir u01
[root@centos ~]# ls -ld u01
drwxr-xr-x. 2 root root 6 Dec  4 14:33 u01

[root@centos ~]# cat /etc/bashrc


...
    if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
       umask 002
    else
       umask 022
    fi
...
[root@centos ~]# id -gn
root
[root@centos ~]# id -un
root

# 주의할 것
[root@centos ~]# cal > /home/user1/cal_12
[root@centos ~]# ls -l /home/user1/cal_12
-rw-r--r--. 1 root root 150 Dec  4 17:02 /home/user1/cal_12
[root@centos ~]# su - user1
Last login: Mon Dec  4 16:58:55 +11 2023 on pts/0
[user1@centos ~]$ ls -l cal_12
-rw-r--r--. 1 root root 150 Dec  4 17:02 cal_12
[user1@centos ~]$ cat cal_12
    December 2023
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
[user1@centos ~]$ chmod 666 cal_12
chmod: changing permissions of ‘cal_12’: Operation not permitted

■ chown : 파일이나 디렉터리의 소유자와 소유그룹을 변경하는 명령어
(생성자가 변경해줘야 한다)
1. chown 소유자명:소유그룹 파일(디렉터리)
2. chown -R 소유자명:소유그룹 파일(디렉터리) → 디렉터리 안에 있는 모든 파일과 서브디렉터리에 대해서 변경

[root@centos ~]# ls -l /home/user1/cal_12
-rw-r--r--. 1 root root 150 Dec  4 17:02 /home/user1/cal_12
[root@centos ~]# chown user1:user1 /home/user1/cal_12
[root@centos ~]# ls -l /home/user1/cal_12
-rw-r--r--. 1 user1 user1 150 Dec  4 17:02 /home/user1/cal_12
[root@centos ~]# su - user1
Last login: Mon Dec  4 17:04:27 +11 2023 on pts/0
[user1@centos ~]$ chmod 666 cal_12
[user1@centos ~]$ ls -l cal_12
-rw-rw-rw-. 1 user1 user1 150 Dec  4 17:02 cal_12

# 서브디렉터리 소유자와 소유그룹 변경
[root@centos ~]# ls -lR /home/user1/temp1
/home/user1/temp1:
total 4
-rw-r--r--. 1 root root 150 Dec  4 17:13 cal_12
drwxr-xr-x. 2 root root  21 Dec  4 17:13 temp2

/home/user1/temp1/temp2:
total 4
-rw-r--r--. 1 root root 29 Dec  4 17:13 date_12
[root@centos ~]# chown -R user1:user1 /home/user1/temp1
[root@centos ~]# ls -ld /home/user1/temp1
drwxr-xr-x. 3 user1 user1 33 Dec  4 17:13 /home/user1/temp1
[root@centos ~]# ls -lR /home/user1/temp1
/home/user1/temp1:
total 4
-rw-r--r--. 1 user1 user1 150 Dec  4 17:13 cal_12
drwxr-xr-x. 2 user1 user1  21 Dec  4 17:13 temp2

/home/user1/temp1/temp2:
total 4
-rw-r--r--. 1 user1 user1 29 Dec  4 17:13 date_12

소유자만 변경
[root@centos ~]# chown user1 /home/user1/date_12
[root@centos ~]# ls -l /home/user1/date_12
-rw-r--r--. 1 user1 root 29 Dec  4 17:22 /home/user1/date_12

■ chgrp : 파일이나 디렉터리의 소유그룹만 변경하는 명령어
[root@centos ~]# ls -l /home/user1/date_12
-rw-r--r--. 1 user1 user1 29 Dec  4 17:22 /home/user1/date_12
[root@centos ~]# chgrp root /home/user1/date_12
[root@centos ~]# ls -l /home/user1/date_12
-rw-r--r--. 1 user1 root 29 Dec  4 17:22 /home/user1/date_12

# 디렉터리 안에 있는 파일, 서브디렉터리의 소유 그룹 변경
[root@centos ~]# chgrp -R root /home/user1/temp1
[root@centos ~]# ls -Rl /home/user1/temp1
/home/user1/temp1:
total 4
-rw-r--r--. 1 user1 root 150 Dec  4 17:13 cal_12
drwxr-xr-x. 2 user1 root  21 Dec  4 17:13 temp2

/home/user1/temp1/temp2:
total 4
-rw-r--r--. 1 user1 root 29 Dec  4 17:13 date_12

■  tar : 파일을 압축하고 압축해제하는 명령어
# 압축 할 때
tar -cvf 압축파일명 압축대상파일
[user1@centos ~]$ mkdir test
[user1@centos ~]$ cal > ./test/cal_12
[user1@centos ~]$ date > ./test/date_12
[user1@centos ~]$ date > ./test/date_2023
[user1@centos ~]$ cd test
[user1@centos test]$ ls -l
total 12
-rw-rw-r--. 1 user1 user1 150 Dec  4 18:11 cal_12
-rw-rw-r--. 1 user1 user1  29 Dec  4 18:12 date_12
-rw-rw-r--. 1 user1 user1  29 Dec  4 18:12 date_2023
[user1@centos test]$ tar -cvf all.tar *
cal_12
date_12
date_2023
[user1@centos test]$ ls -l
total 24
-rw-rw-r--. 1 user1 user1 10240 Dec  4 18:13 all.tar
-rw-rw-r--. 1 user1 user1   150 Dec  4 18:11 cal_12
-rw-rw-r--. 1 user1 user1    29 Dec  4 18:12 date_12
-rw-rw-r--. 1 user1 user1    29 Dec  4 18:12 date_2023

 

# 압축 해제
tar -xvf 압축파일명 압축해제할 위치
[user1@centos ~]$ mkdir test2
[user1@centos ~]$ tar -xvf ./test/all.tar -C ./test2

# 압축해지 할 때, 풀릴 위치 지정 안된다면 현 위치에서 압축해지된다.
[user1@centos test]$ tar -xvf all.tar
cal_12
date_12
date_2023
[user1@centos test]$ ls -l
total 24
-rw-rw-r--. 1 user1 user1 10240 Dec  4 18:13 all.tar
-rw-rw-r--. 1 user1 user1   150 Dec  4 18:11 cal_12
-rw-rw-r--. 1 user1 user1    29 Dec  4 18:12 date_12
-rw-rw-r--. 1 user1 user1    29 Dec  4 18:12 date_2023
[user1@centos test]$

옵션

tar -c compress, 여러개의 파일을 하나로 만든다.
tar -v view, 압축되는 과정
tar -f file, 생성될 파일명을 지정
tar -x extract, 묶여있는 파일을 해제
tar -C 압축이 풀릴 위치 지정
tar -z gzip 압축 적용 옵션

[root@centos ~]# mkdir -p /usr/java
[root@centos ~]# ls
anaconda-ks.cfg  Desktop    Downloads             jdk-8u131-linux-x64.tar.gz  Pictures  Templates  Videos
date_test        Documents  initial-setup-ks.cfg  Music                       Public    u01
[root@centos ~]# mv -v jdk-8u131-linux-x64.tar.gz /usr/java
‘jdk-8u131-linux-x64.tar.gz’ -> ‘/usr/java/jdk-8u131-linux-x64.tar.gz’
[root@centos ~]# cd /usr/java
[root@centos java]# ls
jdk-8u131-linux-x64.tar.gz
[root@centos java]# tar xvfz jdk-8u131-linux-x64.tar.gz
...
jdk1.8.0_131/README.html
[root@centos java]# ls

jdk1.8.0_131  jdk-8u131-linux-x64.tar.gz
[root@centos java]# ls -l
total 181192
drwxr-xr-x. 8   10  143       255 Mar 15  2017 jdk1.8.0_131
-rw-r--r--. 1 root root 185540433 Dec  4 18:08 jdk-8u131-linux-x64.tar.gz
[root@centos java]# cd jdk1.8.0_131/
[root@centos jdk1.8.0_131]# ls
bin        db       javafx-src.zip  lib      man          release  THIRDPARTYLICENSEREADME-JAVAFX.txt
COPYRIGHT  include  jre             LICENSE  README.html  src.zip  THIRDPARTYLICENSEREADME.txt

 

 

728x90
반응형
LIST

'Data Base > Linux' 카테고리의 다른 글

231205 Linux csv 활용 ⓐ  (2) 2023.12.05
231205 Linux JAVA 설정  (1) 2023.12.05
231201 Linux 명령어2  (2) 2023.12.01
231201 Linux vi(visual editor), 커서 이동  (0) 2023.12.01
231130 Linux 명령어1  (7) 2023.11.30