Passaggio 1. creare uno script con il comando bind utilizzando qualsiasi editor. Per esempio:
sudo emacs bind_user_directories.sh
Contenuti:
#!/bin/bash
#NOTE: this file would be placed in /usr/local/sbin/ folder as bind_user_directories.sh
#alternatively it could be placed in /etc/init.d/ ... (I guess)
### BEGIN INIT INFO
# Provides: bind_user_directories
# Required-Start:
# Required-Stop:
# Should-Start: $named
# Default-Start: 0 2 3 4 5 6 (I guess...)
# Default-Stop: 1
# Short-Description: mount --bind for a user
# Description: runs mount --bind command for certain pre-defined directories for a specific user
### END INIT INFO
# What is this?
DESC="bind_user_directories"
# See how we were called.
case "$1" in
start)
log_progress_msg "bind directories for user..."
sudo mount --bind /source/path /target/path
log_progress_msg "done: bind directories for user"
;;
stop)
log_progress_msg "umount --bind directories for user..."
sudo umount /target/path
log_progress_msg "done: unbind directories for user"
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
#log_success_msg "Usage: bind_user_directories {start|stop|restart}"
log_success_msg "Usage: service bind_user_directories <start|stop|restart>"
exit 1
;;
esac
exit 0
Passaggio 2. Salva bind_user_directories.sh e rendilo eseguibile:
chmod a+x bind_user_directories.sh
Passaggio 3. collegarlo a una posizione adatta come / usr / local / sbin:
sudo ln -s bind_user_directories.sh /usr/local/sbin/bind_user_directories.sh
Passaggio 4. crea lo script upstart:
sudo emacs /etc/init/bind_user_directories.conf
Contenuti:
description "runs mount --bind command for certain pre-defined directories for a specific user"
start on filesystem and net-device-up IFACE!=lo
stop on runlevel [!023456]
console output
respawn
respawn limit 10 5
exec /usr/local/sbin/bind_user_directories.sh start
Se questo funziona per te, per favore fatemi sapere. È possibile verificare la presenza di messaggi nel registro di sistema dopo aver effettuato l'accesso. (Non l'ho ancora testato e non ho mai implementato nulla di simile prima.) Se si migliora la soluzione, condividere qui la soluzione finale. Grazie.
/etc/profile
o~/.profile
perché l'esecuzione del codice in quegli script è fatta dalla shell dell'utente ed è soggetta al controllo dell'utente, mentre se non si desidera che l'utente abbia il potere di eseguire i programmi comeroot
loro stessi, quindi questo dovrà essere fatto da alcuni servizi in esecuzione esterni ai processi dell'utente. ... Potrebbe essere utile se tu potessi dirci lo scopo dello script che vuoi eseguire.