Chúng tôi có thể định cấu hình các shell khác nhau cho những người dùng khác nhau trên một bản phân phối Linux / Unix không?


7

Chà, đây không phải là điều mà tôi muốn làm nhưng tôi hỏi câu hỏi này để biết thêm về cấu hình Shell trong các hệ thống Unix / Linux. Vì vậy, tình huống mà tôi muốn có câu trả lời là như sau -:

Vì chúng tôi có các hệ vỏ khác nhau được cung cấp cho chúng tôi bởi một hệ thống Unix / Linux, chúng tôi có thể định cấu hình một hệ vỏ khác nhau cho mỗi người dùng được phép truy cập hệ thống. Vì vậy, giả sử Tom, Dick và Harry là 3 người dùng được phép sử dụng hệ thống "Unix" và tôi muốn "Tom" sử dụng shell zsh , Dick để sử dụng tcsh và Harry để sử dụng shell bash . Làm thế nào tôi có thể làm điều này và điều này thậm chí có thể?


man chshvà bạn nên có câu trả lời của bạn :)
IMSoP

Câu trả lời:


8

Trước hết, vỏ hợp lệ được liệt kê trong /etc/shells. Bất kỳ người dùng nào cũng có thể thay đổi shell mặc định của họ bằng cách sử dụng chshmiễn là nó có trong /etc/shellstệp.

Thứ hai, nếu bạn muốn thêm một vỏ cho /etc/shellsbạn có thể, nếu bạn loại bỏ một mục từ đó, đặc biệt là / bin / sh bạn có thể sẽ làm hỏng hệ thống, bởi vì /bin/loginthông thường sẽ KHÔNG khởi chạy một vỏ không được liệt kê ở đó.

Thông tin thêm có sẵn trong các trang man chsh (1), login.defs (5) và passwd (5).

Khả năng này đã có từ lâu (tôi tin BSD 4.x)


1

Có, người dùng khác nhau có thể có thiết lập shell khác nhau. Bạn có thể thay đổi chúng bằng, ví dụ, chshlệnh. Để thay đổi trình bao của người dùng hiện tại thành bash (giả sử nó nằm trong / bin / bash):

chsh -s /bin/bash [username]

Bạn cũng có thể sửa đổi /etc/passwdtệp của mình theo cách thủ công và thay đổi phần chỉ định trình bao cho người dùng đó. Ví dụ:

root:*:0:0:System Administrator:/var/root:/bin/sh

Phần cuối cùng trong mỗi dòng của / etc / passwd của bạn, sẽ trông giống như dòng ở trên, sau phần cuối :, chỉ định trình bao cho người dùng đó.


Bạn thực sự không nên sửa đổi / etc / passwd bằng tay

Nhưng hãy nói rằng tôi là quản trị viên hệ thống và tôi muốn hạn chế người dùng sử dụng một trình bao cụ thể, tôi có thể làm điều đó không và bằng cách nào?

Chắc chắn, nếu bạn không biết những gì bạn đang làm!
Martin Dinov

bạn có thể chỉ cho tôi một ví dụ hoặc minh họa ví dụ tôi đã lấy không, làm thế nào để tôi làm điều đó?

2
@AnkitSablok Câu hỏi của bạn không đề cập đến việc giới hạn trình bao của người dùng, chỉ định cấu hình chúng . Hạn chế người dùng chạy lệnh (nghĩa là không để họ gõ bashtại tcshdấu nhắc) là một câu hỏi rất khác.
IMSoP

1

Bạn có thể sử dụng chsh!

chsh -s /bin/sh user_name
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.