12

%files に次の行がある場合:

%attr(0555, myuser, myuser) /opt/myapp/lib/my.jar

次に、my.jar の所有者は myuser ですが、ディレクトリ /opt/myapp/lib は root による所有者になります。書きたくない

%attr(0555, myuser, myuser) /opt/myapp/lib/

/opt/myapp/lib/ 内のすべてのファイルを含めたくないので。

/opt/myapp/lib/ ディレクトリの所有者を設定するにはどうすればよいですか?

ありがとう。

4

2 に答える 2

20

私はRPMの専門家ではありませんが、私が知る限り、次のように%dirディレクティブを使用できます。

%files
%dir %attr(0555, myuser, myuser) /opt/myapp/lib
%attr(0555, myuser, myuser) /opt/myapp/lib/my.jar

または、さらに簡単です:

%files
%defattr(555,myuser,myuser,555)
%dir /opt/myapp/lib
/opt/myapp/lib/my.jar

%dirディレクティブを使用すると、ディレクトリを追加できますが、その内容は追加できません。

于 2012-04-03T10:33:40.873 に答える
5

他の「非常に役立つ」人々が言うように... %dir は別のものです。解決策は、%attr を使用してディレクトリのユーザーとグループの所有者を設定することです...私は既に %defattr を使用してディレクトリを 755 に設定しているので、%attr 行で単一のダッシュを使用して言います..これを残しますそのままです。

%files
#%attr(<mode>, <user>, <group>) file
#%defattr(file perms, user, group, dir perms)
%defattr(644,apache,apache,755)
%attr(-,apache,apache) /var/www/coolapp
%attr(-,apache,apache) /var/www/coolapp/users
%attr(-,apache,apache) /var/www/coolapp/static
/var/www/coolapp/myDB.sqlite
/var/www/coolapp/__init__.py
/var/www/coolapp/settings.py
/var/www/coolapp/urls.py
/var/www/coolapp/wsgi.py
于 2013-06-05T22:43:59.363 に答える