datagott > comp.os.* > comp.os.linux.overig

Questioneer (22.10.2012, 14:56)
Ik boot Debian Sid vanaf een USB-stick zodat de harddisk zoveel mogelijk in standby mode blijft. Daarom heb ik bestanden die vaak weggeschreven worden, zoals
/tmp, /var/log, /var/lib/dhcp, enzovoort, als tmpfs gemount. Dit werkt prima behalve voor isc-dhcp-server waar het bestand dhcpd.leases aanwezig dient te zijn
(eenvoudig oplosbaar door “touch /var/lib/dhcp/dhcpd.leases” in /etc/init.d/isc-dhcp-server) en de noodzaak van een reeds aanwezige /var/log/apache2 directory.

Voordat ik SELinux installeerde had ik het probleem met apache opgelost in /etc/rc.local

mkdir /var/log/apache2
chown root:adm /var/log/apache2
chmod 0750 /var/log/apache2
service apache2 start

Het probleem nu, is dat ik voor SELinux /var/log als volgt dien te mounten (/etc/fstab)

none /var/log tmpfs context="system_u:object_r:var_log_t:s0",size=10%, mode=0755 0 0

Maar de /var/log/apache2 directory moet de context system_u:object_r:httpd_log_t:s0 hebben i.p.v. type var_log_t. Helaas werkt chcon niet na een context mount
en geeft chcon een “failed to change context of […] to `system_u:object_r:httpd_log_t:SystemLow': Operation not supported ” foutmelding

De RHEL documentatie meldt dan ook “When a file system is mounted with a context option, context changes (by users and processes) are prohibited. For example,
running chcon on a file system mounted with a context option results in a Operation not supported error. ”

Kan iemand me helpen dit probleem op te lossen?

--- [..] - complaints: news ---
Pyt T. (23.10.2012, 19:35)
On Mon, 22 Oct 2012 14:56:19 +0200, Questioneer <questioneer> wrote:
[..]
> Maar de /var/log/apache2 directory moet de context system_u:object_r:httpd_log_t:s0 hebben i.p.v. type var_log_t. Helaas werkt chcon niet na een context mount
> en geeft chcon een “failed to change context of […] to `system_u:object_r:httpd_log_t:SystemLow': Operation not supported ” foutmelding
> De RHEL documentatie meldt dan ook “When a file system is mounted with a context option, context changes (by users and processes) are prohibited. For example,
> running chcon on a file system mounted with a context option results in a Operation not supported error. ”
> Kan iemand me helpen dit probleem op te lossen?
> --- [..] - complaints: news ---


Kun je van /var/log/apache2 misschien een ander tmpfs maken dat je mount
met andere opties?
Questioneer (24.10.2012, 22:18)
On Tue, 23 Oct 2012 17:35:29 +0000 (UTC), "Pyt T." <pytt> wrote:

>On Mon, 22 Oct 2012 14:56:19 +0200, Questioneer <questioneer> wrote:
>Kun je van /var/log/apache2 misschien een ander tmpfs maken dat je mount
>met andere opties?


Misschien dat ik iets over het hoofd zie, maar volgens mij kan dit niet omdat ik tijdens het opstarten de directory /var/log/apache2 moet aanmaken en daarvoor
dient /var/log al als tmpfs gemount te zijn. Ik heb geprobeerd om /var/log/apache na het opstarten (umount/mount) apart als tmpfs te mounten maar dit ging
volgens mij niet.

Zodra de SELinux context van /var/log gewijzigd wordt m.b.v. context="system_u:object_r:var_log_t:s0 kan daarna, voor zover ik weet, geen contextwijziging
(chcon) meer plaatsvinden, ook niet van de subdirectories.

Ik heb nu maar zolang de /var/log/apache2 SELinux context van httpd_log_t in var_log_t verandert door

semanage fcontext -m -t var_log_t "/var/log/apache(2)?(/.*)?"

Ik geef er echter de voorkeur aan om alles in de default SELinux setup te laten en een andere manier vinden...

--- [..] - complaints: news ---
Questioneer (24.10.2012, 22:30)
On Wed, 24 Oct 2012 22:18:23 +0200, Questioneer <questioneer> wrote:

>On Tue, 23 Oct 2012 17:35:29 +0000 (UTC), "Pyt T." <pytt> wrote:
>dient /var/log al als tmpfs gemount te zijn. Ik heb geprobeerd om /var/log/apache na het opstarten (umount/mount) apart als tmpfs te mounten maar dit ging
>volgens mij niet.
>Zodra de SELinux context van /var/log gewijzigd wordt m.b.v. context="system_u:object_r:var_log_t:s0 kan daarna, voor zover ik weet, geen contextwijziging
>(chcon) meer plaatsvinden, ook niet van de subdirectories.
>Ik heb nu maar zolang de /var/log/apache2 SELinux context van httpd_log_t in var_log_t verandert door
>semanage fcontext -m -t var_log_t "/var/log/apache(2)?(/.*)?"
>Ik geef er echter de voorkeur aan om alles in de default SELinux setup te laten en een andere manier vinden...
>--- [..] - complaints: news ---


Nog even ter verduidelijking... als /var/log/apache2 niet aangemaakt wordt tijdens het uitvoeren van /etc/init.d/apache2 dan start de service niet op (vanwege
het ontbreken van de /var/log/apache2 directory, die alleen eenmalig tijdens de installatie van het apache pakket wordt aangemaakt) en moet ik steeds via ssh
inloggen om de service zelf te starten. Ik had dit enigzins "opgelost" door dit in /etc/rc.local te doen maar dat werkt nu niet meer vanwege SELinux

--- [..] - complaints: news ---
Pyt T. (25.10.2012, 10:19)
On Wed, 24 Oct 2012 22:18:23 +0200, Questioneer <questioneer> wrote:
> On Tue, 23 Oct 2012 17:35:29 +0000 (UTC), "Pyt T." <pytt> wrote:
> dient /var/log al als tmpfs gemount te zijn. Ik heb geprobeerd om /var/log/apache na het opstarten (umount/mount) apart als tmpfs te mounten maar dit ging
> volgens mij niet.
> Zodra de SELinux context van /var/log gewijzigd wordt m.b.v. context="system_u:object_r:var_log_t:s0 kan daarna, voor zover ik weet, geen contextwijziging
> (chcon) meer plaatsvinden, ook niet van de subdirectories.
> Ik heb nu maar zolang de /var/log/apache2 SELinux context van httpd_log_t in var_log_t verandert door
> semanage fcontext -m -t var_log_t "/var/log/apache(2)?(/.*)?"
> Ik geef er echter de voorkeur aan om alles in de default SELinux setup te laten en een andere manier vinden...
> --- [..] - complaints: news ---


Het kan ook zijn dat ik iets over het hoofd zie.
Ik zie het zo:
Je mount eerts /var/log
none /var/log tmpfs context="system_u:object_r:var_log_t:s0",size=10%, mode=0755 0 0

En dan doe je:
mkdir /var/log/apache2
chown root:adm /var/log/apache2
chmod 0750 /var/log/apache2

Dingen die je dan in /var/log/apache2 zet erven de selinux context van
/var/log en je wilt dat niet, je wilt dingen in /var/log/apache2 de
system_u:object_r:httpd_log_t:s0 context meegeven.

Wellicht is het dan een idee om het te doen als:
Je mount eerts /var/log
none /var/log tmpfs context="system_u:object_r:var_log_t:s0",size=10%, mode=0755 0 0

En dan doe je:
mkdir /var/log/apache2
chown root:adm /var/log/apache2

en dan doe je iets als:
mount -t tmpfs none /var/log/apache2 -o 'context=system_u:object_r:httpd_log_t:s0'

Ik heb even zoiets geprobeerd:
[root@f17 ~]# l -Z /mnt/
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 .
dr-xr-xr-x. root root system_u:object_r:root_t:s0 ..
[root@f17 ~]# mkdir /mnt/1

[root@f17 ~]# l -Z /mnt/
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 .
dr-xr-xr-x. root root system_u:object_r:root_t:s0 ..
drwxr-xr-x. root root unconfined_u:object_r:mnt_t:s0 1

[root@f17 ~]# mount -t tmpfs none /mnt/1 -o 'context="system_u:object_r:tmp_t:s0"'
[root@f17 ~]# l -Z /mnt/
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 .
dr-xr-xr-x. root root system_u:object_r:root_t:s0 ..
drwxrwxrwt. root root system_u:object_r:tmp_t:s0 1

[root@f17 ~]# > /mnt/1/FILE
[root@f17 ~]# l -Z /mnt/1/
drwxrwxrwt. root root system_u:object_r:tmp_t:s0 .
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 ..
-rw-r--r--. root root system_u:object_r:tmp_t:s0 FILE

[root@f17 ~]# mkdir /mnt/1/DIR
[root@f17 ~]# l -Z /mnt/1/
drwxrwxrwt. root root system_u:object_r:tmp_t:s0 .
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 ..
drwxr-xr-x. root root system_u:object_r:tmp_t:s0 DIR
-rw-r--r--. root root system_u:object_r:tmp_t:s0 FILE

[root@f17 ~]# mount -t tmpfs none /mnt/1/DIR/ -o 'context="system_u:object_r:etc_t:s0"'
[root@f17 ~]# touch /mnt/1/DIR/nogfile
[root@f17 ~]# l -Z /mnt/1/DIR/nogfile
-rw-r--r--. root root system_u:object_r:etc_t:s0 /mnt/1/DIR/nogfile

[root@f17 ~]# l -Z /mnt/1/DIR/nogfile
-rw-r--r--. root root system_u:object_r:etc_t:s0 /mnt/1/DIR/nogfile

[root@f17 ~]# ls -Zla /mnt/1/DIR/nogfile
-rw-r--r--. 1 system_u:object_r:etc_t:s0 root root 0 Oct 25 10:14 /mnt/1/DIR/nogfile

Waarbij "l" een alias is voor "ls -la"
Pyt T. (25.10.2012, 10:21)
On Wed, 24 Oct 2012 22:18:23 +0200, Questioneer <questioneer> wrote:
> On Tue, 23 Oct 2012 17:35:29 +0000 (UTC), "Pyt T." <pytt> wrote:
> dient /var/log al als tmpfs gemount te zijn. Ik heb geprobeerd om /var/log/apache na het opstarten (umount/mount) apart als tmpfs te mounten maar dit ging
> volgens mij niet.
> Zodra de SELinux context van /var/log gewijzigd wordt m.b.v. context="system_u:object_r:var_log_t:s0 kan daarna, voor zover ik weet, geen contextwijziging
> (chcon) meer plaatsvinden, ook niet van de subdirectories.
> Ik heb nu maar zolang de /var/log/apache2 SELinux context van httpd_log_t in var_log_t verandert door
> semanage fcontext -m -t var_log_t "/var/log/apache(2)?(/.*)?"
> Ik geef er echter de voorkeur aan om alles in de default SELinux setup te laten en een andere manier vinden...
> --- [..] - complaints: news ---


Het kan ook zijn dat ik iets over het hoofd zie.
Ik zie het zo:
Je mount eerts /var/log
none /var/log tmpfs context="system_u:object_r:var_log_t:s0",size=10%, mode=0755 0 0

En dan doe je:
mkdir /var/log/apache2
chown root:adm /var/log/apache2
chmod 0750 /var/log/apache2

Dingen die je dan in /var/log/apache2 zet erven de selinux context van
/var/log en je wilt dat niet, je wilt dingen in /var/log/apache2 de
system_u:object_r:httpd_log_t:s0 context meegeven.

Wellicht is het dan een idee om het te doen als:
Je mount eerts /var/log
none /var/log tmpfs context="system_u:object_r:var_log_t:s0",size=10%, mode=0755 0 0

En dan doe je:
mkdir /var/log/apache2
chown root:adm /var/log/apache2

en dan doe je iets als:
mount -t tmpfs none /var/log/apache2 -o 'context=system_u:object_r:httpd_log_t:s0'

Ik heb even zoiets geprobeerd:
[root@f17 ~]# l -Z /mnt/
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 .
dr-xr-xr-x. root root system_u:object_r:root_t:s0 ..

[root@f17 ~]# mkdir /mnt/1
[root@f17 ~]# l -Z /mnt/
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 .
dr-xr-xr-x. root root system_u:object_r:root_t:s0 ..
drwxr-xr-x. root root unconfined_u:object_r:mnt_t:s0 1

[root@f17 ~]# mount -t tmpfs none /mnt/1 -o 'context="system_u:object_r:tmp_t:s0"'
[root@f17 ~]# l -Z /mnt/
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 .
dr-xr-xr-x. root root system_u:object_r:root_t:s0 ..
drwxrwxrwt. root root system_u:object_r:tmp_t:s0 1

[root@f17 ~]# > /mnt/1/FILE
[root@f17 ~]# l -Z /mnt/1/
drwxrwxrwt. root root system_u:object_r:tmp_t:s0 .
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 ..
-rw-r--r--. root root system_u:object_r:tmp_t:s0 FILE

[root@f17 ~]# mkdir /mnt/1/DIR
[root@f17 ~]# l -Z /mnt/1/
drwxrwxrwt. root root system_u:object_r:tmp_t:s0 .
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 ..
drwxr-xr-x. root root system_u:object_r:tmp_t:s0 DIR
-rw-r--r--. root root system_u:object_r:tmp_t:s0 FILE

[root@f17 ~]# mount -t tmpfs none /mnt/1/DIR/ -o 'context="system_u:object_r:etc_t:s0"'
[root@f17 ~]# touch /mnt/1/DIR/nogfile
[root@f17 ~]# l -Z /mnt/1/DIR/nogfile
-rw-r--r--. root root system_u:object_r:etc_t:s0 /mnt/1/DIR/nogfile

[root@f17 ~]# l -Z /mnt/1/DIR/nogfile
-rw-r--r--. root root system_u:object_r:etc_t:s0 /mnt/1/DIR/nogfile

[root@f17 ~]# ls -Zla /mnt/1/DIR/nogfile
-rw-r--r--. 1 system_u:object_r:etc_t:s0 root root 0 Oct 25 10:14 /mnt/1/DIR/nogfile

Waarbij "l" een alias is voor "ls -la"
Questioneer (27.10.2012, 09:37)
On Thu, 25 Oct 2012 08:21:08 +0000 (UTC), "Pyt T." <pytt>
wrote:

[..]
>-rw-r--r--. root root system_u:object_r:etc_t:s0 /mnt/1/DIR/nogfile
>[root@f17 ~]# l -Z /mnt/1/DIR/nogfile
>-rw-r--r--. root root system_u:object_r:etc_t:s0 /mnt/1/DIR/nogfile
>[root@f17 ~]# ls -Zla /mnt/1/DIR/nogfile
>-rw-r--r--. 1 system_u:object_r:etc_t:s0 root root 0 Oct 25 10:14 /mnt/1/DIR/nogfile
>>Waarbij "l" een alias is voor "ls -la"


Bedankt voor de feedback... ik zie dat ik hier nogmaals goed naar moet kijken en
het weer ga uittesten. Volgens mij gaf dit een probleem dat apache2 dan niet
automatisch opstart tijdens het booten en ik steeds via ssh moet inloggen om
'service apache2 start' uit te voeren (iets m.b.t. de volgorde waarin
/etc/fstab, /etc/init.d/apache2 en /etc/rc.local worden uitgevoerd). Ik heb
inmiddels de code van /etc/rc.local naar /etc/init.d/apache2 verplaatst en zou
daar, zoals je aantoont, eenvoudig een mount -t tmpfs -o
system_u:object_r:httpd_log_t:s0 aan toe kunnen voegen:

apache_tmpfs_stuff() {
if [ ! -d "/var/log/apache2" ]; then
mkdir -m 0750 /var/log/apache2
chown root:adm /var/log/apache2
mount -t tmpfs none /var/log/apache2 -o
context="system_u:object_r:httpd_log_t:s0",size=10 %,mode=0750
fi
}

Update: ik heb het zojuist even in de shell uitgeprobeerd en het werkt gewoon...
Ik begrijp niet waarom dit eerst een foutmelding gaf. Misschien heb ik gewoon
een domme fout gemaakt na al een hele dag bezig te zijn om een minimale
Debian/Sid server op te zetten. Nogmaals bedankt!

drwxr-x---. 2 root root system_u:object_r:httpd_log_t:SystemLow 100 Oct 27
09:31 apache2

--- [..] - complaints: news ---
Questioneer (27.10.2012, 10:04)
On Sat, 27 Oct 2012 09:37:06 +0200, Questioneer <questioneer>
wrote:

[..]
>Update: ik heb het zojuist even in de shell uitgeprobeerd en het werkt gewoon...
>Ik begrijp niet waarom dit eerst een foutmelding gaf. Misschien heb ik gewoon
>een domme fout gemaakt na al een hele dag bezig te zijn om een minimale
>Debian/Sid server op te zetten. Nogmaals bedankt!
>drwxr-x---. 2 root root system_u:object_r:httpd_log_t:SystemLow 100 Oct 27
>09:31 apache2
>--- [..] - complaints: news ---


Heb de server zojuist opnieuw opgestart voor een final test

/etc/init.d/apache2

# --- [ tmpfs begin ] --- #

tmpfs_setup() {
if [ ! -d "/var/log/apache2" ]; then
mkdir /var/log/apache2
mount -t tmpfs none /var/log/apache2 -o
context="system_u:object_r:httpd_log_t:s0",size=10 %,mode=0750
chown root:adm /var/log/apache2
fi
}

# --- [ tmpfs end ] --- #

root@sid:~# ls -lZ /var/log
drwxr-x---. 2 root adm system_u:object_r:httpd_log_t:SystemLow 100 Oct 27
09:54 apache2

root@sid:~# matchpathcon -V /var/log/apache2
/var/log/apache2 verified.

Sweet hehe... thnx :)

--- [..] - complaints: news ---
Soortgelijke onderwerpen