अद्यतन: इस मुद्दे को निर्णायक रूप से उत्तर नहीं दिया जाएगा; मैं दूसरे डिस्ट्रो में चला गया हूं और मैंने इस समस्या को नहीं देखा है। मैं उस समय उपलब्ध व्यावहारिक जवाब के साथ इसे ठीक करने में सक्षम नहीं था, लेकिन आपकी ईंधन दक्षता भिन्न हो सकती है (वाईएमएमवी)।
crontab -e
और crontab -l
ठीक काम:
$ crontab -l | grep -v '^#'
* * * * * /usr/bin/env
* * * * * echo 'Hello from crontab'
हालाँकि, मुझे हर मिनट में दो संदेश मिलते हैं /var/log/syslog
:
Mon DD hh:mm:01 username CRON[PID]: Permission denied
तो कोंट्राब पढ़ा जा रहा है , लेकिन किसी भी तरह यह कुछ भी निष्पादित नहीं कर सकता है (निश्चित रूप से मैंने उसी उपयोगकर्ता के रूप में लॉग इन होने पर कमांडों को सत्यापित किया है)। कोई विचार क्यों?
/etc/cron.allow
और /etc/cron.deny
मौजूद नहीं है।
crontab समूह सेट है:
$ stat --format '%A %U %G' /usr/bin/crontab
-rwxr-sr-x root crontab
Crontabs निर्देशिका के लिए सही अनुमति है लगता है:
$ stat --format '%A %U %G' /var/spool/cron/crontabs
drwx-wx--T root crontab
Crontab खुद मेरे स्वामित्व में है (आश्चर्यजनक रूप से नहीं, क्योंकि मैं इसे संपादित करने में सक्षम हूं):
$ sudo stat --format '%A %U %G' /var/spool/cron/crontabs/$USER
-rw------- username crontab
मैं समूह का सदस्य नहीं हूं crontab
।
ये पंक्तियाँ /var/log/auth.log
हर मिनट में दिखाई देती हैं (धन्यवाद @ आला):
Mon DD hh:mm:01 username CRON[1752]: pam_unix(cron:session): session opened for user username by (uid=0)
Mon DD hh:mm:01 username CRON[1752]: PAM bad jump in stack
शायद PAM टूट गया है? pam-auth-update
(धन्यवाद @coteyr) इन सभी को सूचीबद्ध करता है, और उनमें से सभी सक्षम हैं:
- यूनिक्स प्रमाणीकरण
- गनोम कीरिंग डेमन - लॉगिन कीरिंग प्रबंधन
- eCryptfs कुंजी / माउंट प्रबंधन
- ConsoleKit सत्र प्रबंधन
- इनहेरिटेबल कैपेबिलिटीज मैनेजमेंट
क्या उनमें से कोई भी सुरक्षित रूप से अक्षम हो सकता है? मैं किसी भी एन्क्रिप्टेड फाइल सिस्टम का उपयोग नहीं कर रहा हूं।
एक डेबियन बग प्रविष्टि के आधार पर मैंने दौड़ने की कोशिश की debconf-show libpam-runtime
, और मुझे निम्नलिखित त्रुटि संदेश मिला:
debconf: DbDriver "passwords" warning: could not open /var/cache/debconf/passwords.dat: Permission denied
की सामग्री /etc/pam.d/cron
:
# The PAM configuration file for the cron daemon
@include common-auth
# Read environment variables from pam_env's default files, /etc/environment
# and /etc/security/pam_env.conf.
session required pam_env.so
# In addition, read system locale information
session required pam_env.so envfile=/etc/default/locale
@include common-account
@include common-session-noninteractive
# Sets up user limits, please define limits for cron tasks
# through /etc/security/limits.conf
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in cron quiet use_uid
फ़ाइलों उल्लेख ( /etc/environment
, pam_env.so
, /etc/default/locale
, pam_limits.so
, pam_succeed_if.so
) सब मेरे उपयोगकर्ता द्वारा पठनीय हैं।
उबंटू 13.04 के साथ एक अन्य होस्ट पर, एक ही उपयोगकर्ता क्रॉस्टैब के साथ, /etc/cron.{allow,deny}
ऊपर जैसी कोई अनुमतियाँ, और crontab
समूह का सदस्य नहीं होने के कारण , यह ठीक काम करता है (कमांड्स में आउटपुट नहीं है लेकिन लॉग इन करता है /var/log/syslog
)।
पहली क्रॉस्टैब लाइन को बदलकर:
* * * * * /usr/bin/env >/tmp/env.log 2>&1
और जाँचना कि / tmp विश्व लेखन योग्य है:
$ sudo -u nobody touch /tmp/test
$ ls /tmp/test
/tmp/test
$ ls -ld /tmp
drwxrwxrwt 15 root root 12288 May 27 10:18 /tmp
मैंने सत्यापित किया है कि क्रॉस्टैब कमांड बिल्कुल भी नहीं चलाएPermission denied
गए हैं : संदेश अभी भी दिखाई देते हैं /var/log/syslog
, लेकिन /tmp/env.log
निर्मित नहीं होते हैं।
सेटिंग्स की/etc/pam.d
एक यादृच्छिक सूची के आधार पर मुझे निम्नलिखित विसंगतियां मिलीं:
$ grep '^[^#]' /etc/pam.d/sshd
@include common-auth
account required pam_nologin.so
@include common-account
@include common-session
session optional pam_motd.so # [1]
session optional pam_mail.so standard noenv # [1]
session required pam_limits.so
session required pam_env.so # [1]
session required pam_env.so user_readenv=1 envfile=/etc/default/locale
@include common-password
$ grep '^[^#]' /etc/pam.d/common-session
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_umask.so
session required pam_unix.so
session optional pam_ecryptfs.so unwrap
session optional pam_ck_connector.so nox11
$ grep '^[^#]' /etc/pam.d/common-account
account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so
account requisite pam_deny.so
account required pam_permit.so
$ grep '^[^#]' /etc/pam.d/common-session-noninteractive
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_umask.so
session required pam_unix.so
session optional pam_ecryptfs.so unwrap
PAM संकुल स्थापित:
$ dpkg --get-selections | grep --invert-match deinstall | cut --fields 1 | grep pam
libpam-cap
libpam-ck-connector
libpam-gnome-keyring
libpam-modules
libpam-modules-bin
libpam-runtime
libpam0g
python-pam
मैंने इन्हें पुनः स्थापित करने का प्रयास किया - मदद नहीं की:
$ sudo apt-get install --reinstall $(dpkg --get-selections | grep --invert-match deinstall | cut --fields 1 | grep pam)
मैं शुद्ध नहीं कर सकता और फिर अनम्यूट निर्भरता के कारण इन्हें पुनः स्थापित कर सकता हूं।
/var/spool/cron/crontabs/username
?
/var/log/auth.log
CRON के बारे में क्या कहना है?
id cron
->id: cron: No such user