33 posts tagged with "linux"
View All TagsLinux 유저 비밀번호 변경
passwd
리눅스 유저 비밀번호를 변경해보자. 비밀번호를 변경하고 싶은 유저로 로그인을 한 뒤 아래 명령어를 날리면 된다.
passwd
Root 권한이라면 다른 아이디의 비밀번호도 변경이 가능하다.
## passwd 뒤에 유저아이디를 적는다
$ passwd userid
cron 부팅시 프로그램 실행
리눅스에서 재부팅시 자동으로 프로그램을 실행해야하는 경우가 있다. init.d에 등록하는 방법이 있지만 스케쥴 작업인 경우 크론에서 관리하는게 깔끔한 것 같다.
예제
$ crontab -e
@reboot /test/test.sh start
@reboot를 쓴 뒤 부팅시 실행시킬 명령어를 적어주면 된다.
내부 아이피 사용 또는 수동 네트워크 설정시 오류
수동으로 내부 아이피 세팅 중 문제가 발생하는 경우 확인해봐야한다.
NetworkManager
네트워크 매니저가 돌아가고 있으면 충돌이 발생할 수 있다.
## 확인
$ service NetworkManager status
## 서비스 종료
$ service NetworkManager stop
## 부팅 서비스 삭제
$ chkconfig NetworkManager off
내부 IP 확인
/sbin/ifconfig $1 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
정상적으로 할당될 것이다.
mysql, maria 등의 서비스 포트 변경이 안 될때
일반적인 포트 변경
포트 확인
## grep 뒤에 확인할 포트를 적으면 된다.
$ netstat -lp | grep 3307
iptable 수정
$ vi /etc/sysconfig/iptables
## 해당 포트를 방화벽에서 열어준다.
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3307 -j ACCEPT
database 포트 변경
$ vi /etc/my.cnf
## 포트가 설정되있는 부분을 찾아 변경한다.
port = 3307
서비스 재시작
service mysql restart
잘 했는데 서비스가 올라가지 않는다!!!
원인
로그 확인
mysql 설치 경로로 이동하여 로그를 살펴보자.
$ cd /var/lib/mysql/ # basedir 설정이 되어있다면 해당경로를 덧붙힌다.
$ cat {hostname}.err
[ERROR] Cant start server: Bind on TCP/IP port. Got error: 13: Permission denied
[ERROR] Do you already have another mysqld server running on port: 3307 ?
[ERROR] Aborting
해당 포트에 권한이 없다. 해당 포트를 다른 mysqld 서비스가 사용하는가? 라고 로그가 남겨져있다.
SELinux 확인
$ sestatus
SELinux status: enabled
혹시나 역시나 SELinux가 활성화 되어있다. SELinux에서 포트가 서비스용으로 활성화가 되지 않았기 때문에 계속 거절당한 것이였다.
해결
SELinux 설정 확인
semanage 명령어를 사용해서 확인하고 변경 할 수 있다. 명령어 실행이 안될 경우 policycoreutils-python 패키지를 설치해주면 된다.
## semanage 설치
$ yum install -y policycoreutils-python
## 포트 확인
## mysql
$ semanage port -l | grep mysqld_port_t
## http
$ semanage port -l | grep http_port_t
mysqld_port_t tcp 1186, 3306, 63132-63164
변경하려는 3307 포트는 등록되어 있지 않다.
SELinux에 포트 등록
semanage port -a -t mysqld_port_t -p tcp 3307
명령어가 iptables에 등록하는 것과 유사하다.
확인
$ semanage port -l | grep mysqld_port_t
mysqld_port_t tcp 3307, 1186, 3306, 63132-63164
이제 mysql restart를 하면 정상적으로 구동된다.
여담
리눅스에서 정상적으로 진행했는데 뭔가 안된다면 SELinux부터 의심해보자.
Temporary failure in name resolution, 일시적인 실패
모듈 설치시 domain을 사용하거나, telnet 도메인 포트를 호출해봤는데 name resolution에서 일시적인실패 또는 Temporary failure 문구의 에러가 보이는 경우가 있다.
원인
nameserver를 찾지 못해서 발생한다.
해결
Root 계정으로 접속 후 nameserver 설정을 추가한다.
$ vi /etc/resolv.conf
## 아래 내용을 추가
nameserver 58.227.193.227
nameserver 221.143.20.131
저장하면 서비스 재시작이 필요없이 바로 적용된다.
여담
- 통신사별 DNS 정보 페이지를 첨부한다.
- 아마존 DNS 오류로 이 페이지의 조회수가 급증했다.