シェルで「umask 77」を試してから、次のようにビルドしました。
[non-root-user@machine SPECS]$ rpmbuild -bb SPECFILE.spec
しかし、私はまだ出力からこれを取得しています:
+ umask 022
シェルで「umask 77」を試してから、次のようにビルドしました。
[non-root-user@machine SPECS]$ rpmbuild -bb SPECFILE.spec
しかし、私はまだ出力からこれを取得しています:
+ umask 022
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
umask を変更することは、あなたがすべきことではないと思います。RPM から出力されるファイルのパーミッションに不満があると思います。そのためには、セクションで%attr()
and%defattr()
を使用する必要があります%files
。