Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Tip] Ripulire "davvero" /tmp all'avvio
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page Previous  1, 2  
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
thewally
l33t
l33t


Joined: 12 May 2005
Posts: 703
Location: Genova

PostPosted: Wed Mar 22, 2006 10:47 pm    Post subject: Reply with quote

Fino a pochi giorni fa questo script funzionava a meraviglia :D
Poi, dopo un aggiornamento di kde, non riesco più a loggarmi come utente normale, controllando /var/log/kdm.log salta fuori che /tmp/.ICE-unix è stata creata dall'utente e non è del giusto proprietario.
Insomma, in poche parole /tmp/.ICE-unix deve essere 777 root:root, non me la cavo nemmeno con:
Code:

# mkdir /tmp/.ICE-unix
# chmod 777 /tmp/.ICE-unix

evidentemente quella directory deve possedere anche altri requisiti, qualche file al suo interno.
Una possibile soluzione è quella di loggarsi in kdm, ad ogni avvio, come root, e poi nuovamente come utente, scomodissima, ma funziona.
Problema: non voglio che da kdm ci si possa loggare come root.

Indagando un po' ho scoperto che lo script che cancella /tmp cancella anche la suddetta directory.
Dato che tale directory non arriva a contenere che alcuni byte (con un utente contiene solo 2 socket).

Ho riscontrato lo stesso problema sul portatile, dove utilizzo lo stesso script.

La soluzione è correggere la riga 11 in questo modo:
Code:
REMOVEFILES=$(ls -AlQ /tmp |grep "\"" |cut -d"\"" -f2|grep -v .ICE-unix)


Alla fine, lo script script completo:
Code:
 #!/sbin/runscript

depend() {
        need clock localmount hostname
        before bootmisc
}

start() {
        ebegin "Erasing /tmp directory"

        REMOVEFILES=$(ls -AlQ /tmp |grep "\"" |cut -d"\"" -f2|grep -v .ICE-unix)
        cd /tmp
        for i in $REMOVEFILES
        do
        rm /tmp/$i -rf
        done
        eend $? "Failed remove files in /tmp"
}

Ora tutto funge! :wink:
_________________
Proudly Member of GeCHI
Back to top
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4477
Location: In giro

PostPosted: Thu Mar 23, 2006 2:26 pm    Post subject: Reply with quote

Mi sembra strano... /tmp deve contenere solo files utili alla sessione attuale dell'utente... altrimenti andrebbero in /var/tmp
Inoltre molti (tra cui io) montano direttamente /tmp in ram (pertanto viene automaticamente ripulita ad ogni avvio) e il problema non pare presentarsi.
Io penso possa essere semmai un bug di kde o un problema relativo ad altro...
_________________
Any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
thewally
l33t
l33t


Joined: 12 May 2005
Posts: 703
Location: Genova

PostPosted: Fri Mar 24, 2006 3:36 pm    Post subject: Reply with quote

Cazzantonio wrote:
Io penso possa essere semmai un bug di kde o un problema relativo ad altro...

Sicuramente è un bug di KDE, ma mi costava così poco in termini di codice e di byte mantenere quella dir che ho aggiunto questi pochi caratteri :D
_________________
Proudly Member of GeCHI
Back to top
View user's profile Send private message
GiRa
l33t
l33t


Joined: 07 Apr 2005
Posts: 717

PostPosted: Mon Apr 03, 2006 10:14 am    Post subject: Reply with quote

Sto usando lo script (modificato per KDE :p ) da un po' con successo ma ho trovato questo:
Code:
# /etc/conf.d/bootmisc

[cut...]
# Should we completely wipe out /tmp or just selectively remove known
# locks / files / etc... ?

WIPE_TMP="no"


Infatti nel file /etc/init.d/bootmisc si trova:
Code:
[cut]
        #
        # Clean up /tmp directory
        #
        if [[ -z ${CDBOOT} ]] && [[ -d /tmp ]] ; then
                cd /tmp
                if [[ ${WIPE_TMP} == "yes" ]] ; then
                        ebegin "Wiping /tmp directory"
                        # This eval stuff sucks, so if someone has a better *wor
king*
                        # solution, please file a bug at http://bugs.gentoo.org/
                        # Originally ripped from Debian init scripts
                        local exceptions="
                                '!' -name . -a
                                '!' '(' -uid 0 -a
                                        '('
                                                -path './lost+found/*' -o
                                                -path './quota.user/*' -o
                                                -path './aquota.user/*' -o
                                                -path './quota.group/*' -o
                                                -path './aquota.group/*' -o
                                                -path './.journal/*'
                                        ')'
                                ')'"
                        # First kill most files, then kill empty dirs
                        eval find . -xdev -depth ${exceptions} ! -type d -print0
 | xargs -0 rm -f --
                        eval find . -xdev -depth ${exceptions}   -type d -empty
-exec rmdir '{}' \\';'
                        eend 0
                else
                        ebegin "Cleaning /tmp directory"                        (
                                rm -f /tmp/.X*-lock /tmp/esrv* /tmp/kio* /tmp/jp
sock.* /tmp/.fam*
                                rm -rf /tmp/.esd* /tmp/orbit-* /tmp/ssh-* /tmp/k
socket-* /tmp/.*-unix
                        ) &> /dev/null
                        eend 0
                fi

                (
                        # Make sure our X11 stuff have the correct permissions
                        mkdir -p /tmp/.{ICE,X11}-unix
                        chown 0:0 /tmp/.{ICE,X11}-unix
                        chmod 1777 /tmp/.{ICE,X11}-unix
                        [[ -x /sbin/restorecon ]] && restorecon /tmp/.{ICE,X11}-
unix
                ) &> /dev/null
        fi
[cut]


Come si può notare "Clean /tmp directory" lavora solo su alcuni file ben definiti, purtoppo però non riesco bene a capire cosa faccia il wiping...

Che idee avete?
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum