Etapa 1. crie um script com o comando bind usando qualquer editor. Por exemplo:
sudo emacs bind_user_directories.sh
conteúdo:
#!/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
Etapa 2. salve bind_user_directories.sh e torne-o executável:
chmod a+x bind_user_directories.sh
Etapa 3. vincule-o a um local adequado, como / usr / local / sbin:
sudo ln -s bind_user_directories.sh /usr/local/sbin/bind_user_directories.sh
Etapa 4. crie o script inicial:
sudo emacs /etc/init/bind_user_directories.conf
conteúdo:
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 isso funcionar para você, entre em contato. Você pode verificar o log do sistema em busca de mensagens após o login. (Ainda não testei e nunca implementei nada como isso antes.) Se você melhorar a solução, compartilhe sua solução final aqui. Obrigado.
/etc/profile
ou~/.profile
porque a execução de código nesses scripts é feita pelo shell do usuário e está sujeita ao controle do usuário, enquanto que, se você não deseja que o usuário tenha o poder executar programas comoroot
eles mesmos, isso terá que ser feito por algum serviço em execução externo aos processos do usuário. ... Pode ajudar se você puder nos dizer o objetivo do script que deseja executar.