これが私の状況です:チームが共有するためにUbuntu 14.04Webサーバーをセットアップしています。チームにvar/www/html
内のすべてへの読み取り/書き込みアクセス権を持たせたい(すべてのファイルとフォルダーのCHMOD 775
と同じ)。
私の問題は、Mac上のSFTPクライアント(Transmit、Cyberduck、およびFileZilla)が、私が設定したデフォルトのアクセス許可を尊重しないことです。
数時間後、私は目標を達成するために多くのステップを歩きました。
チームの権限を設定します:
myteam
グループを作成しましたmyteam
グループに追加しました/var/www/html
のグループ所有権をmyteam
に変更しましたこの時点で、ls -la
の/var/www
は
drwxrwsr-x 2 marcelo myteam 4096 Jul 20 13:29 html
デフォルトのUMASKを設定します:
/etc/ssh/sshd_config
をSubsystem sftp /usr/lib/openssh/sftp-server -u 002
に更新しました。/etc/pam.d/sshd
と/etc/pam.d/login
を新しい行session optional pam_umask.so umask=0027
で更新しました/etc/pam.d/common-session/
を新しい行session optional pam_umask.so
で更新し、/etc/login.defs
を編集して、 この質問 に基づいてUMASK行をUMASK 002
に変更しました。この時点で、シェルを介してサーバーにSSHで接続すると、umask
コマンドは002
を報告し、すべての新しいファイルとフォルダーには正しいアクセス許可があります。ただし、Transmit、Filezilla、Cyberduckなどを介してサーバーにSFTPで接続し、ファイルまたはフォルダーを作成すると、ファイルはrw-r--r--
に、フォルダーはrwxrwsr-x
にデフォルト設定されます(フォルダーは正しい) 。チェックしたところ、FTPクライアントはアクセス許可を上書きしていません-それらは無効になっています。
これは常緑の問題であり、何度も議論されました。私はここに短い答えを書きました:
https://superuser.com/questions/937003/setting-default-group-permissions-via-sftp/937735#937735
基本的にあなたは最後のコメントを使って自分自身に答えました。 SFTPは元のアクセス許可を保持し、そこからumask
を切り捨てます。