Bước 1. tạo một tập lệnh với lệnh bind bằng bất kỳ trình soạn thảo nào. Ví dụ:
sudo emacs bind_user_directories.sh
nội dung:
#!/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
Bước 2. lưu bind_user_directories.sh và làm cho nó có thể thực thi được:
chmod a+x bind_user_directories.sh
Bước 3. liên kết nó đến một vị trí phù hợp như / usr / local / sbin:
sudo ln -s bind_user_directories.sh /usr/local/sbin/bind_user_directories.sh
Bước 4. tạo tập lệnh khởi động:
sudo emacs /etc/init/bind_user_directories.conf
nội dung:
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
Nếu điều này làm việc cho bạn, xin vui lòng cho tôi biết. Bạn có thể kiểm tra nhật ký hệ thống cho các tin nhắn sau khi đăng nhập. (Tôi chưa kiểm tra nó và tôi chưa bao giờ thực hiện bất cứ điều gì như thế này trước đây.) Nếu bạn cải thiện giải pháp, vui lòng chia sẻ giải pháp cuối cùng của bạn tại đây. Cảm ơn.
/etc/profile
hoặc~/.profile
bởi vì việc chạy mã trong các tập lệnh đó được thực hiện bởi trình bao của người dùng và chịu sự kiểm soát của người dùng, trong khi nếu bạn không muốn người dùng có sức mạnh để chạy các chương trình nhưroot
chính chúng, sau đó điều này sẽ phải được thực hiện bởi một số dịch vụ đang chạy bên ngoài các quy trình của người dùng. ... Nó có thể hữu ích nếu bạn có thể cho chúng tôi biết mục đích của kịch bản bạn muốn chạy.