Không thể chạy lệnh dưới dạng dữ liệu www bằng su


14
# su -l www-data ./http-app.py
This account is currently not available.
# su -l www-data -c ./http-app.py
This account is currently not available.
# su -c ./http-app.py www-data 
This account is currently not available.
# su -lc ./http-app.py www-data 
This account is currently not available.
# getent passwd www-data 
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
# getent shadow www-data 
www-data:*:16842:0:99999:7:::
# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.6 (jessie)
Release:        8.6
Codename:       jessie

Có chuyện gì với tôi suhay www-datavậy? Nó được sử dụng để làm việc ...

Có lẽ điều này là do /usr/sbin/nologin, nhưng sau đó tôi bỏ roottập lệnh này, mà không ảnh hưởng đến các dịch vụ khác trên hệ thống ( nologinđã được Debiannhóm chọn vì một lý do chính đáng, tôi muốn tin)?

Câu trả lời:


18

Không cần tranh luận suso với sudobạn có thể thử thêm -s /bin/shvào dòng lệnh của bạn. (Tôi không thể xác minh tùy chọn này có sẵn cho jessie vì máy chủ web Debian Debian không hoạt động: https://manpages.debian.org/ )


Tôi đã giả định không chính xác /bin/shđược sử dụng theo mặc định và bạn phải chỉ định -stùy chọn nếu bạn muốn thay đổi /bin/bashhoặc tương tự.
NarūnasK

3
Cảm ơn, nó hoạt động trong Debian 9 su www-data -s /bin/shđể quay lại root chỉ cần gõ su.
PJ Brunet

3
@PJBrunet - "để quay lại root" (giả sử bạn đã muốn root), bạn sẽ gõ "exit". Để bắt đầu một shell root mới, bạn sẽ gõ su.
ChronoFish

31

Bạn đang sử dụng suđược sử dụng để "chuyển người dùng". Tất nhiên nó sẽ không hoạt động vì www-datatài khoản người dùng không thể sử dụng để đăng nhập. Bạn đã nói với nó : /usr/sbin/nologin.

Có lẽ những gì bạn muốn là sudođược sử dụng để "thực thi một lệnh như một người dùng khác".

sudo -u www-data ./http-app.py

Tôi luôn luôn sử dụng sucho mục đích này và nó luôn được sử dụng để làm việc. sudolà một gói bổ sung để cài đặt, nhưng bạn đã đúng, tôi có thể sử dụng nó để đạt được những gì tôi muốn.
NarūnasK

1

Nếu bạn muốn không chỉ thực thi một lệnh mà còn chuyển sang www-datađể kiểm tra một số nội dung cho người dùng đó, thì điều này có hiệu quả với tôi:

sudo -u www-data sh

Nó ngắn hơn một chút. Thoát phiên với [ctrl] + [d] hoặcexit


0

Với loại vấn đề này, tôi đã sử dụng tùy chọn -p:

su -pc ./http-app.py www-data

-p: môi trường được bảo tồn. Đặc biệt, nó không cố đăng nhập bằng tài khoản mới, vì vậy bạn không nhận được thông báo : This account is currently not available..

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.