Tài khoản này hiện không có sẵn lỗi Lỗi khi cố gắng ssh


46

Xảy ra lỗi khi tôi cố gắng tạo kết nối SSH:

$ ssh -p 22 www-data@x.x.x.x 
This account is currently not available

Câu trả lời:


59

Bạn đang gặp This account is currently not available.lỗi vì trình bao cho người dùng www-datađược đặt thành /usr/sbin/nologinvà nó được đặt vì một lý do rất chính đáng. Bạn không nên đăng nhập với tư cách www-datalà một người dùng / nhóm đặc biệt được sử dụng bởi máy chủ web, không dành cho sử dụng shell thông thường.

EDIT : Đó là một ý tưởng đặc biệt tồi tệ để trao sudoquyền cho www-data. Nếu Apache được dự định chạy với quyền root, thì nó sẽ không có nhóm riêng. Bằng cách này, bạn đang tạo ra lỗ hổng bảo mật rất lớn. Bạn đã được cảnh báo.


5
Điều đó không mang tính xây dựng. Bạn nghĩ tôi nên thêm thông tin gì để câu trả lời này tốt hơn?
kraxor

4
@kraxor là chính xác nhưng nếu bạn phải đăng nhập bằng root và thay đổi / usr / sbin / nologin trong / etc / passwd thành / bin / bash và nó sẽ cấp quyền truy cập shell cho người dùng đó. Tôi làm điều này khi chỉ chạy một tệp nhị phân nhanh như máy chủ web của mình. Dữ liệu www thường được dành riêng cho nginx / apache trên ubfox do đó không có trạng thái đăng nhập.
kỹ

4
@RyanNerd Lựa chọn của bạn là không "cho một con chuột $$ về chuyện tào lao bảo mật". Chạy mọi thứ như root không được khuyến khích ngay cả trong Docker. Tất nhiên, bạn có thể định cấu hình Apache để chạy roothoặc thêm vỏ đăng nhập www-data, nhưng điều đó giống như mở một chai rượu bằng cách phá vỡ chai vì bạn quá lười biếng và bất cẩn khi sử dụng nút chai.
kraxor


Tôi có một trường hợp tương tự. Tôi muốn chạy LibreScript ở chế độ không đầu theo cách mà tập lệnh PHP có thể gọi để chuyển đổi tài liệu và nó có thể ghi tệp vào đĩa dưới dạng dữ liệu www vì những tệp này sau đó cần được xóa bởi dữ liệu www (một phần của một đoạn mã PHP) để dọn sạch chúng. Điều này (khởi chạy một LibreScript không đầu dưới dạng dữ liệu www của người dùng) được sử dụng để hoạt động trong các phiên bản trước của Ubuntu và tôi hiểu rằng đây là một cải tiến bảo mật so với các phiên bản trước đó.
ywarnier

56

Mặc dù tôi đồng ý với những người khác rằng cho phép đăng nhập thông qua SSH thông qua người dùng dữ liệu www nói chung là một ý tưởng tồi, một khi bạn đã đăng nhập với người dùng bình thường, có thể hữu ích khi chạy nhiều lệnh đồng thời với bộ quyền của www- người sử dụng dữ liệu. Trong trường hợp đó, người ta có thể chạy

sudo su -l www-data -s /bin/bash

và bạn sẽ có thể truy cập các tệp của mình với tư cách là người dùng dữ liệu www.


2
Rất hữu ích để gỡ lỗi quyền cho người dùng daemon / dịch vụ
jmng

bạn chỉ lưu ngày của tôi cảm ơn! Tôi gặp sự cố khi dịch vụ perl-fcgi bắt đầu vì tập lệnh khởi động không được sử dụng-s /bin/bash
Couitchy

-1

Câu hỏi đầu tiên tôi sẽ phải hỏi là, bạn đang cố gắng đạt được điều gì khi làm điều này?

kraxor là chính xác 100%, bạn sẽ không bao giờ có thể ssh vào máy chủ của mình bằng người dùng Apache / Nginx. Làm như vậy mời mọi hacker có một nửa tế bào não vào máy chủ của bạn.

Nếu bạn cần chạy một tập lệnh hoặc một số chương trình như người dùng đó bạn có thể thử sudo -u www-data yourscripthoặc bạn có thể tạm thời chowntrên tệp cho người dùng có quyền đăng nhập. Đó chỉ là một ý tưởng tồi khác nhau để cho phép tài khoản này truy cập.


6
Bạn nên biết rằng su -không hoạt động đối với các tài khoản vô hiệu hóa đăng nhập.
sorin

Tài khoản nào bị vô hiệu hóa? Nó không nói gì về tài khoản bị vô hiệu hóa
TheStarvingGeek

1
Có nologin trong passwd có nghĩa là đăng nhập bị vô hiệu hóa :)
sorin

1
Đó là tài khoản dịch vụ không phải là tài khoản bị vô hiệu hóa, bạn có thể chạy các lệnh theo tài khoản đó
TheStarvingGeek

Máy chủ của tôi dường như không biết sự khác biệt đó @TheStarvingGeek
LovesTha
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.