Có một dòng lệnh duy nhất để làm `su` không?


15

Tôi có thể làm suvới su <username>và nó yêu cầu mật khẩu của tôi. Có một tham số mật khẩu để sutôi không được nhắc nhập mật khẩu không?

ví dụ su <username> -p <password>


Có vẻ như câu hỏi phù hợp với siêu người dùng: superuser.com :-)
HongboZhu


1
tôi đã nhận được từ superuserđây, superuser.com/questions/67765/
Khăn

Câu trả lời:


12

Nếu bạn muốn viết một tập lệnh chạy như một người dùng khác, một cái gì đó như thế này hoạt động, mặc dù nó sẽ xuất ra từ "mật khẩu" mà không có dòng mới để chuẩn

su - username <<!
enterpasswordhere
enter commands to run as the new user
!

nếu bạn có một người dùng có tên là fred với mật khẩu 1234 và muốn lấy một thư mục chính của fred như fred, không có chuỗi mật khẩu được hiển thị, nó sẽ trông như thế

su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!

2
hmm, 'tiêu chuẩn phải là một tty'
John Lawrence Aspden

Tôi nhận được cùng một lỗi
MaxV

12
Bắt lỗi : su: must be run from a terminal.
Abhishek Kashyap

5

Tôi tin rằng, không có và nó sẽ không phải là một ý tưởng tốt. Đây là lý do tại sao:
Nếu bạn viết một mật khẩu trong một lệnh như thế su <username> -p <password>, nó sẽ được lưu trữ trong văn bản đơn giản trong lịch sử bash của bạn. Đây chắc chắn là một vấn đề bảo mật rất lớn.

Nếu bạn cần chạy các lệnh với su(hoặc sudo) theo cách tự động, hãy viết một shellscript chứa các lệnh mà không có suhoặc sudochạysu <username> script.sh


1
su root script vẫn cần nhập passwd.
Đại Kaixian

@DaiKaixian có, nhưng nó không được lưu ở bất cứ đâu và không ai có thể đọc nó
Wayne_Yux

2
bạn có thể thử một cái gì đó như : echo <passwd> | sudo -S <command-line>. Mặc dù nó không an toàn, nhưng nó hoạt động.
Đại Kaixian

1
toàn bộ câu trả lời của tôi là, nó không lưu để viết mật khẩu trong một lệnh. Vì vậy, tôi khuyên không nên làm điều đó
Wayne_Yux

-3

Nếu bạn muốn thực thi một số lệnh cụ thể như một người dùng mới, hãy sử dụng lệnh sau:
sudo -u {username} {command to be executed as the new user}


Điều này không trả lời câu hỏi. Câu hỏi là về cách xử lý mật khẩu.
Stephen C
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.