電子書籍の厳選無料作品が豊富!

私はLinux(FC2)サーバーをレンタルし、コントロールパネルはPleskです
セキュリティの都合上、全ユーザーにSendmail等を許可するのは危ないと思い、悩んでいます。
特定ユーザーにのみSendmailを許可したり
「.htaccess」の設置制限をかけたいと思っています。
ですが、検索しても方法が見つからず分からないでいます。
制限する方法はありませんでしょうか

A 回答 (6件)

sendmailの方は、今ひとつ目的やユーザに許している作業環境が掴めていないので回答保留します。


単純に、sshなどのコンソール画面から特定のソフトの実行を抑制したいのであれば、No.1さんの方法くらいしか思いつかないですね。

で、.htaccessですが、リモートログインを行い、WWWコンテンツなどの設置を許可しているんであれば、.htaccessの設置そのものの抑制は無理です。(.htaccess自体はただのファイルですので)
それよりも、Apache(ですよね?)の設定で.htaccessを無効化した方がよいでしょう。
"AllowOverride" をキーワードにして、Apacheのマニュアルを調べてみてください。

ちなみにエラーの件:
> >chgrp root.smok /usr/sbin/sendmail
> エラーで出来ませんでした。

これは、オーナーをroot、グループをsmokにすることだと思うので、chownを使用するのが正解です。
 # chown root.smok /usr/sbin/sendmail
最近はこのように書くみたいですけども。(詳しくはman chownしてください)
 # chown root:smok /usr/sbin/sendmail

この回答への補足

回答ありがとうございます。ですが
chown root:smok /usr/sbin/sendmail
で、グループに出来たものの、
usermod -G smok test
で、[test]にグループ権限?を与え、
No.1さんの言うようにパーミッションを750にすると、オーナーでさえもSendmailを使うことが出来なくなってしまうのです。
やはりやり方がおかしいのでしょうか。

補足日時:2005/02/28 18:21
    • good
    • 0

No.2, No.4 です。


ちょっと(かなり)間があいてしまいましたm(__)m

基本的にFTPだけのアクセス、ということですと、コマンドの実行はApacheからCGIを経由して、というのが殆ど唯一の方法になるのですね。

CGIからのsendmail使用を、ユーザ単位で制限しようとすると、Apacheでの設定をフルに活用することになると思います。
おそらく、ユーザ毎に環境を変えて使用できるコマンドを制限することになるのではないでしょうか?(このあたりは正直あまり自信がないです)

回答になっていなくて申し訳ないですが、この程度のことしか言えません。m(__;)m

それから、telnet / ssh のアクセスは、可能なら拒否しておいた方がセキュリティ的には良いでしょう。

この回答への補足

ありがとうございます。
なんとなくLinuxに慣れだしたのでもう少し調べようと思います。
ありがとうございました。

補足日時:2005/03/24 22:21
    • good
    • 0

No.2, 4です



ユーザがサーバにアクセスする方法として許可しているのはどの方式ですか?
WWW (http)のみ? FTPは? ssh / telnetは?

WWW / FTP でのアクセスであれば、Apache上の設定で何とかする話になると思います。
ssh / telnetでのアクセスを許可しているとなると、"chmod" "chown"を使ったアクセス制御になるでしょう。

この回答への補足

アップロードにはユーザー毎にFTPアカウントを作成しています。sshやtelnetは公開していないだけでもしかすると可能かもしれません
LinuxやApacheを勉強しようと思い、Web検索や書籍を数冊購入しているのですがc等の言語と違うのでコツがつかめないのです
すいません。

補足日時:2005/03/09 01:49
    • good
    • 0

No.2です。



> CGIでSendmailを使っています。

CGIはWWWサーバのユーザ権限(設定によって異なります。Linuxだとnobodyまたはapachが多い)で各コマンドを起動しますから、パーミッションを750にすれば起動しないのも無理はありません。

ユーザに許可している操作や環境が異なれば、質問への回答も違ってきます。
ある前提では正しい答えも、別の前提では間違えていることは多々あります。私が最初にsendmailについてコメントした際も、「sshなどのコンソール画面から特定のソフトの実行を抑制したいのであれば」という前提をつけていますよね?
まずは「どのような環境でユーザにサーバを使用させるのか」をはっきりさせてください。

この回答への補足

すいません。書き直します。
私はApache・Linux・Fedora Core2でホームページスペースを提供しています。
しかし、Sendmail等はCGIを使えば大量なメールを簡単に送ることが出来てしまうので特定のユーザーにしか使用できなくしたいのです。
こういうことでよろしいのでしょうか。回答の意味を取り違っていたらすいません。

補足日時:2005/03/07 10:14
    • good
    • 0

> パーミッションを750にすると、オーナーでさえも


> Sendmailを使うことが出来なくなってしまうのです。
「使う事が出来なくなる」を詳しく教えて欲しい。つかえなくて「どうなる」のか。
1.command not found
2.なんか変なメッセージが出る
3.何も起こらない
など。

ところで、/usr/sbin/sendmailは実体だろうか?(シンボリックリンクでないという意味)
シンボリックリンクの場合、オーナーユーザとオーナーグループはリンク先の実体を変えてあげないといけない。
具体的には、シンボリックリンクに対してchmodとchownを実行すると、chmodは実体に対して行われるがchownはリンクに対して行われる。

#ls -la /usr/sbin/sendmail

として、実体なのかリンクなのか調べると良いだろう。

仮に、ここで実体が/var/qmail/bin/sendmailであり、このファイルが750でqmail.qmailだったとすると、/usr/sbin/sendmailのオーナーであろうrootでさえも実行する事ができなくなる。

-rwxr-x--- qmail qmail /var/qmail/bin/sendmail
lrwxrwxrwx root smok /usr/sbin/sendmail -> /var/qmail/bin/sendmail

と言えば説明がつくだろうか。つまり、sendmailを750に変えたは良いが実体のオーナーがrootで無く、かつrootはqmailグループに属していないのでsendmailが実行できない、という訳だ。

まぁ、可能性でしかないけど・・・・。

この回答への補足

まだ試していないのですが先にSendmailがどうなるのかだけでもお伝えしておきます。
私はサーバーにそれほど詳しくないのでコマンドからSendmailを起動させること?が出来ないので、CGIでSendmailを使っています。
今思えばオーナー権限ではないような気がしてきましたが、Sendmailパーミッションを750にするまえならそのCGIのSendmail結果は「OK」が返ってきてメールも届きますが、750に変更すると「ERROR」が返ってきてやはりメールも届かないでいます。

補足日時:2005/03/03 18:39
    • good
    • 0

sendmailの方の解説を。


一般的にそういう場合はグループを作る。smgroupなどというグループを作り、sendmailのオーナーをroot.smgroupに、アクセス権限を750に変更だ。で、使用を許可したいユーザにsmgroupグループを付与する。すると、オーナーであるrootと、smgroupグループにも属するユーザだけがsendmailを使用できるようになる。

Pleskというのは一切知らないので具体的なやり方はちょっと分かんない。コンソールがあるならchownとchmodとusermodだ。

.htaccessの作成権限を制御するのは・・・・分かんない。

この回答への補足

ありがとうございます。教えていただいたように、SSHにて変更を試みたのですが、何故か出来ませんでした。
素人なもので、私のやり方がおかしかった可能性が高いのでコマンドを記述しておきます。もし変な部分があれば指摘していただけると幸いです。

>chgrp root.smok /usr/sbin/sendmail
エラーで出来ませんでした。

>groupadd smok
>usermod -G smok test
>chgrp smok /usr/sbin/sendmail
>chmod g=rx /usr/sbin/sendmail
>chmod o= /usr/sbin/sendmail

補足日時:2005/02/25 22:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!