1

私はしばらくの間、さまざまなケースで umask/パーミッションの問題と戦ってきました。/etc/init/php-fpm.conf ファイルで www-data (nginx/php-fpm で実行) の umask が 002 になるように設定しました。私のデプロイヤー ユーザーも /home/deployer/ で 002 の umask を持っています。 .bashrc. アプリケーション ファイルはすべて 0660 パーミッション (ディレクトリの場合は 0770) を持っているため、両方が読み書きできます (デプロイヤのメイン グループは www-data です)。ただし、この umask が受け入れられず、ファイルが 644 または 640 に設定されているケースに何度も遭遇します。

私の現在のケースは、次のオプションを使用して、ansible スクリプトを使用して root として SSH 接続する場合です。

sudo: yes
sudo_user: deployer

ansible で作成されたファイルは、644 のファイル権限を取得しています。umask が設定されている場所と、umask を追加する場所を確認するにはどうすればよいですか?

第二に、展開を行うためのより良い方法はありませんか? この問題を完全に回避し、すべての展開作業を www-data ユーザーとして実行したいのですが、明らかにそれはセキュリティ上の問題です。この umask は非常に複雑な展開です。

ありがとうございました。

4

2 に答える 2

0

おそらく Unix のフレーバーによって異なりますが、HP-UX のページにsshdは、ユーザーが SSH 経由で正常にログインした場合の手順の 1 つが次のように記載されています。

 Reads the file ~/.ssh/environment, if it exists, and users are
 allowed to change their environment.  See the
 PermitUserEnvironment option in sshd_config(5).

そのため、ファイルを作成して、/home/deployer/.ssh/environmentそこにも umask を設定してみてください。

これはおそらくあなたの状況には当てはまりませんが、SFTP の場合sftp、コマンドを含めることで、転送されるファイルのシステム全体の設定を行うことができます

SftpUmask 002

ファイル/opt/ssh/etc/sshd_configまたはマニュアルページに記載されているものは何でもsshd_config

于 2014-10-29T16:24:03.640 に答える