GNU/Linux >> Linux の 問題 >  >> Linux

別のユーザーおよびグループとしてファイルを作成しますか?

ローカルに書き込むファイルをダウンロードするためにrsyncする必要があるbashスクリプトがあり、所有者をapacheに設定し、グループを特定のユーザーグループ(apacheはメンバーではない)に設定する必要があります。

rsyncプロセスによって書き込まれているときに、これらの所有権を持つファイルを作成する方法はありますか? chmodを使用して、事後にそれらを調べて変更する必要はありませんか? ファイルが非常に多いため、後でそれらを処理するのにかかる時間は法外です。

複数のユーザーグループに対してこれを行う必要があるため、これらのグループにApacheを追加するべきではなく、すべてをデフォルトグループにすることはできません。

言い換えると、XがYのメンバーでない場合に、rootがユーザーXおよびグループYとしてファイルを作成する方法はありますか?

runuserを使用してみましたが、グループを設定できません(おそらく、apacheがグループに属していないためです)。

chmodを使用して権限を変更し、ユーザーとグループの組み合わせを追加できることを知っています。私が求めているのは、書き込み用にファイルを開いて、作成中にユーザーとグループの組み合わせを使用する方法があるかどうかです。

sudoの使用を試みます:

[[email protected] tmp]# groups angelo
angelo : angelo wheel
[[email protected] tmp]# groups apache
apache : apache
[[email protected] tmp]# sudo -u angelo -g apache touch angelo-file
Sorry, user root is not allowed to execute '/bin/touch angelo-file' as angelo:apache on centos7
[[email protected] tmp]# ls -ld angelo-file
ls: cannot access angelo-file: No such file or directory
[[email protected] tmp]# sudo -u angelo -g angelo touch angelo-file
[[email protected] tmp]# ls -ld angelo-file
-rw-r--r-- 1 angelo angelo 0 Nov 12 03:13 angelo-file

承認された回答:

chownを使用せずに、特定のユーザーおよびグループとしてファイルを作成する場合 、sudoを使用できます ユーザーとグループを指定します:

sudo -u #49 -g #58 touch /tmp/something

指定するユーザーには、これを試みるディレクトリへの書き込み権限が必要であることに注意してください。

または、グループを別のグループに設定して、現在のユーザーとしてシェルを起動することもできます:

sudo runuser "$USER" -g somegroup

私はこれをVagrantボックスで試しましたが成功しました:

[[email protected] ~]$ sudo runuser "$USER" -g floppy
[[email protected] ~]$ touch testfile
[[email protected] ~]$ ls -l testfile
-rw-r--r--. 1 vagrant floppy 0 Nov  9 15:57 testfile
[[email protected] ~]$ 

これは、「気まぐれな」ユーザーが「フロッピー」グループに属していないにもかかわらずです。

関連:Php:image2wbmp —画像をブラウザまたはファイルに出力します
Linux
  1. ファイルパーミッションにおけるユーザーとグループ所有者の優先順位?

  2. 一部のアプリケーションでグループとユーザーを作成することが推奨されるのはなぜですか?

  3. ファイルを作成してファイルシステムとしてマウントする方法は?

  1. cPanelでMySQLデータベースとユーザーを作成する

  2. Ubuntuでスワップファイルを作成および削除する

  3. Linux でファイルとディレクトリのアクセス許可/所有権を管理する方法

  1. Linuxでユーザーグループを作成および削除する方法

  2. zip ファイルを作成し、ディレクトリ構造を無視する

  3. root と sudo の違いは何ですか?