我想为其他用户的home文件夹的子文件夹设置一个jailed的SFTP帐户,但是希望该子文件夹中的所有者保持不变,包括由sftp用户上传和创build的新文件和文件夹,同时仍允许访问该子文件夹的文件和文件夹就像SFTP用户是父用户一样。
rawny拥有这个/ home / rawny / sftp < – rawny也拥有这个,但是bawb-sftp可以上传到它,编辑文件等
bawb-sftp上传一个文件/home/rawny/sftp/lol.txt rawny应该仍然拥有这个文件,就好像他是在第一个地方做的那样,即使bawb-sftp是上传的文件。
基本上我想我要求一个sftp监狱,作为一个非常有限的passthrough / puppet为另一个用户?
假设Linux,使用一个组是一种方式去这里。 创build一个同时包含rawny和bawb-sftp ,并使用chgrp thatgroup /home/rawny/sftp (假设以空目录开始,否则为recursion添加-R)。
接下来,在目录上设置suid和sgid位,并给予用户和组rwx访问权限: chmod 677? /home/rawny/sftp chmod 677? /home/rawny/sftp (用任何你想要的世界访问来代替?常用的select是5(rx)1(x)和0,这取决于你是否希望其他人访问它。)如果该文件夹不是空的, 不要使用-R,你需要将suid / sgid / x位分别应用到每个文件夹。
suid / sgid位在Linux中的目录中使用时,会导致新创build的文件和子目录自动被归为/分组,与目录一样(子目录也将是suid / sgid),因此所有在/home/rawny/sftp下创build的文件将由rawny所有,并在该thatgroup以便bawb-sftp可以访问它们。 请注意,可能需要修改umask以创build具有组写入权限的文件( 请参见此处,但与umask 00一起使用?其中?是2 6或7,与前面的选项相匹配)