처음 로그인할 때 권한이 없는 사용자로 내 문서 디렉토리를 마운트(sshfs 사용)하고 마지막 로그아웃(물론 모든 로그아웃은 아님)에 마운트 해제하고 싶습니다.
이미 키 기반 인증을 사용할 수 있습니다.
답변1
권한이 없는 사용자는 systemd를 사용할 수 없지만 더 간단한 솔루션이 있습니다. 가능한 해결책 중 하나는 다음과 같습니다.
Bash를 사용하는 경우 ~/.profile 끝에 다음을 포함합니다.
if [ $(ps aux|grep "sshfs sshfs_user"|wc -l) -eq 1 ]; then
# Not mounted thus mount
sshfs sshfs_user@sshfs_server:/remote_path $HOME/mount_point
fi
logout()
{
if [ $(ps aux|grep your_user|grep bash|wc -l) -eq 1 ]; then
# Last shell thus umount
umount $HOME/mount_point
unset -f logout
logout
fi
}
그러면 사용자가 sshfs를 실행 중인지 확인하고 sshfs를 사용하여 문서 원격 폴더를 한 번만 마운트합니다.
sshfs_user@sshfs_server:/remote_path $HOME/mount_point
자신의 데이터로 교체하세요 . 이 줄 도 if [ $(ps aux|grep your_user|grep bash|wc -l) -eq 1 ]; then
변경하세요당신의 사용자bash 사용자에게.
다른 쉘을 사용하는 경우 .profile을 변경하고 적절한 bash를 사용하십시오. 즉, zsh의 경우 bash를 zsh로 변경하고 .profile을 .bashrc로 변경합니다.
설명하다:
처음 로그인하면 원격 sshfs가 마운트되어 있는지 확인합니다. 그렇지 않은 경우 설치됩니다.
내장 logout
명령을 대체하는 함수를 만듭니다. 이 기능은 실행 중인 쉘 프로세스가 하나만 있는지 확인하고 원격 파일 시스템을 마운트 해제합니다. 그런 다음 logout
루프를 방지하려면 대체 항목을 설정 해제하세요 .