私はDebianサーバーを持っており、そのサーバー上のフォルダーのサブツリーへの読み取り専用アクセスを複数のユーザーに許可したいと思います。すべてのファイルとフォルダーの権限を手動で変更せずにこれを行う方法はありますか?
本当にそれらを可能な限り制限したい場合は、chrootされたsshインストールを検討することをお勧めします。そうすれば、たとえツリーを分割できたとしても、基盤となるシステムをトロールすることはできません。
Debianの人たちは、このテーマに関するガイドを利用できます。
rsshはまさにそれを行います。 pizzashack.orgから :
rsshは、OpenSSHで使用するための制限付きシェルであり、scpまたはsftp、あるいはその両方のみを許可します。 rdist、rsync、cvsのサポートも含まれるようになりました。たとえば、シェルアクセスを提供せずに、ユーザーがscpを介してファイルをコピーすることのみを許可するサーバーがある場合は、rsshを使用してそれを行うことができます。 rsshが機能することがわかっているプラットフォームのリストについては、プラットフォームサポートページを参照してください。
元の(openbsdからの)sshdは、sshd_configから引用して、完全なchrootを実行できます。
ChrootDirectory
Specifies a path to chroot(2) to after authentication. This
path, and all its components, must be root-owned directories that
are not writable by any other user or group. After the chroot,
sshd(8) changes the working directory to the user's home directo-
ry.
The path may contain the following tokens that are expanded at
runtime once the connecting user has been authenticated: %% is
replaced by a literal '%', %h is replaced by the home directory
of the user being authenticated, and %u is replaced by the user-
name of that user.
The ChrootDirectory must contain the necessary files and directo-
ries to support the user's session. For an interactive session
this requires at least a Shell, typically sh(1), and basic /dev
nodes such as null(4), zero(4), stdin(4), stdout(4), stderr(4),
arandom(4) and tty(4) devices. For file transfer sessions using
``sftp'', no additional configuration of the environment is nec-
essary if the in-process sftp server is used, though sessions
which use logging do require /dev/log inside the chroot directory
(see sftp-server(8) for details).
The default is not to chroot(2).