Linux: làm cho tắt máy không thể thực thi được cho an toàn


9

Hôm nay tôi đã tắt máy sản xuất do nhầm lẫn vì tôi nghĩ rằng tôi đang ở trên máy cục bộ của mình. Tôi biết, sai lầm mới làm quen :-(

Như một giải pháp cho nó không xảy ra lần nữa, tôi đã suy nghĩ để loại bỏ quyền thực thi cho lệnh tắt máy vì máy đó sẽ luôn được bật.

Đó có phải là một ý tưởng tốt? Bạn có thể thấy bất kỳ tác dụng phụ không mong muốn bằng cách làm điều đó?

Chúc mừng, Dan


1
Hầu hết các sysadins đều làm điều gì đó như thế này vào một lúc nào đó (cửa sổ nào lại xuất hiện? Rất tiếc ...)
Bart Silverstrim

3
Hãy vui mừng vì nó chỉ là một tắt máy. Những người khác đã học bài học đó với công cụ dd (AKA: công cụ phá hủy đĩa);)
pehrs

1
Hầu hết các nhiệm vụ và công cụ sysadmin có thể gây tử vong và gây tử vong. Sức mạnh lớn đi kèm với trách nhiệm lớn. Bạn có thể chmod 000 lệnh tắt máy của mình, nhưng lần tới bạn có thể gặp rắc rối với rm, dd, fsck, mv hoặc một số công cụ nguy hiểm tiềm tàng khác. Mọi người trong chúng ta S make sớm phạm sai lầm. Điều tốt nhất bạn có thể làm là chuẩn bị cho điều tồi tệ nhất và đảm bảo bạn có bản sao lưu, v.v :-)
Janne Pikkarainen

Câu trả lời:


21

Hoàn toàn một lời khuyên khác làm thế nào để được cảnh báo rằng bạn làm việc trên máy sản xuất là đánh dấu thiết bị đầu cuối. Ví dụ, user@machine:~#văn bản có thể có màu đỏ tại các máy sản xuất, màu xanh lá cây đang phát triển, v.v ... Dưới đây là hướng dẫn hay về cách thực hiện: Color Bash Prompt


+1, tôi tô màu tất cả các máy của mình: Văn bản màu trắng trên nền màu, Orange = Cơ sở hạ tầng; Màu xanh = Sản xuất; Màu tím = Kiểm tra / Dev. Máy trạm bình thường giữ nền đen tiêu chuẩn.
Chris S

Một cách làm khác cho hầu hết mọi vỏ: understudy.net/custom.html
Chris S

+1 cho một mẹo tuyệt vời, bản thân tôi chưa bao giờ nghĩ về điều đó.
Kenny Rasschaert

7

Lời khuyên tốt nhất tôi có thể cung cấp cho bạn là không đăng nhập với quyền root trừ khi bạn cần quyền truy cập root và đảm bảo rằng bạn có mật khẩu root / sudo khác nhau trên mỗi máy.

Không thể truy cập tắt máy là một lựa chọn nhưng nó không phải là một lựa chọn tốt. Hoặc là bí danh shutdownđể shutdown -atouch /etc/shutdown.allowhaychmod a-x /sbin/shutdown

Ngoài ra, nó kết thúc ở đâu? Bạn cũng sẽ không cho phép dừng lại, khởi động lại và init?


4
No không bao giơ kêt thuc. Luôn luôn có một cái gì đó nhiều lần, lặp đi lặp lại, ngày càng nhiều hơn, nó không bao giờ dừng lại <đập đầu vào tường liên tục ...>
Bart Silverstrim

Đừng quên "giết". Xét cho cùng, "kill -9 1" là một cách khá hiệu quả (hoặc, tốt, được sử dụng, trở lại trong những ngày trước) để tắt một hộp unix xuống.
Vatine

Một số tắt máy không có -a. Cộng với việc dựa vào bí danh như thế cũng giống như dựa vào alias rm='rm -i'- một ngày nào đó nó sẽ không ở đó khi bạn thực sự cần nó. Bên cạnh đó, shutdown -adù sao cũng chỉ có hạn hữu dụng.
Tạm dừng cho đến khi có thông báo mới.

3

Một số điểm cần xem xét:

  1. Bạn đã làm gì khi root trên hệ thống sản xuất trong thời gian sản xuất? Định cấu hình hệ thống của bạn để bạn không phải root trên chúng cho công việc hàng ngày. Bạn không bao giờ nên root trên một hệ thống sản xuất mà không có lý do rất chính đáng.
  2. Học bài học quan trọng. Khi bạn root, bạn phải kiểm tra hai lần trước khi nhấn enter. SUDO không được bảo vệ nếu bạn chỉ viết mật khẩu để tiếp tục mà không cần suy nghĩ. Tô màu nhanh chóng, như được đề cập bởi mkudlacek là một công cụ rất hữu ích để giúp đảm bảo bạn không ở trên hệ thống sai.
  3. Đừng lộn xộn với các công cụ dựng sẵn. Nó có khả năng phá vỡ các bản cập nhật và sẽ thúc đẩy những người thuê mới điên rồ. Nếu bạn muốn thay đổi một cái gì đó, hãy sử dụng tệp bí danh của riêng bạn.

2
Tôi không nhất thiết phải đồng ý với bài viết này. Trong khi làm việc như một sysadmin, rất phổ biến cho máy sản xuất của tôi truy cập để yêu cầu root. Bạn khóa người dùng, không phải quản trị viên. Lưu ý, không bỏ phiếu xuống, vì đó là quan điểm hợp pháp ngay cả khi nó khác với quan điểm của tôi.
PP.

1
Trong trường hợp đó, bạn không có yêu cầu cấp độ dịch vụ rất khó khăn trên máy. Cài đặt phần mềm, vá lỗi, bỏ qua khẩn cấp ACL và thay đổi cấu hình mạng là những thứ duy nhất bạn cần root. Không có hoạt động nào trong số này nên được thực hiện thường xuyên trên máy trong sản xuất ... Và mọi thứ khác có thể được thực hiện từ tài khoản superuser. Nếu bạn sử dụng root thay vì superusers trên các hệ thống sản xuất của mình, bạn thường gặp sự cố ...
pehrs

3

Tôi không nghĩ lộn xộn với các quyền trên shutdownlà cách để xử lý tình huống. Về cơ bản bạn chỉ học được một bài học. Cằm lên.

Tôi đã làm những việc tương tự - nhận được chuỗi phiên ssh dài, sau đó làm rối tung các tuyến đường trên một trong những máy tôi đã đi qua, tự cắt đứt. Tôi đã thực hiện một yêu cầu rsync, dẫn đến sự phá hủy có hệ thống của một hệ thống ở phía bên kia của thế giới. Tôi đã chạy rm -rf / pathtrên một máy chủ sản xuất. (Thời gian đó tôi đã học được cách phục hồi hoạt động.)

Vì vậy, nhiều tuổi hơn và hy vọng khôn ngoan hơn một chút, bây giờ tôi có những quy tắc nghiêm ngặt tôi áp đặt cho chính mình.

  • Tất cả các lời nhắc gốc đều kết thúc bằng dấu #, bất kể thông tin nào khác có trong đó.
  • Bất cứ khi nào tôi ở dấu nhắc #, tôi thực sự ngồi trên tay trước khi nhấn phím enter.
  • Nếu có bất kỳ nghi ngờ gì về những gì tôi sắp làm hoặc nơi tôi thực sự hoặc cách tôi đến đó, tôi hủy bỏ nó và xây dựng lại từ điều kiện bắt đầu đã biết.
  • Khi tôi mắc lỗi (và tôi vẫn mắc lỗi, mặc dù chúng ngày càng ít thường xuyên hơn và tối nghĩa hơn khi thời gian trôi qua), hãy ngay lập tức tìm ra những gì tôi đã làm, người mà tôi đã tác động và thú nhận tội lỗi của mình với họ . Sau đó thả mọi thứ khác và hoàn tác damange nhanh nhất và tốt nhất có thể.

Bản chất công việc của tôi đòi hỏi tôi phải dành nhiều thời gian cho rất nhiều lời nhắc gốc khác nhau, nhưng nhờ những lỗi của tôi trong quá khứ, tôi duy trì nhận thức tình huống tốt hơn nhiều so với khi tôi bắt đầu.



1

Phụ thuộc, thực sự. Bạn có thể thử chỉ gói lệnh nhưng điều đó có nghĩa là nếu bạn cập nhật hoặc nâng cấp ảnh hưởng đến khả năng thực thi đó, bạn có thể quên nó và yêu cầu cập nhật. Chơi với các lệnh tắt hệ thống có thể là một PITA, đặc biệt nếu bạn có nhân viên mới hoặc người thay thế mà cuối cùng không biết bạn đang chơi với nhị phân hệ thống.

Cá nhân tôi sẽ xem xét gói lệnh trong một tập lệnh xác định hệ thống theo tên và làm cho bạn xác nhận đó là những gì bạn thực sự muốn làm trước khi chạy nhị phân thực tế hoặc bạn phải nhập một chuỗi chữ cái nhất định để xác nhận tắt máy trước khi nó chạy nhị phân. Điều đó sẽ cho một số tạm dừng.


1

Bạn có thể xem xét việc đặt dấu nhắc lệnh để bao gồm tên máy, ít nhất là trên các máy chủ. Nó chỉ có thể giúp ngăn chặn các lệnh khác chạy trên máy sai trong tương lai. Sẽ hiệu quả hơn nếu tên máy được tô màu để làm nổi bật và thậm chí bạn có thể mã màu để xác định vai trò máy chủ.


0

Một cách là không sử dụng suvà / hoặc đăng nhập trực tiếp vào root. Tốt hơn là đăng nhập trực tiếp vào tài khoản VÀ có mật khẩu khác nhau roottrên máy cục bộ và khóa ssh.

Tất nhiên, ngoài việc xem dấu nhắc '#' màu đỏ.


0

Có, loại bỏ bit thực thi trên lệnh tắt máy là cách đơn giản và an toàn nhất để ngăn chặn tắt máy ngẫu nhiên, đặc biệt nếu bạn có môi trường máy tính để bàn như KDE trên máy và bạn muốn ngăn tắt máy do vô tình khi đăng xuất.

Đối với những người mới bị nhầm lẫn, tôi nghĩ rằng điều đầu tiên họ sẽ làm là ls -l /sbin/shutdowntìm hiểu lý do tại sao nó không hoạt động (đặc biệt là nếu họ có thói quen tốt trong việc thực hiện các tên thực thi hoàn thành tab). Rõ ràng mặc dù bạn nên nói với họ về bất kỳ thay đổi nào bạn đã thực hiện.

Để an toàn hơn, bạn có thể thêm một dòng để /etc/rc.localloại bỏ bit thực thi khỏi lệnh tắt máy để bạn không quên đặt lại sau khi khởi động lại.


0

bạn chỉ có thể xóa / sbin / từ đường dẫn của root. theo cách đó bạn cần nhập đường dẫn đầy đủ để thực thi nó và nó thường khắc phục được các tai nạn.

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.