차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:linux_user [2021/08/01 23:14] – 이전 판으로 되돌림 (2016/06/08 22:44) 162.158.119.94tech:linux_user [2021/08/03 05:59] (현재) – 이전 판으로 되돌림 (2016/09/17 22:25) 172.70.122.99
줄 1: 줄 1:
 +{{tag>리눅스 사용자 관리}}
    
-====== 리눅스 사용자 관리 이해하기 ====== +====== 리눅스 사용자 관리 ======
  
 시스템에 사용자가 많건 적건, 이것은 리눅스 하에서 사용자를 관리하는 형태를 이해하는 것은 중요하다. 심지어 당신이 유일한 사용자라 할지라도, 아마도 자신을 위한 몇 개의 계정을 가져야 할 것이며, 그 계정에서의 작업은 root보다 더 많이 사용할 것이다. 시스템에 사용자가 많건 적건, 이것은 리눅스 하에서 사용자를 관리하는 형태를 이해하는 것은 중요하다. 심지어 당신이 유일한 사용자라 할지라도, 아마도 자신을 위한 몇 개의 계정을 가져야 할 것이며, 그 계정에서의 작업은 root보다 더 많이 사용할 것이다.
  
-어떤 사용자는 시스템에 하나의 계정만을 가지고 있거나, 몇 사람이 하나의 계정을 공유하는 좋지 않는 경우도 있다. 보안에 관한 문제 뿐만 아니라 계정이 시스템에 하나만 사용되는 것도 좋지 않으며, 또한 root는 누가 무엇을 하고 있는지 알 필요가 있기 때문이다.  +=====개념=====
- +
- +
- +
-=====사용자 관리의 개념=====+
 사용자 관리에 필요한 몇가지 용어들을 먼저 알아보자. 사용자 관리에 필요한 몇가지 용어들을 먼저 알아보자.
- 
  
 ===username=== ===username===
  
 username은 시스템의 모든 사용자에게 주어지는 단일 이름이다. 예를 들어, username은 soonshin, gildong2, jspark 등의 문자나 숫자도 사용될 수 있으며, "_", "."도 가능하다. Username은 보통 8글자로 제한되어 있다. username은 시스템의 모든 사용자에게 주어지는 단일 이름이다. 예를 들어, username은 soonshin, gildong2, jspark 등의 문자나 숫자도 사용될 수 있으며, "_", "."도 가능하다. Username은 보통 8글자로 제한되어 있다.
- 
  
 ===user ID=== ===user ID===
  
 User ID 또는 UID는 시스템의 모든 사용자에게 주어지는 단일 번호이다. 시스템은 username이 아닌 UID 정보로써 사용자를 관리한다. User ID 또는 UID는 시스템의 모든 사용자에게 주어지는 단일 번호이다. 시스템은 username이 아닌 UID 정보로써 사용자를 관리한다.
- 
  
 ===group ID=== ===group ID===
  
-Group ID또는 GID는 사용자의 디폴트 그룹의 ID이다. 각 사용자는 시스템 관리자에 의해 하나나 그 이상의 그룹에 속할 수 있다.  +Group ID또는 GID는 사용자의 디폴트 그룹의 ID이다. 각 사용자는 시스템 관리자에 의해 하나나 그 이상의 그룹에 속할 수 있다.
  
 ===password=== ===password===
  
 시스템은 또한 사용자의 암호화된 패스워드를 저장하고 있다. 명령어 passwd는 사용자의 패스워드를 설정하거나 변경할 때 사용된다. 시스템은 또한 사용자의 암호화된 패스워드를 저장하고 있다. 명령어 passwd는 사용자의 패스워드를 설정하거나 변경할 때 사용된다.
- 
  
 ===full name=== ===full name===
  
-사용자의 "real name" 또는 "full name"은 username과 함께 기록된다.  +사용자의 "real name" 또는 "full name"은 username과 함께 기록된다.
- +
- +
  
 ===home directory=== ===home directory===
  
 Home directory는 사용자가 login했을 때 처음으로 있게 되는 디렉토리이다. 모든 사용자는 반드시 그 자신의 home directory는 가지며, 보통 /home 하위에 위치하게 된다. Home directory는 사용자가 login했을 때 처음으로 있게 되는 디렉토리이다. 모든 사용자는 반드시 그 자신의 home directory는 가지며, 보통 /home 하위에 위치하게 된다.
-  
  
 ===login shell=== ===login shell===
줄 50: 줄 37:
  
  
-사용자 관리는 /etc/passwd 파일에 의해서 관리 된다. 이 파일은 사용자에 대한 정보를 담고 있으며, 그 형식은 아래와 같다. 
  
-    username:encrypted password:UID:GID:full name:home directory:login shell 
  
 +===/etc/passwd===
 +사용자에 대한 정보는 /etc/passwd 파일에 담고 있으며, 그 형식은 아래와 같다.
 +
 +    username:encrypted password:UID:GID:full name:home directory:login shell
  
 예를 보이면, 예를 보이면,
줄 59: 줄 48:
     foo:Xv8Q981g71oKK:102:100:Laura Poole:/home/foo:/bin/bash     foo:Xv8Q981g71oKK:102:100:Laura Poole:/home/foo:/bin/bash
  
-위에서 볼 수 있는 것처럼 첫번째 필드 ‘kiwi’는 username이며, 다음 필드의 "Xv8Q981g71oKK" 는 암호화된 패스워드이다. 패스워드는 시스템이 사용자가 읽을 수 있는 형식으로는 저장되어 있지 않다. 패스워드는 비밀 키를 사용하여 그 자신을 암호화한다. 달리 말하면, 패스워드를 알기 위해서는 암호화된 코드를 본래 입력한 것으로 변환해야 한다. 이 암호화된 형태는 효율적인 보안의 방법이다. +  사용자명 : 패스워드 : 유저아디 : 그룹아디 : 사용자 정보 : 디렉토리명 : 사용하는 
  
-어떤 시템은 패스워드 정보를 /etc/shadow 파일에 위임하는 “shadow password” 를 사용한다. /etc/passwd는 혀질 수 있고, /etc/shadow는 읽을 수 없기 때문에 떤 특별한 보안을 제공한다. Shadow 패스워드는 엄격한 보안을 한 몇 개의 른 특징을 갖고 있지만, 우는 여기서 이런 특징까지 살피지는 않을 것이다.+위에서 볼 수 있는 것처럼 첫번째 필드 foo는 username이며, 다음 필드의 "Xv8Q981g71oKK" 는 암호화된 패워드이다. 패스워드는 시스템이 사용자가 을 수 있는 형식으로는 저장되어 있지 않다. 패스워드는 비밀 키를 사용하여 그 자신을 암호화한다. 달리 말하면, 패스워드를 알기 위해서는 암호화된 코드를 본래 입력한 으로 변환해야 한다. 이 암호화된 형태는 효율적인 보안의 방법이다.
  
-3번째 필드 “102”는 UID이다. 이것은 각각의 사용자에게 하나씩 있어야 한다. 4번째 필드 “100”은 GID이다. 이 사용자는 그룹 번호 100에 속해 있다. 그룹 정보는 사용자 정보와 같으며, /etc/group에 저장되어 있다. +어떤 시스템은 패스워드 정보를 /etc/shadow 파일에 위임하는 shadow password 를 사용다. /etc/passwd는 읽혀질 수 있고, /etc/shadow는 읽을 수 없기 때문에 보다 강한 보안을 제공한다. 
- +
-다섯 번째 필드는 사용자의 full name “Laura Poole”이다. 마지막으로 두개의 필드는 사용자 홈 디렉토리(/home/foo)와 login shell(/bin/bash)이. 디렉토리는 username 과 같이 따로 요구되는 것은 아니며, 단지 디렉토리를 알리는 데 도움이 될 뿐이다.+
  
 +3번째 필드 102 는 UID이다. 이것은 각각의 사용자에게 하나씩 있어야 한다. 4번째 필드 100은 GID이다. 이 사용자는 그룹 번호 100에 속해 있다. 그룹 정보는 /etc/group에 저장되어 있다.
  
 +다섯 번째 필드는 사용자의 full name Laura Poole이다. 
 +마지막으로 두개의 필드는 사용자 홈 디렉토리(/home/foo)와 login shell(/bin/bash)이다. 디렉토리는 username 과 같이 따로 요구되는 것은 아니며, 단지 디렉토리를 알리는 데 도움이 될 뿐이다.
  
 =====사용자 추가===== =====사용자 추가=====
-사용자를 추가할 때는 해야 할 여러 단계가 있다. 먼저, /etc/passwd 안에 단일 username과 UID를 포함한 사용자가 주어져야 한다. GID 나 fullname은 반드시 표기되어야 한다. 또한, 추가된 사용자를 위한 홈 디렉토리를 만들어 주어야 하며, 그 디렉토리를 사용할 수 있도록 그의 디렉토리 사용 허가 또한 반드시 설정해 주어야 한다. 그리고, 시스템을 활용할 수 있게 하는 Shell 초기화 파일이 사용자 홈 디렉토리 안에 있어야 하며, X나 seyon 등과 같은 응용 프로그램을 위한 시스템 사양파일이 있어야 한다. 
  
-사용자를 손수 추가하는 것이 어렵지 않더라도, 시스템에 많은 사용자가 있다면 어떤 사항을 잊을 수가 있다. 사용자를 추가시키는 가장 쉬운 방법은 상호작용하는 프로그램을 이용하는 것이다. 이 프로그램은 요구되는 정보를 질문하고 자동적으로 시스템 파일을 갱신한다. 이 프로그램의 이름은 ‘useradd’ 나 ‘adduser’이며, 설치된 소프트웨어에 따라 다르다. +   useradd -d /www/Hosting/test/ -G users
  
-를 보이면,+    /www/Hosting/test/ 를 홈디렉토리로 하고 users 그룹에 속하는 test 라는 유저를 추가
  
-    useradd -m foo +    -m /home/test  홈폴더 생성 
-    passwd foo+   
 +===암호 설정===
  
-이후에 패스워드를 입력하면 된다.+    passwd test
  
-위와 같이 입력하면, foo 라는 사용자가 만들어지고, foo 소유의 디렉토리가 /HOME/foo 로 자동적으로 만들어진다. 또한, 반드시 초기 패스워드를 지정해 주어야 한다. +===사용자 삭제=== 
 +   userdel test
  
 +===기존 사용자를 기존 그룹에 추가===
 +   adduser 사용자 그룹  
 +===그룹의 사용자 제거===
 +  deluser 사용자 그룹
  
 +===사용자 암호 보기===
  
-=====사용자 제거===== +/etc/passwd에 저장되며 음의 명령으로 볼 수 있다.
-유사하게, 사용자를 지우는 것은 ‘userdel’이나 ‘deluser’ 또는 시스템에 설치된 른 소프트웨어서 수행할 수 있다.+
  
-만일 사용자가 시스템에 login하려 할 때 사용자의 계정을 지우지 않고, 잠시 “desable”시키려면, /etc/passwd 파일의 패스워드 필드의 첫 번째 문자로 “*” 를 추가하면 된다. 예를 들면, foo의 /etc/passwd를 변경하려면 아래와 같으며, 시스템으로 login 하는 것이 제한될 것이다.+각 사용자의 암호와 소속 가 저장된 파일.
  
-    foo:*Xv8Q981g71oKK:102:100:Laura Poole:/home/foo:/bin/bash+  cat /etc/passwd 
 +  
  
-사용자 제거의 예를 보이면 아래와 같다. 
  
-     userdel foobar +===모둠 (group) 보기=== 
- +/etc/group에 저장되며 다음의 명령으로 볼 수 있다.
  
-=====사용자 속성 설정===== +  cat /etc/group
-사용자를 생성한 후에, 홈 디렉토리나 패스워드 같은 사용자의 속성을 바꿀 필요가 있을 때, 가장 쉬운 방법은 /etc/passwd의 값을 직접 바꾸는 것이다. 또한, 사용자의 패스워드를 설정할 경우나 새로운 패스워드로 변경할 경우는 ‘passwd’ 명령어를 사용한다.+
  
-      passwd larry +group:password:GID:사용자(컴마로 구분) 의 형식이다.
- +
-이것은 사용자 larry의 패스워드를 바꾼다. 오직 root만이 다른 사용자의 패스워드를 바꿀 수 있으며, 사용자 자신의 패스워드도 ‘passwd’ 를 사용할 수 있다. +
- +
-어떤 시스템에서는 ‘chfn’ 이나 ‘chsh’ 명령어를 사용하여, 사용자의 login shell 속성이나 fullname을 사용자 자신이 바꿀 수 있도록 허용되어 있다. 만일 이 기능이 없다면 여러 속성들을 변경하기 위해서 root로 login하여 새로이 설치하여야 한다.+
  
  
줄 110: 줄 100:
 =====그룹===== =====그룹=====
 그룹은 사용자들을 집단으로 묶는 것이며, 이렇게 함으로써 그 그룹에 속한 사용자들의 파일을 특정 그룹에 속하는 사용자 모두가 공유할 수 있게 해준다. 또한, 사용자는 복수의 그룹에 속할 수 있다. 그룹은 사용자들을 집단으로 묶는 것이며, 이렇게 함으로써 그 그룹에 속한 사용자들의 파일을 특정 그룹에 속하는 사용자 모두가 공유할 수 있게 해준다. 또한, 사용자는 복수의 그룹에 속할 수 있다.
-일반적인 그룹 이외에 시스템에 정의되는 bin, mail, sys 같은 몇 개의 특수한 그룹이 있다. 이런 그룹 중에는 사용자가 어느 곳에도 속할 수 없으며, 그것들은 시스템 파일 사용 허가에 사용된다. +일반적인 그룹 이외에 시스템에 정의되는 bin, mail, sys 같은 몇 개의 특수한 그룹이 있다. 이런 그룹 중에는 사용자가 어느 곳에도 속할 수 없으며, 그것들은 시스템 파일 사용 허가에 사용된다.
  
-/etc/group는 그룹에 관한 정보가 담겨 있으며, 그 형식은 아래와 같다. +/etc/group는 그룹에 관한 정보가 담겨 있으며, 그 형식은 아래와 같다.
  
     group name:password:GID:other members     group name:password:GID:other members
- 
  
 이 파일의 예를 보인다. 이 파일의 예를 보인다.
줄 124: 줄 113:
     other::250:kiwi     other::250:kiwi
  
 +첫 번째 그룹 root는 root 계정을 위해 예약된 특별한 시스템 그룹이다. 다음 그룹 users는 일반 사용자들을 위한 것이다. 현재 이것은 GID 100을 갖으며, 사용자 mdw와 larry 는 이 그룹을 액세스 할 수 있다. 어쨌든, 사용자는 /etc/group의 다른 그룹 라인에 username을 추가함으로써 하나 이상의 그룹을 가질 수 있다. 명령어 ‘groups’ 는 사용자가 액세스 할 수 있는 주어진 그룹의 목록을 열거한다.
  
-첫 번째 그룹 root는 root 계정을 위해 예약된 특별한 시스템 그룹이다. 다음 그룹 users는 일반 사용자들을 위한 것이다. 현재 이것은 GID 100을 갖으며, 사용자 mdw와 larry 는 이 그룹을 액세스 할 수 있다. 어쨌든, 사용자는 /etc/group의 다른 그룹 라인에 username을 추가함으로써 하나 이상의 그룹을 가질 수 있다. 명령어 ‘groups’ 는 사용자가 액세스 할 수 있는 주어진 그룹의 목록을 열거한다.  +3번째 그룹 guest는 손님 사용자를 위한 것이며, 다른 것은 “other” 그룹들이다. 사용자 kiwi는 이 그룹을 액세스 할 수 있다. 여기서, /etc/group의 “password” 필드는 아주 드물게 사용된다. 이것은 때때로 그룹 액세스를 설정할 때 사용하지만 좀처럼 쓰이지 않는다.
- +
-3번째 그룹 guest는 손님 사용자를 위한 것이며, 다른 것은 “other” 그룹들이다. 사용자 kiwi는 이 그룹을 액세스 할 수 있다. 여기서, /etc/group의 “password” 필드는 아주 드물게 사용된다. 이것은 때때로 그룹 액세스를 설정할 때 사용하지만 좀처럼 쓰이지 않는다. +
  
 명령어 ‘addgroup’나 ‘groupadd’ 는 시스템에 그룹을 추가할 때 사용된다. 일반적으로, 이것은 /etc/group안에 추가시키면 되며, 다른 설정들이 필요치 않다. 그룹을 지우기 위해서는 /etc/group 파일의 내용에서 사용자를 삭제하면 된다. 명령어 ‘addgroup’나 ‘groupadd’ 는 시스템에 그룹을 추가할 때 사용된다. 일반적으로, 이것은 /etc/group안에 추가시키면 되며, 다른 설정들이 필요치 않다. 그룹을 지우기 위해서는 /etc/group 파일의 내용에서 사용자를 삭제하면 된다.
  
  
- 
-{{tag>리눅스 사용자 관리}}