Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> LinuxシステムFAQ >> Linuxの通常アカウントは1024以下のポートにバインドされています

Linuxの通常アカウントは1024以下のポートにバインドされています

  

最初に昨日オープンデマンドを受け取りました:

このマシンで通常のアカウントを個別に開くことができます、必要な権限はudp 53ポートにバインドできます

このアカウントは開発者向けです。


この要件を見てください。非常に単純ですが、実際には技術的な問題がいくつかあります(Linuxの普通のユーザーとは関係ありません)。ポートを1024以下に設定してください。

当時は、開封作業を遅らせることのないように、テストマシンのルートを指定してから戻って問題を解決してください。



次に、基本的に2つの解決策があることをGoogleは知っています。

1、一般ユーザーに特定の許可を与えるにはsudoを使用するのが一般的です。しかし、これはルートを与えることとは異なります、あなたはsudoを維持する必要があります。


2. debianシステムには、小さなプログラムauthbindがあります。これにより、プログラムはroot権限を使用せずにシステム1024以下の特権ポートをバインドすることができます。

authbindを呼び出すと、authbindはいくつかの環境変数を呼び出して、プログラムを特権付きポートにバインドできるようにします。


Ubuntu 12.04 install authbind

apt-get install authbind


authbindの使い方は?構成ファイル域によって使用されるデフォルトの構成ファイル域は、/etc /authbindディレクトリーにあります。このディレクトリーには、byport、byaddr、byuidの3つのディレクトリーがあります。

テストアカウントがある場合は、ポート80をバインドするプログラムを実行します。

byportディレクトリに80個のファイルを作成します。/etc /authbind /byport /80、テストアカウントに80個のファイルを設定します。 80ファイルにテストでアクセスできる場合は使用許可、バインディングは成功し、それ以外の場合はバインディングは失敗です。


特定の操作:

chmod 755 /etc /authbind /port /80

chown test.test /etc /authbind /port /80 < Br>

起動したいコマンドの前にauthbind --deepコマンドを追加します。


ポートを直接そのアドレスにバインドし、byaddrの下にip:portファイルを作成することもできます。

自分のテストアカウントにアクセスできる限り、byuidディレクトリにuidファイルを作成することもできます。そうしないと、バインドは失敗します。



3番目の、centosの実装

authbindはdebianに基づいているので、yumにソースは見つかりません。Googleはこれに対応するものを見つけることができません。 Rpm;

githubから見つけられる:https://github.com/tootedom/authbind-centos-rpm


下に、rpmbuild -v -bbの指示に従ってください--clean SPECS /authbind.specには2つの問題があります。

1、パスエラー

[root @ stat authbind]#rpmbuild -v -bb --clean SPECS /authbind.spec < Br>

エラー:ファイル/root/authbind/SOURCES/authbind_2.1.1.tar.gz:そのようなファイルまたはディレクトリはありません


2、ビルドディレクトリの生成に失敗しました

[root @ stat authbind]#rpmbuild -v -bb - クリーンスペック/authbind.spec

実行中(%prep):/bin /sh -e /var /tmp /rpm-tmp。 6tbsn7

+ umask 022

+ cd /root /authbind /authbind /BUILD

/var/tmp/rpm-tmp.6tbsn7:26行目:cd:/root /authbind /authbind /BUILD:そのようなファイルまたはディレクトリはありません

エラー:/var/tmp/rpm-tmp.6tbsn7(%prep)からの不正な終了ステータス



RPMビルドエラー:

不正な終了ステータスf Rom /var/tmp/rpm-tmp.6tbsn7(%prep)


rpmbuildには馴染みがありませんが、SOURCES /authbind_2.1.1.tar.gzを抽出後、直接Makefileを見つけました。正常にインストールされました。

[root @ stat authbind-2.1.1]#make

cc -g -O2 -Wall -Wwrite-strings -Wpointer-arith -Wimplicit -Wnested-externs -Wmissing-prototypes - Wstrict-prototypes -DMAJOR_VER = '' 1 '' -DMINOR_VER = '' 0 '-DLIBAUTHBIND =' '/usr/local/lib/authbind/libauthbind.so.1"' -DHELPER = '" /Usr /local /lib /authbind /helper" '-DCONFIGDIR ='" /etc /authbind" '-D_GNU_SOURCE -c -o authbind.o authbind.c

cc -g authbind.o-o authbind

cc -g -O2 -Wall -Wwrite-strings -Wpointer-arith -Wnested-externs -Wmissing-prototypes -Wstrict-prototypes -DMAJOR_VER = '" 1"' -DMINOR_VER = '" 0 "-DLIBAUTHBIND = '" /usr/local/lib/authbind/libauthbind.so.1"' -DHELPER = '" /usr /local /lib /authbind /helper"' -DCONFIGDIR = '" /Etc /authbind" '-D_GNU_SOURCE -c -o helper.o helper.c

cc -g helper.o -o helper

cc -D_REENTRANT -g -O2 -Wall -Wwrite-文字列-Winterinter-arith -Wimplicit -Wnested-externs -Wmissing-prototypes -Wstrict-prototypes -DMAJOR_VER = '' 1 '' -DMINOR_VER = '' 0 '' -DLIBAUTHBIND = '' /usr/local/lib/authbind/libauthbind.so.1" '-DHELPER ='" /usr /local /lib /authbind /helper" ' - DCONFIGDIR ='" /etc /authbind" -D_GNU_SOURCE -c -o libauthbind.o -fPIC libauthbind.c

ld - 共有 - 名libauthbind .so.1 -o libauthbind.so.1.0 libauthbind.o -ldl -lc

[root @ stat authbind-2.1.1]#

[root @ stat authbind-2.1.1] ]#

[root @ stat authbind-2.1.1]#make install

install -o root -g root -m 755 -d /usr /local /lib /authbind /usr /ローカル/共有/man /man1 /usr /local /共有/man /man8

インストール-oルート-gルート-m 755 -s認証バインド/usr /local /bin /。

-o root -g root -m 644 libauthbind.so.1.0 /usr /local /lib /authbind /をダウンロードします。

strip --strip-不要/usr/local/lib/authbind/libauthbind.so。 1.0

ln -sf libauthbind.so.1.0 /usr/local/lib/authbind/libauthbind.so.1

install -o root -g root -m 755 -s helper /usr /local /lib /authbind /。

chm /usr /local /lib /authbind /helper

インストール-oルート-gルート-m 755 -d /etc /authbind \\

/etc /authbind /byport /Etc /authbind /byaddr /etc /authbind /byuid


[root @ stat] authbind-2.1.1]#cd /etc /authbind /

[root @ stat] Authbind]#ls

byaddr byport byuid


authbind --deepの後、Linux共通アカウントは1024以下にバインドされます。

この記事は「マイクの操作とメンテナンスの方法」ブログからのものです。必ずこのソースを保管してくださいhttp://xiaomaimai.blog.51cto.com/1182965/1437027

Copyright © Windowsの知識 All Rights Reserved