Làm cách nào để thay đổi shell mặc định của tôi trên tài khoản miền


13

Tôi sử dụng tài khoản miền samba4 để đăng nhập vào máy tính xách tay của mình. Tôi muốn dùng thử zsh, nhưng vì người dùng của tôi không cư trú /etc/passwdnên tôi thấy rằng chshkhông thể tìm thấy người dùng của mình. Bất cứ ai có thể tư vấn làm thế nào tôi có thể thay đổi của tôi login_shell?

Tôi không thể thấy bất cứ điều gì trong tôi ldap.conf, nssswitch.confhoặc bất cứ điều gì /etc/pam.dđã giúp ...

Nhìn vào bộ điều khiển miền tôi nghĩ có lẽ tôi có thể sử dụng công cụ samba, nhưng tôi không thấy gì giúp tôi chỉ cho tôi đi đúng hướng ...

Câu trả lời:


24

Tôi đã hỏi về điều này trong kênh #suse trên Freenode và Miuku đề xuất giống như Arul, tuy nhiên, anh ấy đã đề cập đến hai điều, nếu tôi đang sử dụng tên miền Windows, tôi có thể đặt thuộc tính loginShell.

Đáng buồn thay, tôi đang ở trên một miền samba, vì vậy điều đó không giúp đỡ. Nhưng đề nghị cuối cùng của ông là hoàn hảo, có được đầu ra của:

getent passwd USERNAME

Điều này sẽ có mục nhập hợp lệ tương đương với người dùng của bạn trong / etc / passwd, lấy cái này, dán nó vào / etc / passwd và cập nhật shell ở cuối cho đường dẫn hợp lệ của shell bạn muốn sử dụng. Bằng cách này, nó không thay đổi nó cho tất cả người dùng và bạn có thể chắc chắn rằng vỏ đó nằm trên máy bạn đang định cấu hình này trước khi thực hiện thay đổi.


Nếu bạn không muốn sao chép và dán, bạn có thể sử dụng : getent passwd `id -un` | sudo tee -a /etc/passwd. Không chắc chắn nếu nó hoạt động trong tất cả các shell nhưng ít nhất bash và tcsh đều ổn.
Tom Saleeba

Làm điều này trên hộp RHEL 7 được kết nối với miền Windows AD khiến tôi bị khóa khỏi máy chủ cho đến khi dòng bị xóa khỏi tệp / etc / passwd ...
Taegost

Cảm ơn @Taegost thông tin, tôi đã không cố gắng trên RHEL
rumbles

5

Tôi đã có chính xác cùng một vấn đề. Vì không phải tất cả các máy trong miền của tôi đều được cài đặt zsh và vì tôi không muốn ảnh hưởng đến tất cả người dùng, nên cuối cùng tôi đã đưa vào .bashrc của mình:

if [ -x /usr/bin/zsh ]; then
  echo 'starting zsh'
  # export SHELL=/bin/zsh #edit: this is probably not what you want, see the comment.
  exec /usr/bin/zsh
fi

Điều này có thể không phù hợp, nhưng ít nhất nó sẽ hoàn thành công việc.


Một người nào đó trong công việc của tôi đang làm một cái gì đó tương tự gần đây, anh ta gặp vấn đề với phương pháp của mình không tải tệp .zshrc. Tôi không biết liệu phương pháp của bạn có hiệu quả trong khía cạnh đó không, bạn đã thử chưa? Ngoài ra, biến SHELL của bạn không giống với đường dẫn đến thùng zsh của bạn, điều đó có đúng không? Tôi đã thay đổi cấu hình của chúng thành phương pháp cài đặt nó trong tệp passwd
Rumble

Thú vị - .zshrc của tôi được đọc chính xác. về điểm thứ hai của bạn, cảm ơn vì đã đưa nó lên, đó là một sai lầm từ phía tôi. Xem tại đây để có câu trả lời: unix.stackexchange.com/questions/330233/ trên
Matteo Giani

Vâng, đó chắc chắn là một cách để làm điều đó, tôi vẫn thích đặt nó trong tệp / etc / passwd như với câu trả lời được chấp nhận của tôi khi bạn không gọi bash sau đó tải zsh bằng bash (cộng với tôi đoán nếu bạn nhấn ctrl-D thiết lập của bạn có bị rớt xuống bash shell không?) - Nó yêu cầu người dùng đảm bảo bạn đã cài đặt zsh và để quản trị viên thực hiện thay đổi
Rumble

Thay vào đó, sẽ tốt hơn nếu sử dụng /usr/bin/zsh, thay vào đó là sử dụng exec /usr/bin/zshđể thay thế bashquy trình hệ vỏ bằng quy trình hệ zshvỏ?
Động học Tripp

Tôi nghĩ rằng bạn có thể đúng @TrippKinetic.
Matteo Giani

2

Nếu bạn có quyền truy cập để chỉnh sửa cấu hình bộ điều khiển miền samba, bạn có thể đặt thuộc tính sau cho phép bạn đặt shell trong smb.conf

template shell    = /bin/zsh

Không chắc chắn điều gì xảy ra nếu bạn đăng nhập vào máy chưa cài đặt zsh (không phải tất cả các bản phân phối đều được cài đặt zsh theo mặc định), nhưng tôi đoán là nó sẽ gọi shell mặc định.

Nếu bạn chỉ đơn giản muốn thử nó, chỉ cần gõ zsh để có được một subshell mà tôi chắc chắn bạn đã biết điều đó rồi.


Cảm ơn, nhưng sẽ không ảnh hưởng đến tất cả người dùng, không chỉ của tôi?
Rumble

Vâng, nó là một tham số toàn cầu ảnh hưởng đến tất cả người dùng. Trong trường hợp này, tất cả người dùng đã zshcài đặt. Tôi không chắc bạn có thể hạn chế điều này với người dùng cụ thể nhưng tôi sẽ kiểm tra idmap uidtham số có thể cho phép bạn làm điều đó.
Arul Selvan

Cảm ơn, nhưng đó không phải là những gì tôi đang theo đuổi. Tôi không muốn thay đổi vỏ của mọi người, tôi chỉ muốn thay đổi vỏ của mình. Tôi đã thử thay đổi cài đặt này trong smb.conf cục bộ của mình và sau khi khởi động lại, nó không có hiệu lực
Rumble
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.