Linuxで特定ディレクトリのみ操作できる権限付きのユーザを作成

Linuxでユーザを作成し、特定のディレクトリのみ操作できるように権限を設定

Linuxでユーザを作成し、SSHやFTPでログインした場合に特定のディレクトリのみ操作できるように権限を設定方法になります。
以下はその手順の概要です。
※rootユーザで操作する場合は、いちいちsudoを付ける必要はないです。また、ディレクトリ名やユーザ名は適宜操作する環境に合わせて読み変えてください。

1. ユーザの作成

まず、新しいユーザを作成します。

sudo adduser 新しいユーザ名

2. 特定ディレクトリの作成

次に、ユーザが操作できる特定のディレクトリを作成します。

sudo mkdir /path/to/特定ディレクトリ名
sudo chown 新しいユーザ名:新しいユーザ名 /path/to/特定ディレクトリ名

3. SSHの設定

ユーザがSSHを使用してログインする場合、sshd_configファイルを編集して、ユーザを特定のディレクトリに制限します。

sudo vim /etc/ssh/sshd_config

sshd_configファイルに以下の設定を追加します。

Match User 新しいユーザ名
    ChrootDirectory /path/to/特定ディレクトリ名
    ForceCommand internal-sftp
    AllowTcpForwarding no

変更を保存してSSHサービスを再起動します。

sudo systemctl restart sshd

4. FTPの設定

ユーザがFTPを使用してログインする場合、vsftpdなどのFTPサーバソフトウェアを使用することが一般的です。
以下はvsftpdの設定例です。

vsftpd.confファイルを編集します。

sudo vim /etc/vsftpd/vsftpd.conf

以下の設定を追加または変更します。

chroot_local_user=YES
allow_writeable_chroot=YES

FTPサービスを再起動します。

sudo systemctl restart vsftpd

これで、ユーザは特定のディレクトリに制限され、その中でのみ操作が可能となります。
サーバの種類やバージョンによっても手順が微妙に変わることがあるので注意してください。