Đăng nhập với tư cách người dùng không root trong terminal


18

Đây là một câu hỏi mà tôi mong đợi sẽ nhanh chóng nhận được câu trả lời từ google. Tuy nhiên bằng cách nào đó google đang làm tôi thất bại. Giả sử tôi đã đăng nhập vào một phiên cuối và tôi muốn tạm thời làm việc như một người dùng không phải root khác có mật khẩu mà tôi biết mà không cần rời khỏi phiên của mình. Khi đăng nhập như người dùng này, tôi muốn thư mục chính, v.v., cho người dùng này thiết lập chính xác cho đến khi tôi đăng xuất. Làm thế nào để làm điều đó?

Tôi đã thử

su -- username

và sau đó nhập mật khẩu, nó không tạo ra bất kỳ lỗi nào nhưng tôi thấy không có thay đổi rõ ràng nào về dấu nhắc lệnh, nó vẫn sẽ nói myname @ myhost. Thư mục chính cũng là tên của tôi và không phải là thông tin đăng nhập mới mà tôi đã cố đăng nhập.

Tôi - như hiện tại rõ ràng - khá thiếu kinh nghiệm trong linux / Ubuntu, vì vậy mọi thông tin đều được chào đón.

Câu trả lời:


18

Bạn muốn đổi sang người dùng nào?

Vấn đề là bạn đang cố gắng "su" vào một người dùng không có vỏ được gán cho nó. Hầu hết người dùng như mysql, xung, v.v., được tạo bởi hệ thống hoặc bởi một số gói khi bạn cài đặt phần mềm không có vỏ được gán.

Bạn có thể kiểm tra xem người dùng có vỏ được gán hay không bằng cách xem /etc/passwdtệp, chỉ cần nhìn vào cuối dòng của mỗi người dùng, nếu nó nói /bin/falsecó nghĩa là nó không có vỏ được gán, nếu nó có thứ gì đó giống /bin/bashhoặc khác. shell, sau đó bạn sẽ có thể "su" vào người dùng đó.

Khi tôi nói "shell được gán", về cơ bản nó có nghĩa là nó có "quyền truy cập shell"

Tuy nhiên, nếu người dùng không có quyền truy cập shell, bạn luôn có thể thực thi các lệnh như người dùng đó với

 sudo -u user command

Tuy nhiên, nếu người dùng không có quyền truy cập shell, bạn luôn có thể thực thi các lệnh như người dùng đó bằng "lệnh người dùng sudo -u"
Sam

Nối -s /bin/bashvào sulệnh của bạn hoặc sử dụng chsh -u username -s /bin/bashđể thay đổi shell cho người dùng. Cẩn thận với ý nghĩa bảo mật này có thể có.
gertvdijk

6

Nếu bạn có quyền truy cập sudo thì tôi khuyên bạn nên

sudo su username -

Về cơ bản nó cũng giống như vậy, nhưng chỉ yêu cầu bạn biết mật khẩu của mình chứ không phải những người dùng khác.

tuy nhiên nếu bạn có mật khẩu người dùng khác:

su username - nên làm việc tốt

chú ý 1 - và đó là cuối cùng.


Bằng cách nào đó cả hai cách bạn mô tả hoạt động chính xác như của tôi - lệnh được chấp nhận không có lỗi nhưng thư mục chính không đúng và lời nhắc nói rằng tôi vẫn là người dùng ban đầu. Nếu tôi đăng xuất sau đó tôi sẽ đăng xuất hoàn toàn.
Andrew Savinykh

Ok, người dùng của bạn đăng nhập như được phép đăng nhập? Bạn có thể chặn tài khoản đăng nhập bằng cách đặt shell của chúng thành "true" và điều đó sẽ thực hiện chính xác như bạn mô tả. Điều này đã từng được sử dụng rất nhiều trên tài khoản "hệ thống" như "apache" và "ftp" để kiểm tra sudo cat /etc/passwdKHÔNG ĐƯỢC NÓI NỘI DUNG TẠI ĐÂY. Chỉ cần nhãn cầu và đảm bảo người dùng có vỏ thực sự là chút cuối cùng của dòng họ.
coteyr

1
lưu ý phụ, cách thích hợp hơn để làm điều này là đặt shell thành "false" sẽ gây ra lỗi. Mặc dù một số hệ thống và tài khoản vẫn sử dụng đúng vì lý do kỹ thuật hoặc bảo mật psudo (để làm trầm trọng thêm việc
đánh cắp
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.