Paso 1. crea un script con el comando bind usando cualquier editor. Por ejemplo:
sudo emacs bind_user_directories.sh
contenido:
#!/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
Paso 2. guardar bind_user_directories.sh y hacerlo ejecutable:
chmod a+x bind_user_directories.sh
Paso 3. vincúlelo a una ubicación adecuada como / usr / local / sbin:
sudo ln -s bind_user_directories.sh /usr/local/sbin/bind_user_directories.sh
Paso 4. crea el script de inicio:
sudo emacs /etc/init/bind_user_directories.conf
contenido:
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
Si esto funciona para usted, hágamelo saber. Puede verificar si hay mensajes en el registro del sistema después de iniciar sesión. (Todavía no lo probé y nunca he implementado algo como esto antes). Si mejora la solución, comparta su solución final aquí. Gracias.
/etc/profileo~/.profileporque la ejecución del código en esos scripts es realizada por el shell del usuario y está sujeta al control del usuario, mientras que si no desea que el usuario tenga poder ejecutar programas comorootellos mismos, entonces esto tendrá que hacerlo algún servicio en ejecución externo a los procesos del usuario. ... Puede ser útil que nos diga el propósito del script que desea ejecutar.