|
|
Linux Tips
サーバー関連
- Samba(2.2.2-ja-0.6 2002/02/07)
- ProFtpd(1.2.1 2002/02/07)
- DNSの設定(BIND 9.1.2 2002/02/07)
- DHCPDの設定(ISC 2.0pl5 2002/02/07)
- Apacheの設定(Apache/1.3.20 2002/02/07)
- Sendmailの設定(sendmail-8.11.4-5,CF-3.7Wpl2-12 2002/02/18)
- qpopperの設定(qpopper4.03 2002/02/18)
システム管理関連
- chkconfig(ブート時の起動アプリ設定)
- networkの再認識
その他
- color-lsの設定
- Emacs
- プログラム(C言語)
(注:以下に記した情報を用いたおこないの結果生じた問題等には一切責任を負いません)
|
Samba(2.2.2-ja-0.6 2002/02/07)
--------------------
1.SWATについて
++++++++++++++
1)/etc/servicesのチェック
swat 901/tcp
2)xinetdを利用している場合
/etc/xinetd.d/swatファイルの
disable = yes
の部分を
disable = no
に変更する
------------
service swat
{
port = 901
socket_type = stream
wait = no
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = no
}
------------
3)Webブラウザで、
http://Sambaサーバ名:901/
でアクセスする
2.Samba起動・設定方法
+++++++++++++++++++++
1)設定ファイル:/etc/smb.confは以下のようにしてみる
---------------
[global]
workgroup = EARTH
server string = Samba Server
security = user
encrypt passwords = Yes
coding system = sjis
client code page = 932
[smbshare]
comment = SMB Shared Folder
path = /home/samba
writeable = Yes
valid users = mirai
force user = mirai
----------------
2)/home/sambaを作成し、書き込み属性を可にしておく
#chmod 777 /home/samba
3)Sambaの起動(chkconfigコマンドでLinux起動時に設定も可)
#cd /etc/init.d
#./smb start
3.Samba2.2.1aからSamba2.2.2日本語版へのVerUp
++++++++++++++++++++++++++++++++++++++++++++
日経Linux 2002.2月号 付属CD-ROM2より
0)/etc以下のファイルのバックアップ
適当なところで
%tar zcvf etc20020129.tgz /etc/*
%echo \n | testparm > ./testparm20.txt
%ln -s /home/samba /var/samba
1)rpmによるSambaのバージョンアップ
%su -
#mount /mnt/cdrom
#cd /mnt/cdrom/article/toku1/samba-2.2.2/turbo
#cp ./samba-2.2.2.ja-4.i586.rpm /usr/local/src
#cd /usr/local/src
#rpm -Uvh samba-2.2.2.ja-4.i586.rpm
2)設定ファイルの移行
適当なところで
%echo \n | testparm /etc/samba/smb.conf > ./testparm22.txt
diffで設定ファイルの確認
%diff ./testparm20.txt ./testparm22.txt
パラメータに問題なければ
#mv -f /etc/smb.conf /etc/samba/
3)その他
注)前のユーザは消えていた
→ユーザを新しく作った
以下、いらないものは消しとく
/etc/codepages/
/etc/smb.conf
--------------------
| top
|
ProFtpd(1.2.1 2002/02/07)
--------------------
VMWareを使いWindows上でLinuxとファイルのやり取りをしようと思ったとき、
Sambaの設定がわからず、とりあえずFTPでできないかと考え、FTPサーバを立ち上げてみた。
(ほんとに立ち上げただけ。設定方法もまともにわからん。けど、一応やりとりできた。)
#/usr/sbin/proftpd ←こんだけ。
設定ファイルは以下。しかしよくわからん。
/etc/proftpd/proftpd.conf
--------------------
| top
|
DNSの設定(BIND 9.1.2 2002/02/07)
--------------------
0)以下のファイルを用意
/etc/named.conf
/etc/resolv.conf
/etc/host.conf
/var/named/earth.or.jp.db
/var/named/192.168.24.db
/var/named/127.0.0.db
/var/named/named.cache
1)各ファイルの内容は以下の通り
/etc/named.conf
---------------
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.cache";
};
zone "earth.or.jp" {
type master;
file "earth.or.jp.db";
};
zone "24.168.192.in-addr.arpa" {
type master;
file "192.168.24.db";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "127.0.0.db";
};
---------------
/etc/resolv.conf
---------------
domain earth.or.jp
nameserver 192.168.24.2
---------------
/etc/host.conf
---------------
order hosts,bind
multi on
---------------
/var/named/earth.or.jp.db
注)BIND 9.1.2 では 昔のBINDとは異なり、以下の注意が必要
(逆引き、ローカルゾーンでも同様)
1)$TTLの行が必要
2)HINFOの行を入れるとだめ
---------------
$TTL 86400
@ IN SOA mei.earth.or.jp. root.mei.earth.or.jp. (
2002012900 ; Serial
3600 ; Refresh
300 ; Retry
360000 ; Expire
86400 ; Minimum
)
IN A 192.168.24.2
IN NS mei.earth.or.jp.
IN MX 10 mail.earth.or.jp.
localhost IN A 127.0.0.1
loghost IN CNAME localhost
mei IN A 192.168.24.2
mail IN CNAME mei
www IN CNAME mei
ftp IN CNAME mei
upa IN A 192.168.24.3
---------------
/var/named/192.168.24.db
---------------
$TTL 86400
@ IN SOA mei.earth.or.jp. root.mei.earth.or.jp. (
2002012900 ; Serial
3600 ; Refresh
300 ; Retry
360000 ; Expire
86400 ; Minimum
)
IN NS mei.earth.or.jp.
IN PTR earth.or.jp.
IN A 255.255.255.0
2 IN PTR mei.earth.or.jp.
3 IN PTR upa.earth.or.jp.
---------------
/var/named/127.0.0.db
---------------
$TTL 86400
@ IN SOA mei.earth.or.jp. root.mei.earth.or.jp. (
2002020300
3600
300
360000
86400)
IN NS mei.earth.or.jp.
0 IN PTR localnetwork.
1 IN PTR localhost.
---------------
/var/named/named.cache
---------------
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
---------------
2)namedの再起動
% su -
#/etc/init.d/named restart
3)nslookup または host コマンドで動作チェック
4)OKなら起動時に実行されるように設定
#/sbin/chkconfig --list | grep named
で確認
#/sbin/chkconfig --level 345 named on
--------------------
| top
|
DHCPDの設定(ISC 2.0pl5 2002/02/07)
--------------------
0)設定ファイルの作成
%su
#touch /etc/dhcpd.conf
1)以下、dhcpd.confの内容
-------------
# created by mirai 2002/02/07
# host's name or IP address
server-identifier 192.168.24.2;
# config of subnetwork
shared-network MYNETWORK {
option subnet-mask 255.255.255.0;
default-lease-time 6000;
max-lease-time 72000;
subnet 192.168.24.0 netmask 255.255.255.0 {
range 192.168.24.3 192.168.24.4;
option domain-name-servers mei.earth.or.jp;
option domain-name "earth.or.jp";
option broadcast-address 192.168.24.255;
option routers 192.168.24.2;
}
}
-------------
2)dhcpdのスタート
#/etc/init.d/dhcpd start
3)起動時に実行されるよう設定
#/sbin/chkconfig --list | grep dhcpd
#/sbin/chkconfig --level 345 dhcpd on
--------------------
| top
|
Apacheの設定(Apache/1.3.20 2002/02/07)
--------------------
0)TarboLinux7.0にはすでにApache 1.3.20がインストール済み
・srcからインストールしたときとは、設定ファイル等が
標準の置き場所とは異なるので注意が必要
・設定ファイルも既にあり(/etc/httpd以下)
・設定ファイル(httpd.conf)の修正が必要
1)/etc/httpd/conf/httpd.confの修正
以下、修正部分
-----------
139,140c139,140
< MinSpareServers 5
< MaxSpareServers 10
---
> MinSpareServers 2
> MaxSpareServers 5
146c146
< StartServers 5
---
> StartServers 2
446,457c446,457
< #
< # AllowOverride FileInfo AuthConfig Limit
< # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
< #
< # Order allow,deny
< # Allow from all
< #
< #
< # Order deny,allow
< # Deny from all
< #
< #
---
>
> AllowOverride FileInfo AuthConfig Limit
> Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
>
> Order allow,deny
> Allow from all
>
>
> Order deny,allow
> Deny from all
>
>
-----------
2)httpdのstart
%su
#/etc/rc.d/init.d/httpd start
3)起動時の設定
#/sbin/chkconfig --level 345 httpd on
--------------------
| top
|
Sendmailの設定(sendmail-8.11.4-5,CF-3.7Wpl2-12 2002/02/18)
--------------------
0.TurboLinux7.0にはsendmail-8.11.4-5,CF-3.7Wpl2-12 2002/02/18がインストール済み
チェック方法は
%rpm -qi sendmail
%rpm -qi CF
1.sendmail.cf(設定ファイル)の作成
%su
#cd /var/src/CF-3.7Wpl2
#cp Standards/sendmail-v8.def ./sendmail.def
以下、オリジナルとのdiff
$ diff sendmail.def Standards/sendmail-v8.def
21,23c21,23
< VERSION=3.7W
< VERSION_SEPARATOR='-'
< LOCAL_VERSION='MailExchanger'
---
> #VERSION=3.7W
> #VERSION_SEPARATOR=
> #LOCAL_VERSION=
31c31
< OS_TYPE=linux-redhat
---
> #OS_TYPE=
35c35
< MX_SENDMAIL=yes
---
> #MX_SENDMAIL=yes
37c37
< MY_DOMAIN=earth.or.jp
---
> ##MY_DOMAIN=
40c40
< MY_NAME=mei
---
> ##MY_NAME=
43c43
< OFFICIAL_NAME='$w.$m' # for V5
---
> #OFFICIAL_NAME='$w.$m' # for V5
62c62
< FROM_ADDRESS='$m'
---
> ##FROM_ADDRESS='$m'
88c88
< ACCEPT_ADDRS='earth.or.jp mei.earth.or.jp'
---
> ##ACCEPT_ADDRS='accept.domain.name1 accept.domain.name2 ...'
594c594
< COPY_ERRORS_TO='postmaster'
---
> ##COPY_ERRORS_TO='postmaster'
2.sendmail.cfの作成
#pwd
/var/src/CF-3.7Wpl2
#make sendmail.cf
3.テスト
#pwd
/var/src/CF-3.7Wpl2
#/usr/sbin/sendmail -bt -C./sendmail.cf
>/parse user@domain(これは自分のドメインなどを入れてみる)
4.現状のsendmail.cfと入れ替え
#cd /etc
#cp sendmail.cf{,.20020218}
#cp /var/src/CF-3.7Wpl2/sendmail.cf .
#/etc/rc.d/init.d/sendmail restart
--------------------
| top
|
qpopperの設定(qpopper4.03 2002/02/18)
--------------------
0.qpopper-4.0.3-0vl1.i386.rpmをVineSeedのFTPサイトからとってきた
1.インストール
%su
# rpm -ivh qpopper-4.0.3-0vl1.i386.rpm
ここで、/etc/inet.conf がないなどといわれるが、無視
/etc/sbin/in.qpopperとしてインストールはされる
pop userも作成される
2./etc/services にはすでに以下が記述されていた
pop3 110/tcp # Post Office
3./etc/xinetd.d/pop-3 を以下のように記述
# less /etc/xinetd.d/pop-3
# default: off
# description: POP-3 Mail Server
# securlevel: 30
service pop-3
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/in.qpopper
server-args = -s
}
4.APOPの設定
(もし存在しないならユーザ 'pop'を作成)
(/usr/sbin/useradd -M -g pop pop -c "Pop Account" -d /dev/null -s /dev/null)
1)qpopperのAPOP用DBを初期化
# /usr/sbin/popauth -init
これで、/etc/pop.auth が作成される
# ll pop.auth
-rw------- 1 pop pop 1552 2月 18 13:26 pop.auth
2)ユーザごとにAPOPアカウントを作成
# /usr/sbin/popauth -user mirai
(削除するときは以下
# /usr/sbin/popauth -dell mirai
ユーザ一覧を見るときは
# /usr/sbin/popauth -list)
5.xinetd を再起動します
# /etc/init.d/xinetd restart
6.以下の手順でテスト
# telnet 10.174.0.21 110 --> IP アドレスの部分はホスト名でも結構です.
Trying 10.174.0.21...
Connected to musume.morning.or.jp.
Escape character is '^]'.
+OK QPOP (version 3.1.2) at musume.morning.or.jp starting. <12345.985249139@musume.morning.or.jp>
user Gotomaki --> 入力
+OK Password required for Gotomaki.
pass xxxxxxxx --> 入力
+OK Gotomaki has 0 visible messages (0 hidden) in 0 octets.
.
quit ---> 入力
+OK Pop server at jean-luc.ayu.or.jp signing off.
Connection closed by foreign host.
--------------------
| top
|
chkconfig(ブート時の起動アプリ設定)
--------------------
%/sbin/chkconfig --list | less
で確認
%/sbin/chkconfig --level 345 smb on
でsmbサービスをRUNレベル3,4,5で起動させる
--------------------
| top
|
networkの再認識
--------------------
1./etc/hostsを書き換えておく
2./etc/sysconfig/network-scripts/ifcfg-eth0を書き換える
3.%su
4.#/etc/sysconfig/network-scripts/ifup
以上でifcfg-eth0に設定したIPアドレス等が有効になる
--------------------
| top
|
color-lsの設定
--------------------
bashの場合
.bashrcに以下を記述
------
## if you use color ls, comment out above line and uncomment below 2 lines.
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.i386.rpm=01;31:*.src.rpm=01;30:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.png=01;35:' ; export LS_COLORS
alias ls='ls --color=auto -NF'
------
--------------------
| top
|
Emacs
--------------------
●X EmacsのCモードでTABが入力できない
*************************************
→関数の中では使えた
●X Emacsコマンド集
*******************
C-x C-f:ファイルを開く
C-x C-s:ファイルをセーブする
C-x C-c:エディタの終了
C-v:次のページへ
ESC v:前のページへ
C-n:次の行へ
C-p:前の行へ
C-a:行の最初に移動
C-e:行の末尾に移動
ESC <:ファイルの先頭へ
ESC >:ファイルの末尾へ
C-l:現在のカーソル行をそのページの真ん中へ
ESC g:指定行へ飛ぶ
C-u 回数 コマンドorキー:コマンドorキーを回数文繰り返す
C-k:その行を削除
C-y:元に戻す
C-kを2回繰り返すとカット、カットした文を挿入したい行でC-yを押すとペーストになる
C-x u:アンドゥ
C-_:これもアンドゥ
C-x C-b:バッファリストを表示する
C-x 1:複数ウィンドウが開いているとき、現在カーソルのあるウィンドウのみ表示する
C-x s:変更したすべてのバッファをセーブする
C-s:ファイル内の文字列検索(カーソル行以降)
C-r:ファイル内の文字列検索(カーソル行以前)
[手順]
1.C-s
2.バッファにI-search:とでる
3.検索したい単語入力
4.C-sでそれ以降の単語に飛ぶ(前方検索ならC-r)
5.終了したいときはESC
--------------------
| top
|
プログラム(C言語)
--------------------
●プログラムでのわからんこと
****************************
以下のものはどのヘッダファイルで定義されているのか?
1.gethostname()で使用するMAXHOSTNAMELEN
→sys/param.h
2.struct sockaddr_in
→arpa/inet.h
3.getservbyname()
→netdb.h
4.se=getservbyname()で取り出したse->s_portは/etc/servicesのポート番号だが…
小さい数(1-101)なら256をかけた数でOK。しかし、512以上ではよくわからん。なぜ?
9999だと3879となった。
5.memset()[ある一定のバイトでメモリ領域を埋める]は何のために使うの?
6.errno,EINTR
→errno.h
7.ブロッキングモードとノンブロッキングモード
→ブロッキングモード:
send()で送信する場合、指定したサイズをすべて送信が終わるまでリターンしない。
エラーの場合はリターンする
recv()で受信する場合、1バイトでも受信できるまで待ち、指定サイズ以内で到着したデータ
を受信してリターンする
ノンブロッキングモード:
send()で送信する場合、可能なサイズだけ送信し、すぐにリターンする
recv()で受信する場合:受信できなくてもすぐリターンする
ブロッキングの変更はfcntl()...fcntl.hをインクルードする必要あり
8.ファイルディスクリプタとは?
9.select()とは?
→select()はいくつかのファイルディスクリプターの状態が変化するのを待つ???
fd_set型変数を使用し、はじめにチェック対象をfd_set型変数に指定する。FD_ZERO()という
マクロに変数のアドレスを渡すとクリアされ、FD_SET()というマクロの第一引数に監視したい
ディスクリプタを渡して変数にセットさせる。FD_ISSET()というマクロで送信・受信のレディ
を調べる
10.CtlキーとCAPSキーの入れ替えはどうやるんだったかな?
11.calloc()の意味と使い方は?
→動的なメモリの確保 malloc()も同じだが、引数の数が違う
int *ptr;
ptr=calloc(100,sizeof(int));
/* or ptr=(int *)malloc(100*sizeof(int));
free(ptr);
12.コンソールへの日本語入力方法(表示)は?
--------------------
| top
|