rootユーザーのログインを許可しないことでLinuxサーバーを保護したいと思います。そのために別のユーザーを作成しました。
useradd username
mkdir /home/username/
mkdir /home/username/.ssh
chmod 700 /home/username/..shh
chown username:username /home/username -R
passwd username
新しいユーザーとしてログインすると、ルートディレクトリは/home/username
現在のところ通常の動作です。ただし、通常は別のディレクトリにアクセスする必要があります。この/root/exampledirectory/
アクセスは拒否されました。
username
ユーザーが/root/exampledirectory
SSHを使用してログインしたときにこのディレクトリを開始点に設定してアクセスできるようにSSHを設定するにはどうすればよいですか?
chown username:username /root/exampledirectory -R
動作しません。開始ディレクトリは常にありhome/username
、他のディレクトリにはアクセスできません。
この問題にどのように対処する必要がありますか?
ベストアンサー1
私はあなたがしていることを達成するより良い方法があると思います。私のルートディレクトリへのアクセスを許可するには注意が必要ですが、以下は1つのアプローチです。
ユーザーのルートディレクトリの下にあるこのディレクトリにアクセスするには、サンプルディレクトリまでのディレクトリに対する権限が必要です。確認するために例を作成しました。私の考えに良いアプローチは、新しいグループを作成することです。ルートトラバースと呼ぶこともできます。sudo groupadd root-traverse
次に、このグループにユーザーを追加しますsudo usermod -aG root-traverse your-username
。これにより、ユーザーがアクセスroot-traverse
できるすべてのものにアクセスできます。グループを適用するには、ログアウトして再度ログインすることを忘れないでください。またはこれを実行して、現在のグループにいることをsu your-username
確認してください。id
root-traverse
その後、root権限にグループを追加する必要がありますroot-traverse
。私はACLで行うことを好みます(もし〜しなければならない)。これは、よりきめ細かい権限にアクセスする方法です。sudo setfacl -m g:root-traverse:rx /root
。これにより、グループにルートディレクトリに入り、その中にあるファイル/フォルダを一覧表示するのに十分な権限が与えられます。セキュリティに関する限り、私はまだこれが好きではありませんが、それはまさにそれです。
ほぼ完了しました。これで、アクセスしたいディレクトリには次のものが必要です。 /root/ sudo chown -R root-traverse: /root/exampledirectory
exampledirectorysudo chmod -R 770 /root/exampledirectory
ディレクトリをこのディレクトリに変更したり、その中にファイルを追加して編集したりすることもできます。そこからSSHセッションを開始するには、スクリプトを/ home / your-username / binまたは必要な場所に保存できます。vim ssh-script.sh
#!/bin/bash
# Start ssh session in preferred directory
ssh -t xxx.xxx.xxx.xxx "cd /root/exampledirectory ; bash --login"
私はこれがトリックを行う必要があると思います。chmod +x ssh-script.sh
作成したスクリプトを実行可能にすることを忘れないでください。その後、タスクを実行するか、./ssh-script.sh
パスに含まれている場所に置き、通常のコマンドのように実行できますssh-script
。頑張ってください!
編集:しばらくすると、バインドマウントを使用してそのサンプルディレクトリをホームディレクトリにマウントし、そこでACL権限を設定できます。今はルートディレクトリへのアクセスを許可しません。