카테고리 없음
linux skel 사용 - 사용자 자동화
[czar]
2013. 5. 16. 11:21
http://www.hamslab.com/lab/linux/doc/user_admin.html

리눅스 사용자 관리 << linux 작업물 << 작업실
하이텔과 기타 게시판에서 그냥 퍼온 글 들입니다.
- 계정을 그냥 추가할때
'adduser aaa' 라고 계정을 추가하면 /home/aaa 식으로 알아서 디렉토리가 생성됩니다. - 계정 추가시 계정의 위치 지정
하지만 adduser -d 라는 옵션을 사용하면 사용자가 임의로 계정의 위치를 지정해 줄 수 있습니다. 'adduser aaa -d /home/group/aaa' 라고 하면 /home/group/aaa 에 계정의 위치가 정해지게 됩니다. - 로그인 허락하지 않고 메일계정으로만 계정추가
계정을 발급할때 로그인을 허락하지 않고 일반 메일계정으로만 사용하게 할려면, -s 옵션을 사용하면 되는데 adduser 계정명 -s /bin/false 이렇게 하면 텔넷이나 FTP로 로그인 할 수 없는 계정이 만들어집니다. 쉘을 false말고 /usr/bin/passwd 로 잡는것도 쓸만합니다. false로 하면 패스워드를 관리자가 일일이 바꿔줘야하거든요. :) - 계정 추가시 template : /etc/skel
보통 root 사용자가 계정을 추가하면 추가된 계정 디렉토리에 보면 Mail 이라는 디렉토리가 하나 생성 됩니다. /etc/skel 디렉토리에 보시면 위 내용이 계정을 추가할때 그대로 계정에 포함 됩니다. /etc/skel 디렉토리안에 public_html 이라는 디렉토리를 만들어 놓으면 root 사용자가 계정을 추가하면 추가한 계정에 public_html 이라는 디렉토리도 자동으로 생성됩니다. /etc/skel 밑에 넣었을경우 permission은 어떻게 되나요? 그리고 소유권은 누구로 되어있지요? 계정신청자의 소유권으로 되었지 않다면 골치 아픈데요. etc/skel/밑의 파일들은 새로운 사용자를 추가할때 기본으로
새로추가한 사용자와 그룹으로 소유권이 주어지는군요..
public_html을 755모드로 설정하고 테스트 해본결과
제대로 사용자 홈디렉토리에 설치를 해주었습니다. '팁' 이라 할만 하군요..
/etc/skel 경로에 사용자의 웹경로(public_html)나
필요에따라 적절히 수정한 shell rc 파일들을
미리 만들어 두면 계정추가 명령 하나로 모든 작업이
끝나겠지요.
예를들어 사용자의 웹문서 경로를 public_html 대신 htdocs로 지정하려면 /etc/skel/htdocs 라는 경로를
만들고 httpd.conf(srm.conf)의 UserDir에 반영해주면됩니다.
이제 남은건 디렉토리 퍼미션 문제인데, 이 문제 또한 일부러 사용자 홈디렉에 chmod 명령을 쓰지 않고도
사용자 계정 추가시 기본값을 지정할 수 있습니다.
/etc/login.defs 파일의 하단에 아래와 같은 umask값을 지정해 주면 됩니다.
UMASK 072
170번: 초가 35 ☞ 계정&homepage&cgi&shell 스크립트
글쓴이: 쉬이이 [홈페이지] 글쓴날: 1999-07-22 17:51:35 읽은수: 970
/etc/httpd/conf/httpd.conf에 있는 설정 몇 개만 바꾸면된다.
# UserDir: ~user 요청을 받았을 때 사용자의 홈 디렉토리 뒤에 추가할
# 디렉토리 이름.
#
# 주의 : 알짜 리눅스 시스템에서는 사용자가 자신의 홈 디렉토리에 public_html
# 디렉토리를 만들어도 외부에서 홈 페이지를 볼 수 없다.
# 왜냐하면 각 계정 홈 디렉토리에 대한 보안을 중요하게 생각했기 때문에
# 홈 디렉토리에 대하여 사용자 계정과 사용자 자신의 그룹 이외에는
# 아무런 접근 허가권도 갖고 있지 않기 때문이다.
#
# 개인 홈 디렉토리를 가질 사람은 chmod a+x ~ 명령을 일단 실행해주어
# (보통) nobody 권한의 아파치 프로세스가 홈 디렉토리에 접근할 수
# 있도록 허가해주어야 한다.
# 물론 public_html과 홈 페이지 파일에 대하여 모든 사용자가 최소한
# 읽기 권한은 갖도록 설정해주어야 한다.
#
UserDir /home/
자신의 계정에서 cgi & shell 로 짠 것을 계정의 홈페이지 것을 해주기 위해서는
# ScriptAlias: 서버 스크립트를 포함하는 디렉토리를 제어한다.
# ScriptAlias는 근본적으로 Alias와 같으나 가리키고 있는 실제 디렉토리
# 안에 들어있는 문서를 실행 프로그램으로 취급하여 실행한다.
# 맨 뒤에 붙는 "/" 에 대한 규칙은 Alias와 마찬가지이다.
#
#ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"
Alias /cgi-bin/ "/home/httpd/cgi-bin/" #루트에 대한 별칭
Alias /alex-bin/ "/home/alex99/cgi-bin/" #계정에 관한 별칭
AddType application/x-httpd-cgi .cgi
AddType application/x-httpd-cgi .pl
#
# "/home/httpd/cgi-bin" 부분은 ScriptAlias로 별칭 처리된 실제 CGI
# 디렉토리로 설정해야 한다.
<Directory "/home/httpd/cgi-bin">
AllowOverride None
Options FollowSymLinks Includes ExecCGI
Order allow,deny
Allow from all
</Directory>
<Directory "/home*"> # 각 계정에 관한 별칭
AllowOverride All
Options FollowSymLinks Includes ExecCGI
</Directory>
<Directory "/home/alex99/cgi-bin/"> #자신의 계정에 관한 설정
AllowOverride All
Options Indexes FollowSymLinks Includes ExecCGI
Order allow,deny
Allow from all
</Directory>
다음과 같이 설정하고 데몬을 새로 실행하면 됩니다.
$ /etc/rc.d/init.d/httpd restart
하고 자신의 홈에서 index.html 만들고 테스트 해보세요..
글고 쉘 스크립트를 사용하기 위해서는 index.shtml 로 바꾸어야 합니다 ssi 맞게
바꾸어 주어야 합니다.
그럼.. 이만...
130번: root외의 계정에서 X로 로긴하기........
글쓴이: 봄내음 글쓴날: 1999-06-24 11:13:19 읽은수: 623
linux6.0를 설치하고 다시 부팅을 하면 보기 좋은 x화면이 나옵니다.
여러가지로 재미있는 프로그램들도 많고 신기한 것들도 많지요.
그래서 여러가지로 해 보다가 이젠 나만의 계정을 가지고 로긴하여
일을 해보리라 하고 그룹을 만들고 유저를 등록하고 로그 아웃을
합니다. 그리고는 나의 계정으로 로긴합니다.
그런데 어쩜 좋아요... 계속 로긴 화면만 나오잖아요 ...
어떻게 된 일이죠 ?
걱정하실 필요 없습니다. 다시 root로 로긴하여 /root 밑에 있는
.x11amp 디렉토리를 카피하여 나의 홈 디랙토리로 넣으시고
퍼미션 변경하시고 그다음은 적절히 변경해야될 사항을 변경하시면
root외의 다른 계정에서도 X를 볼 수 있습니다.
kde도 마찬가지 입니다.
53번: 초가17 ☞ 완전초보자용,삼바설정법(윈도에서계정접속)
글쓴이: 쉬이이 글쓴날: 1999-05-23 00:51:37 읽은수: 1274
글쓴이 : 쉬이이
멜 : alex99@chongju.ac.kr
인지 사항 : 알짜5.2 깔면 삼바는 구동되고 있고
/etc/smb.conf 를 편집 하면 됨
/home/httpd/html/index.html 을 자신인 구성한 홈페이지
로 바꾸면 삼바 일 분활용...
접속방법 : http://IP 만약 DNS등록되어 있으면 도메인
아... 감이 잡히나요...
환경: 윈도98, MMX400 , 128M , 10G
리눅스 , MMX200, 32M , 3.4G
추신: vi 사용 법은 맨아래
반드시 알아야 삼바가 되는 사항도 맨 아래...
===================================
[global]
# workgroup = NT 도메인 이름 또는 워크그룹 이름
workgroup = HCI_LAB ;네트웤 환경시 자신의 그룹
# server string 은 란 NT 설명 필드와 같은 것입니다.
server string = 청눅스 화이팅... ; 멘트
# 클라이언트 코드 페이지 (한국어 = 949)
client code page = 949
# 이 옵션은 보안과 관련하여 중요한 것입니다. 이 옵션을 통해 여러분의 근거리
# 네트웍에 있는 호스트에게만 접근을 허용할 수 있습니다.
# 다음 예는 2 개의 C 클래스 네트웍과 "loopback" 인터페이스에 대해서만
# 접근을 허용하고 있습니다. 문법 예는 smb.conf 맨페이지를 참고하시기 바랍니다.
hosts allow = 203.252.233. 203.252.231.
→ 계정 접속이 가능한 아이피 C 클래스까지만 써줌..
# 프린터 설정을 개별적으로 하지 않고 자동으로 프린터 목록을 포함시키길
# 원한다면 다음 옵션을 사용합니다.
# printcap 에서 정의한 프린터 목록이 자동으로 등록됩니다.
# load printers = no 이면 하나하나 정해주셔야 합니다.
load printers = yes
# 다음은 삼바로 하여금 자신에 접속하는 호스트 별로 개별적인 기록 파일을
# 만들도록 지시합니다.
# "/var/log/samba/log.접근호스트이름"과 같은 파일명을 가집니다.
# %m 은 삼바 설정에서 사용되는 특수한 변수입니다.
log file = /var/log/samba/log.%m
# 로그 파일 크기의 상한선을 Kb 단위로 설정합니다.
max log size = 50
# 보안 모드입니다. 대부분의 사람들에겐 user 레벨의 보안이 맞습니다.
# 자세한 내용은 security_level.txt 문서를 참고하십시오.
# 참고로 user 는 유닉스 계정이름/패스워드 방식의 보안 등급이며
# share는 워크그룹 포 윈도우즈(WfW)와 윈도95의 기본 모드입니다.
# server의 경우에는 인증을 위해 NT 서버가 필요합니다.
security = share → 윈도에서 보려면 반드시 해주어야 함
# 패스워드 암호화를 사용하고 싶을 때가 있을 겁니다. 삼바 문서 중에서 ENCRYPTION.txt, Win95.txt, WinNT.txt 를 꼭 읽어보시기 바랍니다. 이 문서를 착실히 읽지 않은 상태에서 다음 옵션을 설정하지 마십시오. 윈도우즈NT 4.0 서비스 팩 3 번 이상인 시스템에서는 패스워드 암호화가 필요합니다.
encrypt passwords = yes
smb passwd file = /etc/smbpasswd
→ 삼바에 계정과 암호를 확인 하는 파일 정보.. 중요
# 대부분의 경우 다음 옵션을 주면 성능 향상 효과를 볼 수 있습니다.
# 자세한 사항은 speed.txt 와 맨 페이지를 참고하십시오.
socket options = TCP_NODELAY
# 삼바가 여러 개의 인터페이스를 사용하도록 설정합니다.
# 여러 개의 네트웍 인터페이스를 가지고 있다면 그 인터페이스들을 모두 나열하십시오. 자세한 사항은 맨 페이지를 참고하십시오.
다음 예는 삼바 서버가 192.168.12.2, 192.168.13.2 이렇게 두 개의 주소를 가지고 있고 24 비트 즉 넷매스크 255.255.255.0 를 사용하여
192.168.12.0, 192.168.13.0 네트웍의 호스트에 대해서 받아들입니다.
; interfaces = 192.168.12.2/24 192.168.13.2/24
→ 설절해주어도 됨 ;만 풀면됨..
# 지역적인 서브넷에 자기 자신을 공표하도록 설정합니다.
# 윈도우즈 네트웍 환경에서 삼바 서버가 잘 보이도록 할 때 유용합니다.
remote announce = 203.252.233. 203.252.231.
→윈도에서 잘 보이게 하는 설정
# DNS 프록시 - 삼바로 하여금 DNS nslookup 을 사용하여 NetBIOS 이름을 찾을
# 것인지 아닌지 지시합니다.
# 1.9.17 버전에서는 내부 기본값이 yes 였으나 1.9.18 버전에서는 no 로
# 변경되었습니다.
dns proxy = no
# 대소문자 보존이 필요할 때가 있습니다. 시스템 기본값은 NO 입니다. 주의: 각 공유별로 설정할 수 있습니다. 한글을 제대로 보기 위해서는 구별해야 합니다.
preserve case = yes
short preserve case = yes
#=============== 공유 정의 ====================
[homes]
comment = 홈 디렉토리
browseable = no
writable = yes
# 주의: BSD 스타일의 프린트 시스템(현재 대부분의 리눅스 시스템이 그러함) 이라면 각각의 프린터를 정의해 줄 필요 없이 자동으로 이뤄집니다.
[printers]
comment = 모든 프린터
path = /var/spool/samba
; print ok = yes → 해줄 필요 없음..
browseable = no
# guest ok = yes 라고 하면 'guest account'로 지정한 사용자들이 프린팅을 할 수 있습니다. public = yes 도 같은 표현입니다.
guest ok = no → 게스트도 사용가능 하게 함.. 전 막았음..
writable = no
printable = yes
# 다음은 사람들이 파일을 공유할 수 있도록 할 때 유용합니다.
# 주의: /tmp 는 시스템의 임시 작업 공간이므로 /var/tmp 와 같은 곳에 커다란 파티션을 마운트하고 그곳을 사용하도록 하는 것이 좋습니다.
지금부터는 임의로 정의 가능한 공유 설정의 예입니다. 다음 설정들을 보면서 여러분이 원하는 공유를 정의해보시기 바랍니다.
→ 읽기만 하는 공유 디렉토리 생성...
;[tmp]
; comment = 임시 파일 공간
; path = /tmp
; read only = no
; public = yes
# 저 같은 경우는 씨디롬 자동 fstab에 설정 해놓고
공유시켰음... 계정 있는 사람만 들을 수있음 .게스트 허락하면
게스트도 읽을 수있음..
[MUSIC] → 윈도에서 보이는 이름..
comment = 노래를 즐기자...
path = /mnt/cdrom
valid users = ackbar alex99 → 읽을 권한을 가진 사람.
read only = yes
# 다음 항목은 두 사용자가 어떻게 한 디렉토리를 공유하여 사용하게 할 수 있는지
# 예시하고 있습니다. 이 설정이 제대로 작동하려면 디렉토리는 두 사용자에 의해
# 쓰기 가능해야 하며 스틱키(sticky) 비트를 설정하여 서로의 파일에 대하여
# 악의적인 행동을 취할 수 없도록 해줘야 합니다. 이런 방법으로 여러 사용자가
# 한 디렉토리를 안전하게 공유하도록 확장할 수 있습니다.
;[myshare] → 위의 내용을 바탕으로 하면 됨...
; comment = Mary와 Fred의 것
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765
******** vi 사용법 ***********
vi 파일명
인스키 → 글자를 쓸수 있음 지우기 → 딜리트
저장 → 쉬프트 + 디 + 디 혹은 ESC 하면 밑에 :wq 하면 저장됨
한 줄 지우기 → ESC 하고 디디 하면 됨..
리눅스에 계정이 있는 사람은 반드시 다음을 해여 윈도에서 보임
[alex99@chongnux init.d]$ smbadduser
----------------------------------------------------
Written: Mike Zakharoff email: michael.j.zakharoff@boeing.com
1) Updates /etc/smbpasswd
2) Updates /etc/smbusers
3) Executes smbpasswd for each new user
smbadduser unixid:ntid unixid:ntid ...
Example: smbadduser zak:zakharoffm johns:smithj
---------------------------------------------------
위의 설명과 같이
smbadduser alex99:alex99
첫번째는 유닉스 아이디 : 두번째는 윈도계정이름
기타 암호를 넣고 확인 바람 ...
[alex99@chongnux /etc]$ cd rc.d/init.d/
[alex99@chongnux init.d]$ ./smb stop
→ 바뀐 설정 확인===> 일단 정지
[alex99@chongnux init.d]$ ./smb start
→ 다시 시작
→ 되는지 확인
드디어 대망의 순간 윈도에서 네트웤에 그룹으로 들어가서
일단은 프린터 추가 해서 드라이버 설치
두번째는 이것 저거 ...음악도 듣고...
세번째는 홈페이지 만들기 ((( 지금 만들고 있음)))
먼 곳에 친구의 리눅스에 자신의 계정 있다면 테스트 해봐요..
안 되면 제가 계정 하나 만들어 줄께요.. 선착순 10명...
테스트 버전이니까 사용기간은 ??? 농담임..
절실한 분만 받음... 구하는 자에게 테스트의 기회를..
: 계정을 만들면 디폴트로 700 퍼미션이 주어집니다.
: 예를 들어 kildong 이라는 계정이 있으면... /home/kildong 의 퍼미션이
: drwx------ 이렇게 되어있죠....
:
: 그래서 계정 사용자들은 홈페이지를 만들기 위해서 자신의 홈디렉토리를
: 주로 755로 바꾸어 놓습니다.
:
: 그런데 홈디렉토리를 755로 해두면, 자신의 재산을 남에게 다 주는 꼴이
: 되어 버리는데... 이걸 711로 바꾸시면, 뭐 그래도 찾아서 보는 방법은
: 있지만... 일단 755 보다는 안전하고, homepage 접근도 가능 합니다.
:
: 더 좋은 방법 있으면, 여기에 적어주시거나, 제게 메일 주시면 감사하겠습니다.
permission을 705나 701은 어떤가요?
뭐 757도 괜찮을것 같기는 하지만 7은 좀 그러니까 705가 가장 적당한것 같던데...^^
(제 경험상)
11번 글의 답장글: RE: root로 외부에서 접속하기?
글쓴이: 소닉 글쓴날: 1999-04-25 17:28:02 읽은수: 630
:
: ^^ 이것은 굉장히 나쁜 방법입니다. ^^
:
: root 로그인은 머신 내에서만 이루어 져야 마땅합니다.
:
: 그러나 저같이 리눅스 초보에게는 리눅스의 환경이
:
: 마당치 않습니다. 솔직히
:
: 하지만 윈도우즈에서 점차 사각이 변해 가고 있습니다.
:
: 이때 갈구하게 된게 머신 아닌 다른 곳에서 root로 접속하는 방법이었습니다.
:
: 이쓸가요?
:
: 있죠 ^^
:
: /etc/securetty를 지우십시오 ^^
:
: 그럼 root로 접속이 됩니다.
:
: 그리고 이건 백업 용으로 사용하십시오.
:
: root로 ftp에 접속할 수있는 방법입니다.
:
: /etc/ ftpuser에 있는 root아이디를 지워 줍니다. ^^
:
: 이렇게 하면 root로도 접속이 됩니다. ^^
음... 이런 방법도 있었군요.
하지만 시스템의 중요 보안 자료를 지운다는 것은 좀 위험하지 않나 싶네요.
전 이런 방법을 사용합니다.
우선 일반 ID로 접속을 합니다.
접속이 완료되고 로긴한 후에
$>su root
해서 루트로 변신(?)한후 사용하면 되지요.
행복하세요.
275번 글의 답장글: RE: [참고] MySQL의 Root Password 설정.
글쓴이: 정순형 [홈페이지] 글쓴날: 1999-10-13 10:19:58 읽은수: 473
:
: PhpMyAdmin 이라는 툴을 사용하다가 깜짝 놀란 일이 있어 말씀
: 드립니다. PHPMyAdmin 은 Web상에서 local 서버의 DB를 시각적으로
: 조절하고 처리할 수 있는 툴입니다.
:
: WWW 계정으로 이를 깔고, 실행을 시켰는데 local 서버의 모든
: DB 가 보이고 안으로 들어가서 Insert, Delete를 할 수 있었습니다.
:
: 이게 어떻게 가능할까 하다가 잠시 생각해 보니, MySQL의 root에
: 설치 당시에는 패스워드가 null로 되어 있음이 떠올랐습니다.
:
: 만약 Remote로 DB를 공격할 경우, root패스워드가 없으므로
: 앉아서 당할 수 밖에 없습니다.
:
: 그러므로 이 글을 읽으시는 분들께서는 자신의 DB 루트 패스워드를
: 걸어 주시는 것이 좋을 듯 합니다.
:
위 설정은 아주 중요하다고 생각됩니다.
하지만 조금더 보안을 생각한다면
웹으로 phpmyadmin을 접근할 때 인증을 거치도록
아파치 인증처리를 해두는 것입니다.
$dbconn = mysql_connect("localhost","mysql","");
설정방법 :
# 첫번째 ..
vi /etc/httpd/conf/httpd.conf
<Directory /home/httpd/html/phpmyadmin>
AuthType Basic
AuthName Administrator
AuthUserFile /home/httpd/html/.htpasswd
AuthGroupFile /dev/null
<Limit GET POST>
require valid-user
</Limit>
</Directory>
위 내용을 아파치 환경설정 파일에 추가해 줍니다.
다소 경로는 틀려질 수 있습니다.
# 두번째
cd /home/httpd/html
[root@kwangju mail]# htpasswd -c .htpasswd root
New password:
Re-type new password:
Adding password for user root
이렇게 하면 인증 사용자 ID와 Password가 등록됩니다.
일단 root사용자만 등록했지만 다수의 사용자를 등록할 수 도 있습니다.
# 세번째
아파치 다시 뛰우기
cd /etc/rc.d/init.d/
./httpd restart
이제 모든 설정은 끝났습니다.
웨브라우져에서 phpmyadmin을 다시 읽어보면 인증여부를 확인할 수 있겠지요..
phpmyadmin은 편리한 디비 관리 툴이지만 보안과 아주 밀접한 관계가 있고 또한 어떻게 생각하면 아주 무시무시한 툴이 될 수도 있습니다. 이점에 유념해서 꼭 위 설정을 해두시기 바랍니다.
377번: --skip-grant와 root패스워드..(mysql패스워드를 잃어 버렸을시)
글쓴이: 영중아찌 [홈페이지] 글쓴날: 2000-01-20 02:17:59 읽은수: 217
mysql 패스워드를 잊어버리시면 황당할 겁니다.
저와 같이 멍청한 녀석에게는 히히(바부온달)
먼저..음냐..
ps ax | grep mysqld 하면 프로세스 번호가 다 나옵니다. 다 아시겠지만여.
kill -9 process_number을 합니다. 모든 넘버들을..
그리고 다음과 같이 명령을 내립니다.
shell> /usr/local/bin/safe_mysqld --skip-grant &
[1] 962
bash-2.03# kill: 959: No such process
Starting mysqld daemon with databases from /var/db/mysql
daemon을 죽일때 kill -9을 사용하지 않으면 No such process가 안 뜹니다.
음냐 이젠 루트 패스워드에 패스 워드를 넣어야 겠죠?
다 아시겠지만 mysql셀 상에서 음냐...
다음과 같이 하시면 됩니다.
update user set password=password('newpassword') where user = 'root';
하시면 됩니다.
음냐 그리고 mysql 데몬을 다시 죽입니다. 그리고 다시 띠우시면 됩니다.
그러면은 패스워드를 입력해야 겠졍..크크
최종 수정일 : 2000-11-22Simplicity is the ultimate sophistication. 함용대 hamyd@bigfoot.com
|