Thực hiện một lệnh như một người dùng nologin


43

Gần đây tôi đã thiết lập máy chủ của mình để người dùng suPHP 'ảo' của tôi không thể đăng nhập bằng cách sử dụng bài viết này

Vấn đề của tôi bây giờ là trước khi tôi chạy một rakelệnh cho Ruby on Rails ứng dụng của tôi chạy trên máy chủ, tôi đã sử dụng suđể đi vào www-datavà thực hiện lệnh từ đó - rõ ràng là tôi không thể làm điều đó nữa vì nologin.

Vì vậy, là người dùng root, làm cách nào tôi có thể thực thi các lệnh như người dùng khác, ngay cả khi họ là nologin?


Một cách là khởi chạy shell cho người dùng đó (chỉ định rõ ràng shell): sudo -u www-data bashthực thi (các) lệnh của bạn và đăng xuất
cyberx86

@ cyberx86 Giải pháp của bạn có tác dụng đối xử, bạn có thể gửi nó làm câu trả lời cho tôi không?

Câu trả lời:


50

Một cách là khởi chạy shell cho người dùng đó (chỉ định rõ ràng shell):

sudo -u www-data bash 

Điều này sẽ khởi chạy một vỏ (bash) như người dùng được chỉ định. Sau đó, bạn có thể thực thi (các) lệnh và đăng xuất (để quay lại trình bao trước đó)


39

Là root bạn có thể sử dụng su -s /bin/sh $user - -stùy chọn ghi đè shell được cấu hình cho người dùng.


1
Điều này dường như luôn luôn có lỗi với tôi.

Làm việc tuyệt vời cho tôi, không bao giờ có một thăm dò. Khi chạy tập lệnh với cú pháp bash cần / bin / bash chứ không phải / bin / sh
ekerner
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.