Người dùng này hiện không có sẵn - nhưng cho phép chạy tập lệnh của người dùng này


22

Tôi đã tạo người dùng đặc biệt trong / etc / passwd với:

secure:x:2000:2000:secure:/bin:/usr/sbin/nologin

Tôi không muốn cho phép đăng nhập của người dùng này (thông qua bảng điều khiển, ssh, ftp, bằng mọi cách).

Anh ta chỉ để chạy một kịch bản thông qua:

sudo su secure -c '/home/someuser/secure.script'

Nhưng nó mang lại cho tôi This user is currently not available.. Làm cách nào để thiết lập nó để có thể chạy tập lệnh theo cách này nhưng ngăn chặn mọi thông tin đăng nhập (console, ssh, ftp, ...) của người dùng này vào hệ thống?


Tôi đã nhận thấy rằng khi tôi gõ /usr/sbin/nologinvào dòng lệnh, máy tính sẽ phản hồi lại This account is currently not available..


Câu trả lời:


27

Đây là một trường hợp sử dụng điển hình cho sudo.

Bạn đang trộn sudocho phép chạy các lệnh như một người dùng khác và có cấu hình cao (bạn có thể chỉ định chọn lọc người dùng nào có thể chạy lệnh nào với người dùng nào) và suchuyển sang người dùng khác nếu bạn biết mật khẩu (hoặc là root). suluôn luôn chạy shell được viết /etc/passwd, ngay cả khi su -cđược sử dụng. Bởi vì điều này sukhông tương thích với /usr/sbin/nologin.

Bạn nên sử dụng

sudo -u secure /home/someuser/secure.script

Như sudocấu hình, bạn có thể kiểm soát ai có thể sử dụng lệnh này và nếu anh ấy / cô ấy cần nhập mật khẩu để chạy nó. Bạn cần chỉnh sửa /etc/sudoersbằng cách sử dụng visudođể làm điều này. (Hãy cẩn thận khi chỉnh sửa / etc / sudoers và luôn sử dụng visudo để thực hiện. Cú pháp không tầm thường và một lỗi có thể khóa bạn khỏi tài khoản root của bạn.)

Dòng này trong sudoers cho phép mọi người trong nhóm somegroupchạy lệnh như secure:

%somegroup    ALL=(secure) /home/someuser/secure.script

Điều này cho phép mọi người trong nhóm somegroupchạy lệnh securemà không cần nhập mật khẩu:

%somegroup    ALL=(secure) NOPASSWD: /home/someuser/secure.script

Điều này cho phép user1chạy lệnh như securekhông cần nhập mật khẩu:

user1    ALL=(secure) /home/someuser/secure.script

13

Tôi phát hiện ra vấn đề chính là " /usr/sbin/nologin" trong /etc/passwd Khi tôi muốn thực thi su trong trường hợp này, nó phải có -s /bin/bashbên trong, vì vậy, ví dụ:su -s /bin/bash -c '/home/someuser/secure.script' secure


1
Có, susử dụng shell được viết bằng / etc / passwd theo mặc định. Sử dụng sulà một cách để đăng nhập như một người dùng từ một người dùng khác. nologinin thông báo "Người dùng này hiện không có sẵn." và lối thoát hiểm. sudokhông sử dụng shell để thực thi lệnh, vì vậy sử dụng sudomà không có sucũng sẽ hoạt động. Xem câu trả lời của tôi để biết thêm về sudo.
cg909

2

suđang sử dụng shell được chỉ định trong /etc/passwd.

Bạn không cần phải sử dụng suvới sudo.

Do đó, không trộn lẫn suvới sudo: sử dụng sudo -u secure '/home/someuser/secure.script'.


-2

Điều này có thể không liên quan 100% đến câu hỏi nhưng có thể giúp người nào đó có thông điệp cảnh báo tương tự This user is currently not available

1) Kiểm tra với công ty lưu trữ của bạn nếu bạn đã được cấp quyền truy cập shell.

2) nếu bạn đang sử dụng CWP7: Đặt quyền truy cập Shell thành ON nhập mô tả hình ảnh ở đây


2
1) truy cập Shell rõ ràng là có sẵn như là các cuộc đàm phán về vấn đề chạy su, sudovà tất cả các loại những thứ khác. 2) Không có dấu hiệu nào trong câu hỏi rằng cài đặt được đề cập nằm phía sau bảng điều khiển web dưới mọi hình thức.
Philip Kendall

1
Có (khác với trang web Hỏi & Đáp, không phải diễn đàn). Nhưng một phần hữu ích là đảm bảo rằng câu trả lời của bạn thực sự có liên quan đến câu hỏi và tôi không nghĩ rằng câu trả lời này thực sự có liên quan: áp phích rõ ràng đã có quyền truy cập shell, vậy làm thế nào để bật nó thông qua bảng điều khiển (mà thậm chí có thể không tồn tại) giải quyết vấn đề?
Philip Kendall

3
@ShapCyber: Lưu ý rằng câu hỏi này liên quan đến người tự tạo một người dùng mới, đặc biệt. Các câu trả lời trong "chủ đề" (Câu hỏi) này sẽ giải quyết tình huống trong câu hỏi đó. Nếu bạn gặp phải một vấn đề khác có giải pháp này, thì việc cần làm là hỏi và tự trả lời câu hỏi mới của bạn.
Jeff Schaller

1
Những gì @JeffSchaller nói là chính xác. Và tôi sẽ khuyến khích bạn, ShapCyber, để thực sự làm hãy hỏi và tự trả lời một câu hỏi với các vấn đề và giải pháp bạn gặp phải (trong đủ chi tiết để có ích); và sau đó thêm một bình luận cho câu hỏi này để liên kết với bạn. Đó là cách giúp người đọc tương lai tốt nhất trong khuôn khổ về cách trang web này được thiết lập. :)
tự đại diện

2
@ShapCyber ​​đó là lý do tại sao chúng tôi khuyến khích bạn mở một câu hỏi mới, để các tìm kiếm tìm câu trả lời đúng cho vấn đề của họ.
Jeff Schaller
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.