2017-04-13 1 views
0

私はgitリポジトリを持っています。ファイルの1つに "chmod 6775"を使用してsetuidを設定してから変更をコミットする必要があります。ファイルに対してsetuidを設定し、gitを使ってrepositroyに変更を保存します。

しかし、これらの変更は、そのリポジトリを別のホストにダウンロードしても表示されません。

After commit: 
-rwsrwsr-x 1 root stuff 51804 Apr 13 18:05 cli-0-38 

After download: 

-rwxrwxr-x 1 root stuff 51804 Apr 13 18:05 cli-0-38 

あなたがそれを達成するためにどのようにアドバイスをしてくださいでした:私は「S」または属性の「S」記号は表示されないのですか?

答えて

2

Gitは(残念ながら)完全なファイルモードを追跡することはありません。それは実行可能ビットだけを追跡し、そのためにも、ユーザ単位/グループ/その他ではなく、ファイル全体の単一ビットを追跡します。だからgitを使ってこの設定を追跡することはできません。

たとえば、さまざまな "chmod u + s filename"操作を保存する小さな "setup.sh"シェルスクリプトを作成し、新しいクローンを実行した後にそのスクリプトを実行するか、引く。

+0

ありがとう!しかし残念ながら、SaltとCFengの設定を編集しなければなりません。 – user54

+0

特権ではなく細かく追跡するアクセス許可はバグです。実際には、Git初期の "フィーチャー"でしたが(そして後で削除されました)、結果として、 'git fsck'は、BLOBオブジェクトが' 664'モード、グループ書き込み許可、 '644' 、それなし。これにより、フィーチャであると考えられたときに作成されたリポジトリを使用することができます。 – torek

1

あなたの.gitフォルダには、設定が表示されます。 このようなものを探します。

[コア]

ファイルモード=それはとても本当ではなく、これをfalseに変更するか、またはあなたが使用できる場合には、

Gitの設定core.filemode真

+0

[core] repositoryformatversion = 0 filemode = trueが以前に設定されていました。 – user54

+0

まあ、私はごめんなさい知らない。幸運が助けになる! – Nathan

関連する問題