- 2014.11.18
1. useradd -D
하나의 명령어이며, 유저 생성에 대한 기본 설정
useradd에 대한 기본 설정 출력
# cat /etc/default/useradd
GROUP=100 // -g : /etc/group d에 user 번호가 100이다. 즉 user 생성 시 자신의 이름으로 그룹 생성하라는 설정번호
HOME=/home // -b
INACTIVE=-1 // -f : 계정 만료 시 어떻게 할 것인가?
-1 : 기능정지 / 0 : 사용정지
EXPIRE= // -e YYYYMMDD
SHELL=/bin/bash // -s
SKEL=/etc/skel // 옵션 x, vi로만 편집
CREATE_MAIL_SPOOL=yes
[문제1]
shell : tsch -> 문서를 이용한 변경
$home : /test -> 명령어를 이용한 변경
skel : /skelsam -> 문서를 이용한 변경
user : user7
변경을 한 후 useradd user7 입력 후 user7이 정상적으로 로그인되는지 확인
vi /etc/default/useradd 를 통해 바꾼다.
useradd -D -b /test 로 바꾼다.
없는 디렉터리 생성한다.
계정생성하고 passwd 바꾸고 실행하면 됨
[문제2]
파일 /backup/grub.conf 를 디렉터리 /usertest/test/public 에 grub로 복사후 열기
5번째줄 하단에 리눅스 IP의 출력내용을 삽입
(eth로 시작하는것만 삽입하고 lo로 시작하는 것은 제외)
skel로 사용할 디렉토리 /test/ut/ 에 파일 conf로 저장후 열기
디렉터리 /usertest/ 에 사용자 user8 생성
이때 파일 conf가 .conf로 자동생성되도록 해보세요.
절대 기본정보 쓰지않고 옵션만을 통해서 작업하세요
# mkdir -p /usertest/test/public
# cp /backup/grub.conf /usertest/test/public/grub
# vi /usertest/test/public/grub
:5r! ifconfig eth0
-> lo 로 시작하는 부분 삭제
!mkdir -p /test/ut/
:w /test/ut/.conf
# cp /etc/skel/.* /test/ut/
# cp -r /etc/skel/.gnome2 /etc/skel/.mozilla /test/ut/
# useradd -d /usertest/user8 -m -k /test/ut user8
# passwd user8
[문제3]
문서를 이용한 기본 skel 변경 : /test/ut
사용자 : user9
명령어 : useradd user9
# vi /etc/default/useradd
/etc/skel -> /test/ut
# useradd user9
# passwd user9
2. usermod
user modify
usermod [option] [argument] ... [account_name]
# tail -5 /etc/passwd
testtt:x:513:513::/usertest/testtt:/bin/bash
user6:x:514:514::/linux/user6:/bin/bash
user7:x:515:515::/test/user7:/bin/tcsh
user8:x:516:516::/usertest/user8:/bin/bash
user9:x:517:517::/home/user9:/bin/bash
-u -g -c -d -s
*
-l : user 이름 변경, -p : passwd 변경이지만 사용하지 않는 것이 편함.
만들고 난 후기 때문에 skel 은 변경 불가능
[문제1]
user3 의 home directory를 gangnam -> user3 로 변경
# usermod -d /linux/user3 user3
# ll /linux
합계 8
drwx------ 4 user3 user3 4096 2014-11-17 14:13 gangnam
drwx------ 4 user6 user6 4096 2014-11-18 12:52 user6
# mv /linux/gangnam/ /linux/user3/
하지만 user3 로그인 시 /linux/user3/ 이 아닌 / 에서 로그인이 된다.
passwd 는 동사무소와 같다. 동사무소에 신고한 뒤에 실제로 이사를 해야한다.
# mv /linux/gangnam/ /linux/user3/
# ll /linux
합계 8
drwx------ 4 user3 user3 4096 2014-11-17 14:13 user3
drwx------ 4 user6 user6 4096 2014-11-18 12:52 user6
[문제2]
Q : user2 : testuser -> usertest
A : # usermod -c usertest user2
Q : user7 : tcsh -> bash
A : # usermod -s /bin/bash user7
Q : user9 : comment -> lastuser
A : # usermod -c lastuser user9
[문제3]
samadal 포함 모든 사용자를 /export/home/ 으로 변경하세요
변경후 정상로그인되는지 확인
# mkdir -p /export/home/
# mv /linux/user3 /export/home/
# mv /usertest/ /export/home/
# mv /export/home/usertest/* /export/home/
# mv /linux/user6/ /export/home/
# mv /test/user7/ /export/home/
# mv /home/samadal/ /export/home/
# mv /home/us* /export/home/
각자의 home directory 경로를 /export/home/ 으로 변경
치환 명령어 사용하면 편하다. ex) %s//home//export/home
# vi /etc/passwd
'Study > CentOS' 카테고리의 다른 글
[11] 허가권, 소유권, chmod, chown, chgrp (0) | 2015.03.28 |
---|---|
[10] userdel, groupadd, groupdel, 계정 잠그기 (0) | 2015.03.27 |
[08] passwd, shadow, group, gshadow, useradd, passwd, skel (0) | 2015.03.27 |
[07] vi(2), 유용한 vi 명령어 메모 (0) | 2015.03.27 |
[06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집) (0) | 2015.03.27 |
[ hw06 ]
---------------------------------------------------------------------
#1
#include <stdio.h>
int main()
{
int a[10];
int i;
for(i=0;i<10;i++)
{
printf("%d번째 정수를 입력하시오 : ", i+1);
scanf("%d", &a[i]);
}
for(i=0;i<9;i++)
{
if (a[i] > a[i+1]) // 따로 tmp 인수를 만들지 않고 기존의 인수를 활용하려고 하였다.
a[i+1] = a[i];
}
printf("가장 큰 정수값은 %d입니다.\n", a[9]);
return 0;
}
---------------------------------------------------------------------
#2
#include <stdio.h>
#define size_a 10
float max(float *p);
float min(float *p);
float avg(float *p);
int main()
{
float a[size_a];
int i;
float *p;
p = a;
for(i=0;i<size_a;i++)
{
printf("%d번째 체중 : ", i+1);
scanf("%f", &a[i]);
}
printf("최고체중 : %0.1f 최저체중 : %0.1f 평균체중 : %0.1f\n", max(p), min(p), avg(p));
return 0;
}
float max(float *p){
int i;
float max;
for(i=0;i<size_a-1;i++)
{
if (*(p+i) > *(p+i+1))
max = *(p+i);
}
return max;
}
float min(float *p){
int i;
float min;
for(i=0;i<size_a-1;i++)
{
if (*(p+i) > *(p+i+1))
min = *(p+i+1);
}
return min;
}
float avg(float *p){
int i;
float avg = 0;
for(i=0;i<size_a;i++)
avg += *(p+i);
return avg/10;
}
---------------------------------------------------------------------
#3
#include <stdio.h>
double dp(double x, int n);
int main(){
double x;
int n;
printf("x^n 을 계산하는 프로그램입니다. x와 n을 입력하시오. (x, n) :");
scanf("%lf, %d", &x, &n);
printf("%lf의 %d제곱 = %lf", x, n, dp(x, n));
return 0;
}
double dp(double x, int n){
if (n==1)
return x;
else
return x*dp(x, n-1); // 재귀함수 사용
}
---------------------------------------------------------------------
#4 // 구글 검색해서 힌트 얻음
#include <stdio.h>
int gcd(int a, int b);
int main(){
int a, b;
printf("최대공약수를 구할 두 수를 입력하세요(a, b) : ");
scanf("%d, %d", &a, &b);
printf("%d와 %d의 최대공약수는 %d 입니다.\n", a, b, gcd(a, b));
return 0;
}
int gcd(int a, int b){ // 정수론 시간에 배운 내용이었는데,, 이렇게 활용되는구나
if (b==0)
return a;
gcd(b, a%b);
}
---------------------------------------------------------------------
#5
#include <stdio.h>
#include <stdlib.h>
int main(){
int *score;
int sn, i, a, b, c, d, f;
a = b = c = d = f = 0;
printf("학생 수 : ");
scanf("%d", &sn);
score = (int *)malloc(sizeof(int)*sn);
for(i=0;i<sn;i++){
printf("%d번째 학생의 점수를 입력하세요 : ", i+1);
scanf("%d", &score[i]);
if (score[i] >= 90)
a++;
else if (score[i] >= 80)
b++;
else if (score[i] >= 70)
c++;
else if (score[i] >= 60)
d++;
else
f++;
}
printf("\n90점 이상 : ");
for(i=0;i<a;i++){
printf("*");
}
printf("\n80점 이상 : ");
for(i=0;i<b;i++){
printf("*");
}
printf("\n70점 이상 : ");
for(i=0;i<c;i++){
printf("*");
}
printf("\n60점 이상 : ");
for(i=0;i<d;i++){
printf("*");
}
printf("\n60점 미만 : ");
for(i=0;i<f;i++){
printf("*");
}
printf("\n");
free(score);
return 0;
}
---------------------------------------------------------------------
#6
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int num, seed;
int i = 1;
seed = time(NULL);
srand(seed);
num = rand() % 100;
while(1)
{
printf("어떤 숫자일지 맞춰보세요 : ");
scanf("%d", &seed);
if (num == seed){
printf("%d번만에 맞추셨네요~ 짝짝짝\n", i);
break;
}
else if (num > seed ){
printf("더 작은 수를 입력하셨네요~\n");
i++;
}
else{
printf("더 큰 수를 입력하셨네요~\n");
i++;
}
}
return 0;
}
---------------------------------------------------------------------
Windows Server 2012 R2 English Version 기준.
Tools - Group Policy Management 에 접속하여 설정 진행
1. Script 를 이용한 Bandizip 설치
User Configuration - Policies - Windows Settings - Scripts - Logon - Add - BAT file 선택(네트워크 경로로 설정)
bandizip.bat 예제
if exist "C:\Program Files\Bandizip\" goto end
\\AD\MSI\BANDIZIP\BANDIZIP-SETUP-KR.EXE /S
:end
2. Drivemaps - 네트워크 폴더
User Configuration - Preferences - Windows Settings - Drive Maps
오른클릭 - New - Mapped Drive
Action - Create
Location : \\공유서버이름\폴더이름
Label as : 붙여줄 이름
Drive Letter : 드라이브 이름
아래쪽 옵션 중 Hide/Show this drive : Show this drive
3. MSI 파일 설치
Computer Configuration - Software Settings - Software installation
오른클릭 - New - Package - 네트워크 경로로 파일 선택
'Windows > WinServer' 카테고리의 다른 글
Ubuntu 실습을 위한 Hyper-V 셋팅 - Ubuntu Server 버전 백업 (0) | 2015.05.07 |
---|---|
WiFi 네트워크 카드를 Hyper-V 의 네트워크 카드로 활용하기 (0) | 2015.05.07 |
GPO 정책 적용 확인 (0) | 2015.04.09 |
Active Directory 계정 (0) | 2015.03.26 |
Active Directory 소개 및 설치 (0) | 2015.03.26 |