본문 바로가기

Unix&Linux/기본 개념과 관리자 역할

사용자 관리와 파일 속성

리눅스 사용자보기

# gedit /etc/passwd

실행하면 나오게 되는 목록의 내용은 다음과 같다

사용자 이름:암호:사용자 ID:사용자가 소속된 그룹 ID:전체 이름:홈 디렉토리:기본 셸


또는


#gedit /etc/group

실행하게 되면 나오게 되는 목록의 내용은 다음과 같다

그룹명:비밀번호:그룹ID:그룹에 속한 사용자명

그룹에 속한 사용자명은 참조로 사용되며 실제로 아무것도 써있지 않아도 어떤 사용자도 속해있지 않는 것은 아니다.


사용자 및 그룹과 관련된 명령어

useradd(adduser)

새로운 사용자를 추가해 준다. 이 명령 실행시 /etc/passwd, /etc/shdow 및 /etc/group 에 새로운 행이 추가된다.

사용예

# useradd newuser : newuser 라는 이름의 사용자 생성

# useradd -u 555 new user : newuser를 생성하면, 사용자ID를 555로 지정 (사용자 이름과 사용자 ID는 다른개념이며 사용자 이름으로 로그인하게된다.)

# useradd -g mygroup newuser : newuser를 생성하면서, mygroup이라는 그룹으로 사용자를 포함시킴

# useradd -d /newhome newuser : newuser를 생성하면서, 홈 디렉토리를 /newhome으로 지정함

# useradd -s /bin/csh newuser : newuser를 생성하면서, 기본 셸을 /bin/csh 로 지정


passwd

사용자의 비밀번호를 지정하거나, 변경한다.

사용예

# passwd newuser : newuser의 비밀번호를 지정(또는 변경) 한다.


usermod

사용자의 속성을 변경한다. 옵션은 useradd와 동일하다

사용예

# usermod -g root newuser : newuser의 그룹을 root그룹으로 변경한다.


userdel

사용자를 삭제한다.

사용예

# userdel newuser : newuser를 삭제한다.

# userdel -r newuser : newuser를 삭제하면서, 사용자의 홈 디렉토리까지 삭제한다.


chage

사용자의 암호를 주기적으로 변경하도록 설정한다.

사용예

# chage -l newuser : newuser에 설정된 사항을 확인한다.

# chage -m 2 newuser : newuser가 설정한 암호를 사용해야 하는 최소일자(즉, 변경 후 최대 2일까지 사용 할 수 있음)

# chage -M 30 newuser : newuser가 설정한 암호를 사용할 수 있는 최대 일자(즉, 변경 후 최대 30일까지 사용 할 수 있음)

# chage -E 2013/12/12 newuser :newuser가 설정한 암호가 만료되는 날짜(즉, 2013/12/12 까지만 사용할 수 있음)

# chage -W 10 newuser : newuser가 설정한 만료되기 전에 경고하는 기간(미지정시 기본값 7일)(즉, 암호가 만료되기 10일 전부터 경고 메시지가 나감)


group

현재 사용자가 속한 그룹을 보여준다.

사용예

# groups


groupadd

새로운 그룹을 생성한다.

사용예

# groupadd new group : newgroup을 생성한다.

# groupadd -g 555 newgroup : new group을 생성하면서, 그룹ID를 555로 지정한다.


groupmod

그룹의 속성을 변경한다.

사용예

# groupmod -n newgroup mygroup : newgroup의 이름을 mygroup으로 변경한다.


groupdel

그룹을 삭제한다.

사용예

# groupdel newgroup : newgroup을 삭제한다.(단, 해당 그룹을 주요 그룹으로 지정한 사용자가 없어야 한다.)


gpasswd

그룹의 암호를 설정하거나, 그룹의 관리를 수행한다.

사용예

# gpasswd newgroup : newgroup의 암호를 지정한다.

# gpasswd -A newuser newgroup : newuser를 newgroup의 관리자로 지정한다.

# gpasswd -a user1 newgroup : user1을 newgroup의 사용자로 추가한다.

# gpasswd -d user1 newgroup : user1을 newgroup의 사용자에서 제거한다.


사용자를 생성하게 되면 

/etc/skel 디렉토리에 있는 파일들이 /home/사용자이름 디렉토리로 모두 복사된다.

즉, 새로운 사용자를 생성하면 그 사용자의 홈 디렉토리는 기본값으로 /home/사용자이름으로 지정되며, /etc/skel 디렉토리의 모든 내용을 사용자의 홈 디렉토리에 복사해 주는 작업이 일어난다. 그러므로 앞으로 생성되는 사용자에게 특정한 파일 등을 배포하고 싶다면 /etc/sekl 디렉토리에 넣어 놓은면 된다.(skel 디렉토리는 skeleton(뼈대)의 약자다.)


X윈도우 환경에서는 사용자 관리를 편하게 도와주는 툴도 있다.

터미널에서 system-config-users 명령을 입력하면 친숙한 UI로 사용자를 관리할 수 있다.

하지만 X윈도우에서만 제공되므로 명령어를 꼭 알아두는것이 좋다.


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

터미널에서 ls -l 명령을 실행해본다.

그럼 목록이 나올 것인데 그중 install.log파일을 보고 그 의미를 확인해 보자.

 -

 rw- r-- r--

 1

 root

 root 

 52678

 2014-05-01 08:55

 install.log

 파일 유형 파일 허가권 링크 수 파일 소유자 이름 파일 소유 그룹 이름 파일크기(Byte) 마지막 변경날짜/시간 파일 이름


파일 유형

이 파일이 어떤 유형의 파일인지를 의미한다. 디렉토리일 경우에는 d, 일반적인 파일일 경우에는 -가 표시된다. 

그 외에 b(블록디바이스),c(문자디바이스),l(링크) 등이 있다.

b Block Device는 하드디스크, 플로피 디스크, CD/DVD 등의 저장장치

c Character Device는 마우스, 키보드, 프린터 등의 입출력장치

l Link는 Windows의 바로가기아이콘과 비슷한 개념으로 링크되어 있는 파일을 의미하며 실제파일은 다른 곳에 존재한다.


파일 허가권

rw-, r--, r-- 이렇게 3개씩 끊어 읽으면 되다. r은 read, w는 write, x는 execute의 약자이다.

첫번째 rw-는 소유자(User)의 파일접근 권한을 가지며 읽고 쓸수 있지만 실행 할 수는 없다는 이야기

두번째 r--는 그룹(Group)의 파일접근 권한을 가지며 읽을수만 있다는 이야기

세번째 r--는 그 외의 사용자(Other)의 파일접근 권한을 가지며 읽을수만 있다는 이야기를 의미한다.


파일 허가권을 숫자로도 표현할 수있으며 숫자를 이용하여 터미널에 chmod 명령으로 파일의 권한을 줄 수 있다.

다음의 예를 보고 이해해보자


권한에 대한 숫자는 다음과 같다.

r은 4, w는 2, x는 1

해당 권한이 없을 경우 모두 0이다.

소유자

그룹 

그 외 사용자 

 r

 w

 -

 r

 -

 -

 r

 -

 -

 4

 2

 0

 4

 0

 0

 4

 0

 0

 6

 4

 4

# chmod 644 install.log

실행하게 되면

소유자는 rw권한을 가지며

구룹은 r권한을 가지며

그외 사용자는 r권한을 가진다는 이야기다.

만약 777로 바꾼다면 모든 사용자에게 모든 권한을 부여한다는 이야기가 될것이다.


권한을 줄 때 Symbolic method로도 사용할 수 있다.

# chmod u+x 파일명

위의 명령어는 다음의 의미이다.

소유자(user)에게 실행(execute:x) 권한을 허가(+)하라는 의미이다.

# chmod g-rx 파일명

위의 명령어는 그룹에게 읽기와 실행권한을 제거하라는 의미이다.

# chmod o+rwx 파일명

위의 명령어는 그외 사용자에게 읽기/쓰기/실행 권한을 허가하라는 의미이다.


파일 소유권

파일을 소유한 사용자와 그룹을 의미한다.

파일의 소유권을 바꾸는 명령어는 chown이 있다. chown 새로운 사용자명[.새로운그룹명] 파일명 의 형식으로 사용하면 된다.

# chown fedora install.log

위의 명령어는 install.log 파일의 소유자를 fedora 사용자로 바꾸라는 의미이고,

# chown fedora.fedora install.log 는 파일의 그룹도 fedora 그룹으로 바꾸라는 의미이다.

또한 그룹만 바꾸고 싶다면
# chgrp fedora install.log

와 같이 사용하면 된다.



링크

파일의 링크에는 하드 링크(Hard Link)와 심볼릭 링크(Symbolic Link 또는 Soft Link) 두 가지가 있다.

하드 링크는 원본파일의 inode블록으로 직접적인 접근을 하는 연결이라 생각하면되고

심볼릭 링크는 원본파일의 주소를 가지고 inode블록에 접근하는 우회적인 연결이라 생각하면 된다.

하드링크 생성하는 명령어는 'ln 링크대상파일이름 링크파일이름'

심볼릭 링크를 생성하는 명령어는 'ln -s 링크대상파일이름 링크파일이름'


원본파일의 경로가 이동될 경우 하드 링크는 실행되지만 심볼릭 링크는 실행되지 않는다.


## 본문은 RedHat Fedora 리눅스 서버&네트워크 서적을 통해서 정리한 것으로 더 자세한 사항은 책을 통해 확인하실 수 있습니다.