(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
'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 |