Tôi đã cố gắng thay đổi vỏ đăng nhập.
Đây là dòng đầu tiên /etc/passwd
trông như thế nào (trên bản cài đặt Debian Wheezy):
rootx:0:0:root:/root:/:zsh
Khi tôi cố gắng đăng nhập như root
:
Cannot execute zsh: No such file or directory
Tôi biết zsh
là có sẵn:
$ which zsh
/usr/bin/zsh
Được rồi, có vẻ hợp lý để thay thế zsh
bằng đường dẫn đầy đủ của nó. Nhưng làm thế nào tôi có thể làm điều đó?
Tôi có một người dùng khác trên hệ thống ( user
), tuy nhiên nó không có quyền root và sudo
không được cài đặt trên hệ thống.
Giả sử rằng vì bất kỳ lý do gì (mã hóa, truy cập vật lý, ...) tôi không thể khởi động trên đĩa CD trực tiếp để sửa đổi tệp.
Tôi biết, tuy nhiên, thông tin đăng nhập cho root
tài khoản.
Câu hỏi của tôi là: Có cách nào, thậm chí là lập trình, để khởi chạy một quy trình với root
tài khoản mà không khởi chạy shell đăng nhập trước không?
su -c "<commands>"
) hoạt động ... chúng ta có thể không sử dụng đơn giản su -c "/bin/bash"
để có được một bash làm việc với người dùng root không?
-c
được chạy qua shell đăng nhập của người dùng. -s
có thể được sử dụng để sử dụng shell khác ... chỉ khi shell đăng nhập hiện tại là hợp lệ hoặc invoker là root.
su
? haygksu
? đại loại nhưsu -c 'sed -i s,root:/:zsh,root:/:/usr/bin/zsh, /etc/passwd'