알아두면 편리할 간단한 스크립팅 입니다.


특정 유저 리스트만 서버에 생성한다던지 삭제할 때

미리 텍스트파일에 해당 유저의 계정명만 적어두고, 스크립트로 일괄 처리하기 입니다.

당연히 방법은 여러가지가 있겠지만 for 문 사용해서 작성해보겠습니다.


[ 특정 유저 생성하기]

1) userlist.txt 파일에 생성할 유저를 나열합니다. 

vi userlist.txt

test1

test2

test3

.

.



2) useradd.sh 라는 파일을 작성 합니다

vi useradd.sh

#!/bin/sh                        // 스크립트 종류 정의

for i in `cat userlist.txt`            // cat userlist.txt 의  출력 결과를 i 변수에 선언함

do                // i 변수에 들어갈(in)  `cat userlist.txt` 가 끝날 때까지 반복

useradd -d /home/$i $i                // 해당 명령어를 실행

done                    // cat userlist.txt 의 결과가 끝나면 종료.



3) 결과 확인

cat /etc/passwd

apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

guest:x:1002:1002::/home/guest:/bin/bash

test1:x:1003:1003::/home/test1:/bin/bash

test2:x:1004:1004::/home/test2:/bin/bash

test3:x:1005:1005::/home/test3:/bin/bash


아주 간단 합니다.

삭제도 마찬가지 겠죠?

do done 안에 들어갈 실행 명령어를 userdel $i 로 해주면 되겠습니다. 






블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

제 스타일식 VM ( CentOS 7.6 ) 세팅 후 초기 설정하는 내용입니다.

=============================================


[ 업데이트 및 기본 사용자 설정 ] 
## SSH Root 직접 로그인 금지
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config

## 일반유저 계정 생성
useradd -d /home/test test
echo "1234" | passwd test --stdin

## Selinux DISABLE
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

## Minimal Package 에서 개발자도구와, 기본 net-tools , 모니터링 도구 설치, 커널 및 보안 업데이트
yum -y groupinstall "Development Tools" 
yum -y update && yum -y upgrade
yum -y install epel-release 
yum -y install net-tools sysstat ntsysv lshw perl vim-enhanced wget htop iftop telnet

## Hostname 을 원하는 내용으로 지정
echo "TEST01" > /etc/hostname

## DNS Resolve 파일 설정 ( DHCP 서버를 쓰거나, ifcfg에 DNS1,DNS2 세팅했다면 필요 없음. networkmanager 기반의 네트워크 세팅일 경우에도 필요없음 ) 
echo -e "nameserver 168.126.68.1\nnameserver 8.8.8.8" > /etc/resolv.conf

## 로컬 시간 설정
ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

## 명령어 알리아스 추가
echo "alias vi='vim'" >> /root/.bashrc

## root 터미널 색깔 변경
echo "PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h:\[\e[33m\]\w\[\e[0m\]# '" >> /root/.bash_profile

## SAR 수집주기 변경
perl -pi -e 's/10/1/g' /etc/cron.d/sysstat

## 로긴시 출력 메세지
echo "
//////////////////////////////////////////////////////////////////////////////
TEST VM Machine #01 
//////////////////////////////////////////////////////////////////////////////" > /etc/motd
echo "

## Syslog 설정(sulog 는 secure 로그로 대체가능하지만, 별도 설정 했습니다)
echo "SULOG_FILE /var/log/sulog" >> /etc/login.defs
echo "authpriv.info /var/log/sulog" >> /etc/rsyslog.conf
echo "local1.* /var/log/bashlog" > /etc/rsyslog.d/90-bashlog.conf

systemctl restart rsyslog.service
chmod 600 /var/log/sulog
echo "*.crit;*.warn;*.alert;*.emerg;*.err;authpriv.* /var/log/rsyslog" >> /etc/rsyslog.conf
systemctl restart rsyslog.service
perl -pi -e 's/rotate 4/rotate 24/g'  /etc/logrotate.conf

## CentOS 에서 rc.local 자동 사용시 유저권한에 +x 추가.
chmod u+x /etc/rc.d/rc.local

## 로그클리어
dmesg -c

[ /etc/profile 에 history 타임스탬프 추가. 빨간 \는 "를 입력하기 위한 정규식 이스케이프. ] 
echo -e "export HISTSIZE=9999\nexport HISTFILESIZE=9999\nexport HISTTIMEFORMAT=\"%Y-%m-%d [%H:%M:%S]\"  \n" >> /etc/profile
source /etc/profile

===================================================


블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,