Tài khoản người dùng Centos nologin nhưng có thể su vào tài khoản


12

Tôi mới sử dụng CentOS (chạy CentOS 6). Tôi có kinh nghiệm trước đây với OpenSuse.

Tôi đang cố gắng thiết lập một tài khoản cho người dùng. Tôi không muốn tài khoản có sẵn để đăng nhập qua ssh hoặc qua màn hình đăng nhập. Nhưng, tôi vẫn muốn có thể đăng nhập vào người dùng bằng cách sử dụng lệnh su. Điều này cho phép tôi chạy một số ứng dụng nhất định với tư cách là người dùng có quyền truy cập hạn chế. Người dùng không phải là siêu người dùng, vì vậy nó không thể ảnh hưởng đến các ứng dụng của người dùng khác.

Mọi sự trợ giúp sẽ rất được trân trọng. Tôi thường muốn sử dụng điều này để chạy máy chủ Glassfish, v.v.


Vậy bạn đã giải quyết điều đó như thế nào với OpenSuSE?
Nils

Câu trả lời:


15

Trên centos, bạn sẽ thiết lập với người dùng không có vỏ bằng cách sử dụng / sbin / nologin:

[root@localhost ~]# grep named /etc/passwd
named:x:25:25:Named:/var/named:/sbin/nologin
[root@localhost ~]# 

Nếu bạn cần phải trở thành điều đó, hãy sử dụng tham số -s và đặt làm đối số cho lớp vỏ bạn chọn, như vậy:

[root@localhost ~]# su - named -s /bin/bash
-bash-4.1$ 

Lưu ý rằng nếu bạn sử dụng bash, nó sẽ đọc các cài đặt từ / etc / profile trước và sẽ mặc định cho các cài đặt đó nếu không có .bash_profile, .bash_login or.profile trong thư mục nhà của người dùng. Tất nhiên, nếu bạn muốn sử dụng các cài đặt môi trường hiện có trong root, bạn có thể xóa dấu gạch ngang:

lối ra [

root@localhost ~]# su - named -s /bin/bash
-bash-4.1$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
-bash-4.1$ exit
logout
[root@localhost ~]# su named -s /bin/bash
bash-4.1$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
bash-4.1$ 

0

Một cách phổ biến là đặt shell của người dùng thành /bin/false


Tôi đã thử đặt nó thành / bin / false nhưng có vẻ như centOS 6 không có tùy chọn này. Nó không có tùy chọn bin / nologin, nhưng điều này không cho phép tôi su vào tài khoản người dùng.

thửsu -m username
unbeli

Nếu tôi đặt người dùng thành / sbin / nologin và tôi cố gắng sử dụng tùy chọn -m, nó sẽ cho tôi biết rằng tài khoản hiện không có sẵn. Tôi cũng đã thử thêm / bin / false vào tệp shell. Khi tôi làm điều này, lệnh su đơn giản là không chuyển sang người dùng.

ok, KHÔNG thêm / bin / false vào tập tin shell. Đặt shell của người dùng thành / bin / false. Sử dụng su -m.
unbeli

Tôi đã xóa nó khỏi tệp / etc / shells và đặt shell của người dùng thành / bin / false bằng lệnh usermod. Nếu bây giờ tôi cố gắng su -m tên người dùng, nó sẽ cho tôi biết rằng tôi không có quyền đối với .bashrc. Tôi đang đăng nhập với quyền root. Nếu bây giờ tôi làm: su - tên người dùng thì nó không có lỗi, nhưng tôi vẫn được xem là root. Đây có phải là bình thường trong Centos?

0

Tôi thường đặt "x" vào trường mật khẩu được mã hóa của những người dùng "kỹ thuật" như vậy. Vì vậy, người dùng sẽ không có bất kỳ mật khẩu có thể. Nếu bây giờ cũng có khóa công khai trong ủy quyền_key của người dùng đó, tài khoản đó sẽ khá an toàn.

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.