IT/OracleLinux-1Z0460

리눅스 계정

알콩달콩아빠 2022. 5. 19. 19:10
728x90
반응형

안녕하세요

 

뚱보 프로그래머 입니다.

 

오늘은 리눅스의 계정에대 해서알아봅니다.

 

 

 

User Management  

 

1. 사용자 관리 개념

 

1) 리눅스는 멀티유저모드를 지원하는 운영체제이다.

 

리눅스는 개인용 서버 시스템이기 때문에 다중 사용자와 다중 작업 환경을 지원하는 운영체제이고 다중 사용자를 관리하기 위한 여러 설정들이 필요하다. 다중 사용자 모드를 지원한다는 의미는 하나의 서버에서 각 사용자들에게 작업 공간을 할당하고 각각의 사용자들이 서버에 접속을 한다는의미를 지닌다.

 

 

 

2) user account(계정)

 

계정을 달리 user account라고 한다. 계정이란 리눅스/유닉스 시스템에 접근하여 시스템을 사용할  수 있는 사용자 ID와 패스워드 자체를 말하고 ID와 패스워드 인증이 없이는 시스템을 사용할 수 없다.

 

사용자 ID는 시스템에서 특정 사용자를 유일하게 식별하는 수단이고 패스워드는 인증을 위한 것이다.

 

ID와 패스워드를 입력하고 인증을 받는 과정을 달리 로그인 과정이라 하는데 이는 인증된 사용자가 시스템을 사용한다는 의미이다. 사용자가 로그인을 한 후 사용하는 자신의 작업영역 위치를 홈 디렉토리라 한다. root유저,  root 계정의 홈 디렉토리는 /root이고 이는 /(root)와 구별되어야 한다. root 사용자의 계정은 /root이고 /는 시스템의 최상위 디렉토리이다.

 

일반 유저, 일반 사용자의 홈디렉토리는 /home/$계정명으로 만들어진다.

 

 

 

2 새로운 계정의 등록

 

1)  useradd <계정명>으로 유저 등록

 

useradd 명령으로 시스템에 계정을 설정할 때 계정에 고유한 user id group id를 부여한다. 사용자 계정은 각 계정명으로 /home디렉토리 아래에 사용자의 디렉토리를 생성한다. 이때 /etc/skel/* 디렉토리의 모든 파일들이 만들어진 계정의 홈디렉토리로 복사된다.

 

예를 들어 .bash_profile, .bashrc, 기타 계정에 대한 환경을 설정할 수 있는 파일들이 새로이 생성된 계정의 홈 디렉토리에 복사가 되는데, 일반적으로 명령 프롬프트에서 #ls –al이라는 명령을 실행시키면 각 파일에 대해 자세히 볼 수 있다.

 

또한 /etc/passwd, /etc/shadow, /etc/group 파일들은 사용자 데이터베이스 파일로서 이곳에 사용자들에 대한 등록 정보가 저장된다.

 

 

 

2)  사용자 계정 등록

 

[root @edu /home]# useradd <사용자 계정명>

 

[root @edu /home]# adduser <사용자 계정명>

 

사용자 등록은 adduser useradd 명령으로 실행하는데, 이 명령을 이용하여 새로운 계정을 추가한다.

 

/etc/passwd 파일에 새로운 계정정보가 등록되고 사용자에 대한 환경 설정이 이 파일에 저장된다.

 

예를 들어 사용자에 대한 쉘 지정이나 사용자의 홈 디렉토리를 설정한다.

 

또한 shadow passwd 사용시 /etc/shadow 파일에도 신규등록 정보가 저장되는데, 이때 중요한 것은 이 파일에 암호화된 패스워드가 저장되면서 패스워드에 대한 설정이 이루어진다.

 

 

 

3)  사용자 등록 예

 

[root @edu00 linux]#useradd linux00

 

[root @edu00 linux]#grep linux00 /etc/passwd

 

[root @edu00 linux]#ls /home/linux00

 

[root @edu00 linux]#grep linux00 /etc/shadow

 

[root @edu00 linux]#passwd linux00

 

[root @edu00 linux]#grep linux00 /etc/passwd

 

[root @edu00 linux]#grep linux00 /etc/shadow

 

[root @edu00 linux]#grep linux00 /etc/group

 

일반적으로 계정을 등록했다 해서 그 계정을 사용할 수 있는 것은 아니다.

 

계정에 대한 패스워드를 부여해야 그 계정에 대한 인증을 할 수 있고 요즘의 추세라면 각 계정에 대한 패스워드 부여는 상당히 중요하다.

 

 

 

4)  사용자 계정 등록 확인

 

1] /etc/passwd

 

[root @edu00 /home]#cat /etc/passwd

 

[root @edu00 /home]#grep user01 /etc/passwd

 

grep 이란 명령은 특정 문자나 문자열이 있는 라인을 화면에 출력해주는 명령이고 이 명령을 실행하면 /etc/passwd 파일에 있는 특정 문자열이 있는 라인을 볼 수 있는데 이를 이용해서 사용자의 등록 결과를 확인하는 것이 가능하다.

 

: user01:x:500:500::/home/user01:/bin/bash
UID, GID
값은 새로운 계정을 추가할 때마다 가장 최근에 부여한 계정의 UID값에 1을 더해서 등록된다.

 

최초 사용자를 신규 등록할 때 uid, gid 값은 기본적으로 500 부터 시작한다.

 

 

 

2] /etc/group

 

[root @edu /home]#grep /etc/group

 

: /etc/group 파일의 마지막 GID 1을 더하여 신규 자용자의 UID,GID를 작성한다.

 

/etc/group 파일에서 사용자들이 가장 주의를 기울여야 하는 부분은 그룹중 root를 멤버로 가지는 계정이다. 일반적으로 사용자들이 가장 많이 인식하는 계정은 wheel 그룹이며 id 10이다.

 

 

 

3] /etc/shadow

 

[root @edu /home]#useradd user01

 

[root @edu /home]#useradd user02

 

[root @edu /home]#passwd user01

 

[root @edu /home] #cat /etc/shadow

 

user01:#$%^#$#$$#FDVD/:11456::99999:7:::
user02:!!:…

 

shadow password 등록 결과를 확인하는 것이 가능하다. 기존 패스워드가 부여된 계정은 암호화 되어 저장된다. 패스워드  미부여 계정은 !! 2개로 표시되는데 이러한 계정은 당장 사용할 수 없다.

 

 

 

5) 패스워드 부여

 

[root @edu /home]#passwd <계정명> 

 

새로운 계정의 패스워드는 passwd라는 명령을 실행하면 된다. 슈퍼유저는 계정의 이름을 인자로 주어 각 계정의 패스워드를 부여할 수 있으며, 일반 사용자는 아무런 인자없이 실행하여 자신의 패스워드를 변경할 수 있다.

 

생성된 패스워드는 /etc/passwd 파일에 저장이 된다. shadow 패스워드를 사용할 경우 /etc/shadow 파일에 암호화된 패스워드가 저장이 되고, /etc/passwd 파일에는 ‘x’ 표시만 남게된다.

 

shadow 패스워드는 기존의 패스워드를 보완한 것으로 모든 사용자가 읽을 수 있는 /etc/passwd 파일에서 암호화된 패스워드만 따로 분리해서 보관하는 것이다. 이 파일이 /etc/shadow 파일로 이는 슈퍼유저만이 읽을 수 있다.

 

passwd 명령은 등록된 계정에 대한 비밀번호를 부여한다. 신규로 작성한 사용자 계정은 기본적으로 패스워드가 부여되지 않는다. 또한 패스워드를 지정하는 것은 물론 기존 사용자 계정의 패스워드를 변경할 수 있다. 하지만 일반 사용자는 자신의 패스워드만 변경할 수 있다.

 

 

[root @edu /home]#passwd user01 

 

[root @edu /home]#grep user01 /etc/passwd

 

[root @edu /home]#su – linux

 

[linux @edu /home/linux]$passwd

 

[linux @edu /home/linux]$exit

 

 

 

3. 사용자 계정 삭제

 

사용자 계정 삭제 : userdel –r <계정명>

 

사용자 계정은 userdel 명령을 실행하여 삭제할 수 있는데, 이 명령을 실행하면 /etc/passwd, /etc/group, /etc/shadow 파일에서 해당 사용자 계정에 대한 정보가 삭제된다.

 

아무런 옵션없이 실행하면 해당 계정의 디렉토리는 남아있게 된다.

 

[root @edu00 linux]#userdel linux00

 

[root @edu00 linux]#grep linux00 /etc/passwd

 

[root @edu00 linux]#grep linux00 /etc/shadow

 

[root @edu00 linux]#grep linux00 /etc/group

 

[root @edu00 linux]#ls /home

 

[root @edu00 linux]#useradd linux00

 

[root @edu00 linux]#userdel -r linux00

 

[root @edu00 linux]#ls /home

 

 

 

4. 그룹 등록과 삭제

 

[root @edu00 linux]#useradd linux01

 

[root @edu00 linux]#useradd -n linux00

 

[root @edu00 linux]#grep linux00 /etc/passwd

 

linux00:x:501:100::/home/linux00:/bin/bash

 

[root @edu00 linux]#useradd -n nad

 

[root @edu00 linux]#groupadd -g 55000 admin

 

[root @edu00 linux]#useradd –G admin nadd

 

[root @edu00 linux]#grep admin /etc/group

 

admin:x:55000

 

[root @edu00 linux]#useradd open –G admin

 

[root @edu00 linux]#vi /etc/group

 

----------------------

 

......

 

linux01:x:500:

 

admin:x:55000:open

 

......

 

---------------------

 

[root @edu00 linux]#groups linux01

 

linux01:linux01

 

[root @edu00 linux]#groups open

 

open:open admin

 

[root @edu00 linux]#grep linux00 /etc/passwd

 

[root @edu00 linux]#groupdel admin

 

[root @edu00 linux]#grep admin /etc/group

 

새로운 그룹을 만들기 위해서는 groupadd 명령을 사용한다.

 

이 명령으로 생성된 그룹은 /etc/group 파일에 추가되고 shadow 파일을 사용할 경우 /etc/gshadow

 

파일에도 추가된다.

 

 

 

5. 그룹과 홈디렉토리를 지정하여 사용자 등록

 

[root @edu00 linux]#mkdir /home2

 

[root @edu00 linux]#useradd -d /home2/linux11-home linux11

 

[root @edu00 linux]#passwd linux11

 

[root @edu00 linux]#grep linux11 /etc/passwd

 

linux11:x:504:504::/home2/linux11-home:/bin/bash

 

[root @edu00 linux]#ls /home2/linux11-home/

 

[root @edu00 linux]#groupadd -g 55000 Lido

 

[root @edu00 linux]#groupadd -g 56000 LINUX

 

[root @edu00 linux]#groupadd -g 57000 PHP

 

[root @edu00 linux]#cat /etc/group

 

-----------------------------

 

......

 

Lido:x:55000:

 

LINUX:x:56000:

 

PHP:x:57000:

 

........

 

----------------------------------

 

[root @edu00 linux]#useradd linux01 -g Lido -G LINUX,PHP -d /home2/linux01->home

 

[root @edu00 linux]#grep linux01 /etc/passwd

 

[root @edu00 linux]#groups linux01

 

[root @edu00 linux]#cat /etc/group

 

useradd 명령어의 옵션중에 –d 옵션이 있다. 이는 각 계정의 홈 디렉토리를 일시적으로 변경시키는 명령어이고 시스템에서 제시된 본래의 홈 디렉토리 변경은 아니다.

 

 

 

6. 그룹관리자를 정하고 그룹관리 권한주기

 

[root @edu00 linux]#groupadd -g 58000 iCLUB

 

[root @edu00 linux]#useradd nad1 -g Lido -G iCLUB

 

[root @edu00 linux]#groups nad1

 

[root @edu00 linux]#su - nad1

 

[nad1 @edu00 nad1]$ls -l

 

[nad1 @edu00 nad1]$touch ttl

 

[nad1 @edu00 nad1]$ls -l

 

[nad1 @edu00 nad1]$newgrp iCLUB  * 내가 보조그룹으로 되어서 로그인 효과,

 

새로운 그룹을 로그인

 

[nad1 @edu00 nad1] $groups

 

[nad1 @edu00 nad1]$touch ttl2

 

[nad1 @edu00 nad1]$ls -l

 

[nad1 @edu00 nad1]$exit

 

[root @edu00 linux]#exit

 

 

 

[root @edu00 linux]#gpasswd -A nad1 iCLUB

 

[root @edu00 linux]#useradd nad2 -g Lido

 

[root @edu00 linux]#groups nad2

 

[root @edu00 linux]#su - nad1

 

[nad1 @edu00 nad1]$gpasswd -a nad2 iCLUB

 

Adding user nad2 to group iCLUB

 

[nad1 @edu00 nad1]$groups nad2

 

[nad1 @edu00 nad1]$cat /etc/group

 

[nad1 @edu00 nad1]$exit

 

[root @edu00 linux]#cat /etc/gshadow

 

........

 

iCLUB:!:nad1(시샵):nad1,nad2(멤버)

 

........

 

[root @edu00 linux]#su - nad2

 

[nad2 @edu00 nad2]$newgrp iCLUB

 

[nad2 @edu00 nad2]$groups

 

[nad2 @edu00 nad2]$exit

 

[root @edu00 linux]#exit

 

[root @edu00 linux]#su - nad1

 

[nad1 @edu00 nad1]$gpasswd -d nad2 iCLUB

 

Removing user nad2 from group iCLUB

 

[nad1 @edu00 nad1]$exit

 

[root @edu00 linux]#grep iCLUB /etc/gshadow

 

[root @edu00 linux]#grep iCLUB /etc/group

 

 

 

7. 다양한 유형의 사용자 등록

 

웹 호스팅의 경우 홈페이지에 CGI 게시판을 제공하거나 웹 메일을 제공하는 등 업체마다 여러 유형으로 사용자를 등록해야 하는 경우가 대부분이다.

 

일반적인 회원가입 사이트의 경우에도 회원에 따라 홈디렉토리에 기본으로 제공해주는 파일들이 몇 가지로 나누어진다.

 

[root @edu00 linux]#ls -a /home/nad1

 

[root @edu00 linux]#ls -a /etc/skel

 

[root @edu00 linux]#cp -R /etc/skel /etc/skel2

 

[root @edu00 linux]#rm -rf /etc/skel2/Desktop

 

[root @edu00 linux]#mkdir /etc/skel2/public_html

 

[root @edu00 linux]#vi /etc/skel2/public_html/index.html

 

-------------------------------------

 

<HTML>

 

<HEAD><TITLE>Testing Homepage</TITLE></HEAD>

 

<BODY bgcolor=gold>

 

<font size=7> Welcome to My Homepage !!</font><hr><br>

 

</BODY>

 

</HTML>

 

-------------------------------------------------

 

[root @edu00 linux]#useradd nad3 -m -k /etc/skel2 -g Lido

 

: -m 옵션은 make의 의미, -k 옵션은 skel 디렉토리

 

[root @edu00 linux]#su - nad3

 

[nad3 @edu00 nad3]$chmod 755 ~

 

[nad3 @edu00 nad3]$exit

 

[root @edu00 linux]#netscape http://0/~nad3

 

 

 

8. 사용자 정보 변경하기

 

사용자의 쉘을 바꾸거나, 홈 디렉토리를 옮기거나 사용자 로그인명을 바꾸는 등의 일반적인 작업을 의미한다. 직접 관련 파일을 수정하거나 특정 명령을 사용하여 계정에 대한 정보를 변경할 수 있고 이러한 정보 변경은 사용자의 작업 환경을 변경한다는 것을 의미한다.

 

1) 계정 정보 변경

 

사용자와 그룹의 패스워드는 passwd gpasswd라는 명령으로 수정할 수 있다.

 

그 외의 방법으로 계정 관련 파일을 직접 편집하거나 usermod groupmod 명령을 이용할 수도 있다.

 

슈퍼 유저는 계정 이름을 명시하여 해당 사용자의 세부 항목을 변경할 수 있으며, 일반 사용자는 자신의 항목을 변경할 수 있다.

 

기능 : UID, GID, Home Dir, Shell 등의 변경 가능

 

 

 

2) 홈디렉토리 변경

 

[root @edu /home]#usermod -d /home2/user01 user01

 

user01의 홈디렉토리를 /home2/user01로 변경.

 

변경하고자 하는 디렉토리와  디렉토리 소유권한이 사용자로 되어 있어야 한다.

 

 

 

3) 개인의 UID, GID 변경 가능

 

#usermod -u 번호 계정명

 

#usermod -g 번호 계정명

 

/etc/group 파일에 해당되는 그룹이 있어야 한다.

 

 

 

4) 쉘의 변경

 

[root @edu /home]# chsh

 

각각의 일반 사용자의 shell 변경이 가능하다.

 

root 유저는 일반 사용자의 shell까지 변경이 가능하다.

 

/bin/*sh 파일이 리눅스에 등록되어 있는 shell이고 이는 /etc/shells에 저장되어 있다.

 

각 유저의 shell /etc/passwd 파일에 등록되어 있다.

 

 

 

5) 새로운 그룹 만들기

 

 

 

# groupadd  그룹명

 

새로운 그룹을 추가하면 /etc/group 파일에 새로운 그룹이 추가된다.

 

0~499까지의 그룹ID는 시스템이 직접 사용하는 시스템 계정으로 사용되고 나머지는 일반 사용자의 그룹 계정으로 사용된다. 새로운 그룹이 만들어질 때 마다 그룹의 id 500번부터 시작해 만들어진다.

 

직접 새 그룹의 GID를 지정하고 싶다면 -g GID 옵션을 준다.

 

 

 

사용 예

 

[root @edu00 linux]#man usermod

 

[root @edu00 linux]#usermod -s /bin/csh linux001

 

[root @edu00 linux]#grep linux001 /etc/passwd

 

linux001:x:504:55000::/home2/linux001-home:/bin/csh

 

[root @edu00 linux]#usermod -d /home/linux001 -m linux001

 

[root @edu00 linux]#grep linux001 /etc/passwd

 

linux001:x:504:55000::/home/linux001:/bin/csh

 

[root @edu00 linux]#ls -a /home/linux001

 

[root @edu00 linux]#usermod -l red linux001

 

[root @edu00 linux]#grep linux001 /etc/passwd

 

red:x:504:55000::/home/linux001:/bin/csh

 

 

 

9 각 유저의 환경설정 파일 정보 이해

 

1) etc/passwd

 

 

 

각 사용자들의 등록 정보가 저장되는 기본 파일이자 사용자의 데이터베이스 파일이라 할 수 있다.

 

계정명, 홈 디렉토리, shell 정보 등이 저장된다. 이 파일을 수정하면 새로운 설정을 적용시킬 필요없이 바로 시스템에 적용이 된다.

 

 

 

 

 

2) /etc/shadow

 

보안을 위한 각 유저의 패스워드를 암호화 하여 저장한다. 일반적으로 시스템 설치시에 새도우 패스워드 지정으로 만들어지기도 하고 또는 시스템 사용중에 pwconv 명령으로 새도우 패스워드 지정을 할 수 있다. 만일 새도우 패스워드 사용을 하지 않는다면 pwunconv 명령으로 설정을 할 수 있으며 /etc/shadow 파일에 저장되어 있던 패스워드는 /etc/passwd 파일로 이동하게 된다.

 

이 파일은 root 유저만이 접근할 수 있도록 permission 설정되어 있다.

 

 

 

3) /etc/group

 

등록된 각 그룹의 정보파일이다.

 

root 유저를 비롯하여 시스템 계정과 일반 사용자 계정에 대한 그룹 설정이 되어 있으며 이때 주의할 것은 각 그룹 계정의 멤버로 root가 지정되어 있는 그룹 계정을 주의할 필요가 있다.

 

 

 

4) /etc/skel

 

 

 

새로운 사용자 등록시 이 디렉토리에 있는 파일들이 각 사용자의 홈 디렉토리로 복사된다.

 

각 유저의 환경설정 파일등의 내용이 저장된다. 새로 만들어지는 유저의 환경설정을 변경코자 할 경우는 이 디렉토리의 파일들의 정보를 변경하면 각 유저의 환경 설정이 변경된다.

 

예를 들어 아파치 웹 서버의 각 사용자의 홈 페이지를 설정하고자 한다면 /etc/skel 디렉토리 아래데 public_html 디렉토리를 만들고 그 아래 index.html 파일을 만들어주고 새로운 사용자를 추가한다면 각 계정의 홈 디렉토리에는 public_html 디렉토리가 생성이 되고 그 아래 index.html 파일이 위치하게 된다. 이때 주의할 것은 각 계정과 하위의 public_html 디렉토리의 퍼미션이다.

 

 

 

5) /etc/default/useradd

 

새로운 유저가 만들어질 때의 기본 정보가 저장되는 파일이다.

 

1] GROUP=100

 

기본 그룹ID 100으로 설정된다. 이 값은 새로운 사용자 계정이 만들어지면 자동적으로 생기는 기본 그룹(해당 계정과 동일한 이름과 ID를 가진)이 만들어지지 않도록 설정해 두었을 경우에만 사용된다.
일반적으로 새로운 계정을 그룹에 등록할 때 옵션 –n을 주면 이 파일에 설정된 그룹 id 100이 설정된다.

 

2] HOME=/home

 

사용자의 홈 디렉토리가 위치할 디렉토리를 나타낸다. , 각 계정 사용자들의 홈 디렉토리는 /home 밑에 각 계정의 이름으로 생성된다.
3] INACTIVE=-1

 

패스워드 유효기간 만료 후 언제 해당 계정을 사용할 수 없게 하는지 일단위로 나타낸다. 기본값은 –1, 즉 이 계정은 결코 취소되지 않는다.
4] EXPIRE=

 

사용자 계정이 만료되어서 사용할 수 없게 되는 날짜를 나타낸다. 기본적으로 계정은 만료되지는 않는다.
5] SHELL=/bin/bash

 

등록되는 사용자의 기본 shell을 나타낸다. 여기에서 쓰인 쉘은 /etc/shells 파일에 명시된 유효한 쉘이어야 한다.
6] SKEL=/etc/skel

 

새로운 사용자 계정이 만들어지면 해당 사용자의 홈 디렉토리에 기본적으로 복사될 파일들이 있는 곳이다. 일반적으로 /etc/skel을 지정하면 굳이 다른 디렉토리로 바꿀 필요는 없다. 각 유저의 환경설정 파일들이 위치한다.

 

 

 

10. 수동으로 일반사용자 등록

 

 

 

1) 개념

 

 

 

useradd 등의 명령어를 특별한 이유로 인해 제한을 가하거나 또는 이 명령이 없을 경우 때론 root 유저가 수동으로 각 유저를 등록해줄 필요가 있다. 각 유저의 환경설정 파일과 디렉토리 등을 생성하고 소유권과 그룹정보 등을 생성, 변경하는 방법으로 작업하면 수동으로 일반 사용자를 등록할 수 있다.

 

2) 새로운 유저의 수동 등록

 

 

 

[root @edu00 linux]#vi /etc/passwd
user01:x:100:200: user1's home:/home/user1:/bin/csh

 

[root @edu00 linux]# pwconv

 

:passwd file의 변동내용이 /etc/shadow 에 적용

 

[root @edu00 linux]# mkdir /home/user01

 

[root @edu00 linux]# chown user1 /home/user01

 

[root @edu00 linux]# vi /etc/group

 

; 새 그룹 등록

 

[root @edu00 linux]# chgrp user01 /home/user01

 

[root @edu00 linux]# cp –r /etc/skel /home/user01

 

; etc/skel 디렉토리 내용들을 유저의 홈 디렉토리로 copy

 

[root @edu00 linux]# su – user01

 

[root @edu00 linux]# passwd user01

 

 

 

11. 사용자 로그인 제한

 

1)  명령행 제한

 

일반 사용자의 로그인을 제한하는 방법중 명령행 프롬프트상에서 제한할 수 있는 방법은 usermod 명령을 사용하는데 이때 옵션 중 –L –U를 사용한다.  –L lock의 의미이고 –U unlock의 의미를 지닌다.

 

 

 

[root @edu00 linux] #useradd nad4

 

[root @edu00 linux]#passwd nad4

 

[root @edu00 linux]#usermod -L nad4

 

: -L 옵션은 lock의 의미

 

[root @edu00 linux]#grep nad4 /etc/shadow

 

nad4:!$........................

 

[root @edu00 linux]#telnet 0

 

login:nad4

 

password:

 

Login incorrect

 

....................

 

[root @edu00 linux]#usermod -U nad4

 

: -U 옵션은 unlock의 의미

 

[root @edu00 linux]#grep nad4 /etc/shadow

 

 

 

2)  사용 불가능한 쉘 지정

 

[root @edu00 linux]#vi /bin/no.sh

 

-----------------------------------------------

 

#!/bin/sh

 

echo -e "\n\n"

 

echo -e "\t <<< 죄송합니다. 지금은 로그인할 수 없습니다. >>>"

 

echo -e "\n\t 관리자(nadream@linuxone.co.kr)에게 문의 바랍니다. ^^.."

 

echo -e "\n\n"

 

-------------------------------------------------

 

[root @edu00 linux]#chmod 755 /bin/no.sh

 

[root @edu00 linux]#vi /etc/shells

 

-------------------------------------

 

/bin/bash

 

/bin/sh

 

/bin/tcsh

 

/bin/csh

 

/bin/ash

 

/bin/bsh

 

/bin/no.sh  <-- 추가

 

------------------------------------

 

[root @edu00 linux]#usermod -s /bin/no.sh nad4

 

[root @edu00 linux]#grep nad4 /etc/passwd

 

nad4:x:506:55000::/home/nad4:/bin/no.sh

 

[root @edu00 linux]#telnet 0

 

login:nad4

 

password:

 

Last login: ..............

 

<<< 죄송합니다. 지금은 로그인할 수 없습니다. >>>

 

관리자(nadream@linuxone.co.kr)에게 문의 바랍니다. ^^..

 

 

 

[root @edu00 linux]#usermod -s /bin/bash nad4

 

[root @edu00 linux]#grep nad4 /etc/passwd

 

 

 

3) 사용 불가능한 쉘 일시적 지정

 

[root @edu00 linux]#vi /etc/passwd

 

--------------------------------

 

..........

 

linux:*:500:500:nadream:/home/linux:/bin/bash        à passwd 부분에 x 대신 *

 

admin:x:501:501::/home/admin:/bin/false                 à /bin/bash /bin/false

 

*linux00:x:502:502::/home/linux00:/bin/bash             à username 부분에 * 추가

 

...........

 

--------------------------------

 

 

 

12. 계정 만료시키기

 

[root @edu00 linux]#cat /etc/shadow

 

[root @edu00 linux]#date

 

Sun Oct 8 17:44:25 KST 2000

 

[root @edu00 linux]#usermod -e 2000/10/07 nad4

 

[root @edu00 linux]#cat /etc/shadow

 

[root @edu00 linux]#telnet 0

 

login:nad4

 

Password:

 

Your account has expired; please contact your system administrator

 

User account has expired

 

 

 

13. 새로운 사용자 막기

 

비상시나 불법 공격을 받을 때 시스템 관리자가 가장 먼저 취해야 할 조치는 문제가 해결될 때까지 사용자의 로그인을 막는 것이다. , 신규 로그인을 신속하게 막아야 한다. 이때 사용자가 임의의 파일을 만들어야 하는데 /etc/nologin 파일이다. /etc/nologin 파일은 사용자가 shutdown 명령을 내리면 자동적으로 생성되면서 root 이외의 사용자의 접속을 금지시키는데 이를 응용하는 방법이다.

 

 

 

[root @edu00 linux]#vi /etc/nologin

 

---------------------------------------

 

**************************

 

      지금은 시스템 점검 중입니다...........

 

      20:00에 다시 로그인하기 바랍니다. ^^..

 

      **************************

 

[root @edu00 linux]#telnet 0

 

login:linux01

 

Password:

 

Login incorrect:

 

 

 

14. 그룹 정보 변경

 

[root @edu00 linux]#man groupmod

 

[root @edu00 linux]#groupmod -n phpCLUB PHP

 

[root @edu00 linux]#grep phpCLUB /etc/group

 

[root @edu00 linux]#grep phpCLUB /etc/gshadow

 

[root @edu00 linux]#groupmod -g 59000 phpCLUB

 

[root @edu00 linux]#grep phpCLUB /etc/group

 

[root @edu00 linux]#groups linux001

 

 

 

15. 사용자 등록 기본값 설정

 

useradd를 사용하여 새로운 사용자를 등록할 때 적용되는 기본값들은 /etc/default/useradd

 

/etc/login.defs 파일에 있다.

 

 

 

1)  /etc/default/useradd

 

[root @edu00 linux]#vi /etc/default/useradd

 

-------------------------

 

# useradd defaults file

 

GROUP=100

 

HOME=/home

 

INACTIVE=-1

 

EXPIRE=

 

SHELL=/bin/bash

 

SKEL=/etc/skel

 

--------------------------

 

[root @edu00 linux]#man useradd

 

[root @edu00 linux]#useradd -D .........

 

: -D 옵션은 default의 의미로 /etc/useradd/default 파일을 의미한다.

 

 

 

2)  /etc/login.defs

 

[root @edu00 linux]#vi /etc/login.defs

 

------------------------------------------------------------

 

# *REQUIRED*

 

# Directory where mailboxes reside, _or_ name of file, relative to the home

 

# directory. 

 

# If you _do_ define both, MAIL_DIR takes precedence.

 

# QMAIL_DIR is for Qmail

 

#

 

#QMAIL_DIR        Maildir

 

MAIL_DIR            /var/spool/mail

 

#MAIL_FILE        .mail

 

 

 

# Password aging controls:

 

#

 

# PASS_MAX_DAYS  Maximum number of days a password may be used.

 

# PASS_MIN_DAYS  Minimum number of days allowed between password changes.

 

# PASS_MIN_LEN             Minimum acceptable password length.

 

# PASS_WARN_AGE         Number of days warning given before a password expires.

 

#

 

PASS_MAX_DAYS            99999

 

PASS_MIN_DAYS 0

 

PASS_MIN_LEN   5

 

# 로그인 시 패스워드 길이를 지정하여 로그인 하도록 설정

 

PASS_WARN_AGE            7

 

#

 

# Min/max values for automatic uid selection in useradd

 

#

 

UID_MIN                             500

 

UID_MAX                                       60000

 

#

 

# Min/max values for automatic gid selection in groupadd

 

#

 

GID_MIN                             500

 

GID_MAX                                       60000

 

#

 

# If defined, this command is run when removing a user.

 

# It should remove any at/cron/print jobs etc. owned by the user to be removed

 

# (passed as the first argument).

 

#

 

#USERDEL_CMD /usr/sbin/userdel_local

 

#

 

# If useradd should create home directories for users by default On RH systems, we # do.

 

# This option is ORed with the -m flag on useradd command line.

 

#

 

CREATE_HOME   yes

 

----------------------------------------------------------

 

 

 

16. 새로운 슈퍼유저 등록

 

UID GID 0인 사용자는 슈퍼유저가 된다.

 

[root @edu00 linux]#vi /etc/passwd

 

root:x:0:0:root:/root:/bin/bash

 

hacker:x:0:0:root:/root:/bin/bash

 

à /etc/passwd 파일에 직접 추가한다.

 

[root @edu00 linux]#pwconv

 

[root @edu00 linux]#passwd hacker

 

[root @edu00 linux]#grep hacker /etc/passwd

 

hacker:x:0:0:root:/root:/bin/bash

 

[root @edu00 linux]#telnet 0

 

login:nad1

 

Password:

 

[nad1 @edu00 nad1]$su - hacker

 

Password:

 

[hacker @edu00 hacker]#whoami

 

root

 

[hacker @edu00 hacker]#id

 

uid=0(root) gid=0(root) groups=0(root)

 

[root @edu00 linux]#vi /etc/cron.daily/uidcheck

 

--------------------------------------------------

 

#!/bin/bash     

 

line=`grep 0:0 /etc/passwd | wc -l`

 

[ $line -ge 2 ] && grep 0:0 /etc/passwd | mail -s "[ `date +%Y%m%d'

 

UID 문제 보고서 ]" root

 

---------------------------------------------------

 

[root @edu00 linux]#chmod 700 /etc/cron.daily/uidcheck

 

[root @edu00 linux]#/etc/cron.daily/uidcheck

 

[root @edu00 linux]#mail

 

     

 

17. 존재하지 않는 계정으로 로그인

 

/etc/nsswitch.conf 파일과 /etc/passwd 파일을 편집하여 설정한다.

 

[root @edu00 linux]#vi /etc/nsswitch.conf

 

……..

 

passwd:    db files #nisplus nis

 

shadow:    db files #nisplus nis

 

group:     db files #nisplus nis

 

#passwd:     files nisplus

 

#shadow:     files nisplus

 

#group:      files nisplus

 

hosts:     db files dns #nisplus nis

 

#hosts:      files nisplus dns

 

………..

 

[root @edu00 linux]#vi /etc/passwd

 

root:x:0:0:root:/root:/bin/bash

 

toot:x:0:0:root:/root:/bin/bash à 추가

 

[root @edu00 linux]#vi /etc/shadow

 

root:$1$qa3At13M$g9jC5ia4mrQ4xU9yMiIwi1:11766:0:99999:7:::

 

toot:$1$qa3At13M$g9jC5ia4mrQ4xU9yMiIwi1:11766:0:99999:7::: à 추가

 

[root @edu00 linux]#pwconv

 

[root @edu00 linux]#cd /var/db

 

[root @edu00 db]# make

 

/etc/passwd, /etc/shadow 파일에 수동으로 생성한 계정을 삭제한다. /etc/nsswitch.conf 파일은 사용자 계정을 비롯한 dns, 네트웤 검색 순서를 설정하는 부분이고 이미 데이터베이스화되어 있기 때문에 일반 파일을 검색하기 전에 먼저 데이터베이스 파일을 검색한다. 이 데이터베이스 파일은 /var/db 디렉토리에 존재한다.

 

[root @edu00 /db]#su – test

 

[test @edu00 /test]$su – toot

 

Password:

 

 

 

 

 

18. sudo를 이용한 권한 부여

 

sudo 패키지는 일반 사용자가 허가받은 관리 명령어를 사용할 수 있게 해준다.

 

시스템 관리를 분담해서 할 수 있다.

 

[root @edu00 linux]#rpm -qa | grep sudo

 

sudo-*

 

[root @edu00 linux]#visudo

 

----------------------------------------------

 

User_Alias          USER_MANAGERS = linux001, linux002

 

User_Alias          WEB_MASTERS = program, design

 

User_Alias          DB_MANAGERS = oracle, sql

 

 

 

Runas_Alias        OP = root

 

Runas_Alias        WEB = www

 

Runas_Alias        DB = oracle, sql

 

Host_Alias          NADREAM = orion, dabang

 

 

 

Cmnd_Alias         USER_COMMAND = /usr/sbin/useradd, /usr/sbin/userdel,

 

/usr/sbin/groupadd, /usr/sbin/groupdel, /usr/sbin/usermod,

 

/usr/sbin/groupmod

 

root                    ALL = (ALL) ALL

 

# 이사람은(root) 여기에서(ALL) 이 사람의 권한으로((ALL)) 이런(ALL) 명령어를 실행# 한다.

 

USER_MANAGERS NADREAM = USER_COMMAND, /usr/bin/passwd

 

[a-z]*, !/usr/bin/passwd root

 

# root passwd 바꿀 수 없다.

 

WEB_MASTERS   ALL = (WEB) ALL, (OP) /usr/bin/su www

 

DB_MANAGERS  ALL = (DB) ALL

 

-------------------------------------------------

 

[root @edu00 linux]#su - linux001

 

[liux001 @edu00 linux001]$sudo -l

 

Password:

 

User linux001 may run the following commands on this host:

 

(root) /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/groupadd,

 

/usr/sbin/groupdel, /usr/sbin/usermod,  /usr/sbin/groupmod

 

(root) /usr/bin/passwd [a-z]*

 

(root) !/usr/bin/passwd root

 

 

 

[linux001 @edu00 linux001]$sudo /usr/sbin/useradd nad2

 

[linux001 @edu00 linux001]$sudo /usr/bin/passwd nad2

 

[linux001 @edu00 linux001]$sudo /usr/bin/passwd root

 

 

이처럼 계정을 등록, 삭제, 변경, 권한

 

여러가지를 할수가 있는데요

 

보안문제상 기본적인것들이 있는데 이걸보면서 하면 좀더 이해가 잘될 것으로 판단됩니다.

 

화이팅

 

 

728x90
반응형

'IT > OracleLinux-1Z0460' 카테고리의 다른 글

프로그래밍  (0) 2022.05.19
프로세스  (0) 2022.05.19
여러가지 etc 명령어  (0) 2022.05.19
프로세스 상태 확인 and 텍스트 프로세싱  (0) 2022.05.19
시스템 정보 확인 명령어  (0) 2022.05.19