3

シェルで「umask 77」を試してから、次のようにビルドしました。

[non-root-user@machine SPECS]$ rpmbuild -bb SPECFILE.spec 

しかし、私はまだ出力からこれを取得しています:

+ umask 022 
4

2 に答える 2

3

rpmbuild は常にスクリプト0022を実行する前に固定の umask を設定するため、シェルから umask を変更することはできません。%prep

%prepしたがって、達成しようとしていることに応じて、仕様ファイルのセクションの最初にある umask を変更してみることができます。

%prep
umask 077

ただし、RPM 内のファイルのファイル許可を設定しようとしているだけの場合、標準的な方法は、セクションでディレクティブ%defattr%attrディレクティブを使用することです。%files

  • %defattrファイルとフォルダーのデフォルト属性を設定します。

    %defattr(<file mode>, <user>, <group>, <dir mode>)
    

一部の属性はダッシュに置き換えることで省略できます (ファイルはこれらの属性が適切に設定された状態でインストールされるため)

  • %attr単一のファイルまたはフォルダーの属性を設定します。

    %attr(<mode>, <user>, <group>) file/folder
    

特定の属性を指定する必要がない場合と同様%defattrに、ダッシュに置き換えることができます (たとえば、 と一緒に使用して%defattr、その属性のデフォルト値を維持できます)。

完全な例:

%files
# set default attributes for all files and folders:
%defattr(644, root, root, 755)
# make a file executable:
%attr(755, -, -) /usr/bin/myexec
# set a different owner for a file:
%attr(-, myuser, -) /var/log/mylog.log
# set different permissions, owner and group for a file:
%attr(600, myuser, mygroup) /home/myfile

詳細と例については、http://www.rpm.org/max-rpm-snapshot/s1-rpm-specref-files-list-directives.htmlおよびhttp://www.rpm を
参照してください
。 org/max-rpm/s1-rpm-anywhere-specifying-file-attributes.html

于 2012-09-20T21:15:29.020 に答える
0

umask を変更することは、あなたがすべきことではないと思います。RPM から出力されるファイルのパーミッションに不満があると思います。そのためには、セクションで%attr()and%defattr()を使用する必要があります%files

于 2012-09-21T09:18:17.650 に答える