私は永遠にLinuxのWebホスティングについて愚かです。端末の幅/高さ/長さの問題を処理するエラーを見つけるのではなく、Ubuntu 20.04ローカルコンピュータに複数のbashエイリアスコマンドを設定してscp
ダウンロードするコマンドを実行します。私のgedit GUIにローカルにログインして開きます。
質問:
これで root 以外のユーザーを使用し、root SSH 機能を無効にするベスト プラクティスを学んだので、root ではないユーザーとしてサーバーに SSH を接続するため、機能しないいくつかの bash エイリアス コマンドがあります.ルートになってsudo su
何でもできます(安全とセキュリティのために妥協する価値があります)。
質問:
root以外のユーザーが実行できるように、次のコマンドを変更する方法を知っている人はいますか?
alias pae="scp root@prodserver:/var/log/apache2/error.log ~/Downloads/logs/prod/error-access-logs/prod-apache-error.log && gedit ~/Downloads/logs/prod/error-access-logs/prod-apache-error.log"
alias dbdl="rsnyc -aHAXSv root@prodserver:/dbbackdir ~/Downloads/dbbackups"
上記の各コマンドについて...
root@prodserver
bashエイリアスが以前のエンドユーザーの利便性を維持できるように、それらを交換してコマンドを渡してから、自動的にadminuser@prodserver
管理sudo su
者のパスワードを渡してrootにする必要があります。
私はその点で私の体給よりはるかに優れていました。
どのようなヒントがありますか?
修正する:
ファイルにルートではなくアクセスを追加する方法を示す便利なチュートリアルが見つかりました。残念ながら、書かれた指示に従うことは効果がありません。
root 以外のユーザー apache2 ログへのアクセス許可
https://gist.github.com/angela-d/8a2416034ea7ed89ecde37147e8711ba
注:このチュートリアルでは、Debian 10.5で動作するかどうかを明示しておらず、機能しない理由について説明します。
私は指示通りに走った。setfacl -m g:adminuser:rx /var/log/apache2/*
ただし、getfacl /var/log/apache2/
出力を実行すると確かにこれは、adminuserにrxアクセス権があり、/var/log/apache2/*
rootユーザーのみがアクセスできることを示しています。
また、グループからユーザーに変更しようとしましたが(「g」ではなく「u」を使用)、setfacl -m g:adminuser:rx /var/log/apache2/*
まだ運がありませんでした。
ええと..
答え1
ログファイルを読み取るには、サーバーのルートである必要があるようです。たぶん、次のようなものがあります。
alias pae="ssh prodserver sudo cat /var/log/apache2/error.log" > ~/Downloads/logs/prod/error-access-logs/prod-apache-error.log && gedit ~/Downloads/logs/prod/error-access-logs/prod-apache-error.log"
より多くのファイルが必要な場合は、1つtar
の転送可能ファイルに分割する方法を使用しますが、変更のみを転送する方法(これを行うなどrsync
)については、一般ユーザーを配置できるグループがあることを確認することをお勧めします。その人がファイルを読むことができるように。
答え2
頭の中で迷惑な声を聞きましょう。以前の解決策を再確認したところ、/ varの下のすべてのディレクトリに管理者権限を付与してセキュリティホールが作成されたことに気付いたので、それを削除して引き続き使用します。ルキテイスト「顔に卵が埋められました。 :-)
ちなみに、私はsetfacl -b g:adminuser:rx /var/*
私の愚かさを修正したことがあります。
とにかく、セキュリティホールを作成せずにroot以外のユーザーのApacheログアクセスを変更するには、次のようにしました。
setfacl -m u:adminuser:rx /var/log/apache2/*.log
最後に、apache2 error.logへのアクセス権があることgetfacl /var/log/apache2/
を示しますadminuser
(他の機密ディレクトリはありません)。
そこから新しいマネージャーで元のbashエイリアスをテストしましたが、すべてがうまくいきました。
alias pae="scp adminuser@prodserver:/var/log/apache2/error.log ~/Downloads/logs/prod/error-access-logs/prod-apache-error.log && gedit ~/Downloads/logs/prod/error-access-logs/prod-apache-error.log"
上記のrsyncコマンドに関して最も安全な方法は、データベースのバックアップをユーザーのホームディレクトリに直接保存してから、あまりにも多くの場所に適用しようとしてセキュリティを引き起こすのではなく、そこから自分のローカルコンピュータadminuser
にrsyncすることです。setfacl
穴。