1

Makefile で使用[/usr/bin/]installして、いくつかのバイナリを自分の$HOMEディレクトリにコピーしています。私の umask は 700 に設定されています。

問題はinstall -D -m 700、バイナリのインストールに使用していて、親ディレクトリが 700 ではなく 755 の権限で作成されていることです。

$ umask
077
$ ls
$ touch hello
$ ls -l
total 0
-rw------- 1 emuso emuso 0 Apr  5 13:15 hello
$ install -D -m 700 hello $PWD/this/is/hello
$ ls -ld this
drwxr-xr-x 3 emuso emuso 4096 Apr  5 13:17 this
$ ls -lR this 
this:
total 4
drwxr-xr-x 2 emuso emuso 4096 Apr  5 13:17 is

this/is:
total 0
-rwx------ 1 emuso emuso 0 Apr  5 13:17 hello

ディレクトリが755ではなく700の権限thisを取得することを望みます。is

私の頭に浮かぶ解決策は次のとおりです。

  1. install -d -m 700ディレクトリ構造を手動で作成するために使用します。
  2. chmodアクセス許可を手動で修正するために使用します。

最初のソリューションの主な欠点は、ディレクトリ構造があり、移動して手動で作成する必要があることです。

私の質問は次のとおりです。「install -D」によって作成されたディレクトリのアクセス許可を制御するエレガントな方法はありますか?

4

1 に答える 1