@@ -19,7 +19,12 @@ echo ''
1919
2020echo ' 1️⃣ Setting TMOUT for all users...'
2121
22- # Add TMOUT to /etc/profile.d/ for bash users
22+ # Remove old TMOUT entries to avoid duplicates and readonly errors
23+ sudo sed -i ' /TMOUT/d' /etc/profile 2> /dev/null
24+ sudo sed -i ' /Auto logout after/d' /etc/profile 2> /dev/null
25+ sudo rm -f /etc/profile.d/ssh-timeout.sh 2> /dev/null
26+
27+ # Add TMOUT to /etc/profile.d/ for bash users (ONLY place for bash)
2328sudo tee /etc/profile.d/ssh-timeout.sh > /dev/null << EOF
2429# Auto logout after 5 minutes of inactivity
2530TMOUT=$TIMEOUT_SECONDS
3035sudo chmod +x /etc/profile.d/ssh-timeout.sh
3136echo ' ✓ Created /etc/profile.d/ssh-timeout.sh (for bash)'
3237
33- # Also add to /etc/profile for compatibility
34- if ! grep -q " ^TMOUT=" /etc/profile 2> /dev/null; then
35- echo " " | sudo tee -a /etc/profile > /dev/null
36- echo " # Auto logout after 5 minutes of inactivity" | sudo tee -a /etc/profile > /dev/null
37- echo " TMOUT=$TIMEOUT_SECONDS " | sudo tee -a /etc/profile > /dev/null
38- echo " readonly TMOUT" | sudo tee -a /etc/profile > /dev/null
39- echo " export TMOUT" | sudo tee -a /etc/profile > /dev/null
40- echo ' ✓ Added TMOUT to /etc/profile'
41- else
42- echo ' ✓ TMOUT already exists in /etc/profile'
43- fi
44-
4538# Add TMOUT for ZSH users - ZSH doesn't load /etc/profile.d/ by default
4639echo ' '
4740echo ' 1️⃣.1 Setting TMOUT for ZSH users...'
4841
4942# Create /etc/zsh directory if not exists
5043sudo mkdir -p /etc/zsh
5144
52- # Add to /etc/zsh/zshenv (loaded for all zsh sessions)
53- if ! grep -q " ^TMOUT=" /etc/zsh/zshenv 2> /dev/null; then
54- sudo tee -a /etc/zsh/zshenv > /dev/null << EOF
55-
56- # Auto logout after 5 minutes of inactivity
57- TMOUT=$TIMEOUT_SECONDS
58- readonly TMOUT
59- export TMOUT
60- EOF
61- echo ' ✓ Added TMOUT to /etc/zsh/zshenv'
62- else
63- echo ' ✓ TMOUT already exists in /etc/zsh/zshenv'
64- fi
45+ # Remove old TMOUT entries to avoid duplicates and readonly errors
46+ sudo sed -i ' /TMOUT/d' /etc/zsh/zshenv 2> /dev/null
47+ sudo sed -i ' /TMOUT/d' /etc/zsh/zshrc 2> /dev/null
48+ sudo sed -i ' /Auto logout after/d' /etc/zsh/zshenv 2> /dev/null
49+ sudo sed -i ' /Auto logout after/d' /etc/zsh/zshrc 2> /dev/null
6550
66- # Also add to /etc/zsh/zshrc for interactive shells
67- if ! grep -q " ^TMOUT=" /etc/zsh/zshrc 2> /dev/null; then
68- sudo tee -a /etc/zsh/zshrc > /dev/null << EOF
51+ # Add to /etc/zsh/zshenv ONLY (loaded first for all zsh sessions)
52+ sudo tee -a /etc/zsh/zshenv > /dev/null << EOF
6953
7054# Auto logout after 5 minutes of inactivity
7155TMOUT=$TIMEOUT_SECONDS
7256readonly TMOUT
7357export TMOUT
7458EOF
75- echo ' ✓ Added TMOUT to /etc/zsh/zshrc'
76- else
77- echo ' ✓ TMOUT already exists in /etc/zsh/zshrc'
78- fi
79-
80- # Add to /etc/skel/.zshrc for new users
81- if [ -f /etc/skel/.zshrc ]; then
82- if ! grep -q " ^TMOUT=" /etc/skel/.zshrc 2> /dev/null; then
83- sudo tee -a /etc/skel/.zshrc > /dev/null << EOF
59+ echo ' ✓ Added TMOUT to /etc/zsh/zshenv'
8460
85- # Auto logout after 5 minutes of inactivity
86- TMOUT=$TIMEOUT_SECONDS
87- export TMOUT
88- EOF
89- echo ' ✓ Added TMOUT to /etc/skel/.zshrc'
90- fi
91- fi
61+ # Remove TMOUT from /etc/skel/.zshrc if exists (avoid conflicts)
62+ sudo sed -i ' /TMOUT/d' /etc/skel/.zshrc 2> /dev/null
63+ sudo sed -i ' /Auto logout after/d' /etc/skel/.zshrc 2> /dev/null
9264
9365# ============ Method 2: ClientAlive (Network keepalive) ============
9466# Keep this to ensure disconnection when network has issues
0 commit comments