không thể truy cập crontab bằng sudo sau khi được thêm vào danh sách / etc / sudoers


1

Người dùng "craig" của tôi có trong /etc/sudoerstệp trên máy ảo CentOS 5.6 của tôi, tuy nhiên khi tôi cố gắng truy cập vào crontab bằng lệnh bên dưới, tôi thấy một thông báo lỗi:

sudo crontab -e -u crmpicco-stock-dev
[sudo] password for craig:
Sorry, user craig is not allowed to execute '/usr/bin/crontab -e' as root on dev.localdomain.

Tại sao tôi nhận được thông báo này như tôi có thể thấy trong /etc/sudoerstệp của mình rằng tôi có thể truy cập vào crontab được yêu cầu.

Đây là mục từ /etc/sudoerstập tin của tôi :

craig   ALL=(crmpicco-stock-dev) /usr/bin/crontab, /var/spool/cron/crmpicco-stock-dev

Câu trả lời:


1

Thông số kỹ thuật ALL=(crmpicco-stock-dev) /usr/bin/crontabcó nghĩa là trên ALLmáy chủ, bạn được phép chạy /usr/bin/crontabnhư người dùng crmpicco-stock-dev. Điều này không có nghĩa là sudo, bất cứ khi nào bạn cố chạy /usr/bin/crontab, sẽ tự động chọn để làm như vậy crmpicco-stock-dev- mặc định vẫn còn root, cấu hình không tuân theo và thông báo lỗi sẽ loại bỏ nó : Sorry, user craig is not allowed [...] as root.

Hãy thử chạy sudo -u crmpicco-stock-dev crontab -e. Điều đó sẽ nói sudorằng bạn muốn được crmpicco-stock-devvà gọi /usr/bin/crontab, whch nên được cho phép; crontab -etheo mặc định sẽ cố gắng chỉnh sửa crontab của người dùng hiện tại - sẽ crmpicco-stock-devnhư vậy, vì vậy bạn không cần phải chỉ định lại điều đó.

Đặt -u crmpicco-stock-devsau tùy chọn không đầu tiên, sudosẽ cho rằng đó là một phần của lệnh bạn muốn chạy và bỏ qua nó. Toàn bộ dòng trông tương tự, nhưng có nghĩa là một cái gì đó rất khác nhau.


0

Bạn có thể thử làm:

sudo crontab -u crmpicco-stock-dev -e

Từ trang người đàn ông này có vẻ đúng thứ tự.

Trân trọng


Không, điều này tạo ra lỗi tương tự. Vì vậy, tôi không nghĩ rằng thứ tự quan trọng ở đây. [craig@dev53 dev_crmpicco]$ sudo crontab -u crmpicco-stock-dev -e [sudo] password for craig: Sorry, user craig is not allowed to execute '/usr/bin/crontab -u crmpicco-stock-dev -e' as root on dev.localdomain.
crmpicco

Một cách khác có thể là chạy: sudo su -c "crontab -e" crmpicco-stock-dev
ricciocri

Một lần nữa, thật không may. Sorry, user craig is not allowed to execute '/bin/su -c crontab -e crmpicco-stock-dev' as root on dev.localdomain.
crmpicco

Bạn đã thay đổi / etc / sudoers để cho phép craig thực thi / bin / su chưa?
ricciocri

Tôi đã chỉnh sửa tập tin sudoers với visudo để bao gồm dòng Cmnd_Alias SU = /bin/su, không có đề cập đến craigngười dùng trong tập tin. Có nên thêm dòng bí danh mở nó cho tất cả người dùng? Sau khi thêm dòng này, không có thay đổi nào cho vấn đề - tôi vẫn không thể truy cập crmpicco-stock-devcrontab với craigngười dùng. Bất cứ điều gì khác tôi có thể thử?
crmpicco

0

Tôi tin rằng bạn sẽ phải liên hệ với quản trị viên hệ thống của mình để giúp bạn gỡ lỗi. Tôi nghi ngờ rằng đó là một số loại tạo tác từ các lệnh gọi setuid () hoặc seteuid () trong sudo và thực tế là bạn đang gọi một chương trình SUID. Tôi đã thấy điều này trước đây và rất khó để sửa chữa.

Làm thế nào tôi có thể bắt đầu sửa nó bằng cách cố gắng thực hiện cuộc gọi crontab trong chương trình trình bao bọc thực thi mà không có phép đặc biệt nào và sử dụng sudo để gọi chương trình trình bao bọc thay thế.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.