Cách tự động đăng nhập (không cần nhập tên người dùng và mật khẩu) (ở chế độ văn bản)


11

Tôi đã cài đặt Ubuntu 12.04 và chỉnh sửa tệp / etc / default / grub để tự động khởi động vào chế độ văn bản. nhưng mỗi khi tôi bật máy tính, nó hỏi tên người dùng và mật khẩu (ở chế độ văn bản), tôi muốn nó tự động đăng nhập mà không yêu cầu tên người dùng và mật khẩu, vì vậy trong chế độ đồ họa tôi đã đi đến "Cài đặt hệ thống-> Tài khoản người dùng" và kiểm tra "Đăng nhập tự động", nhưng nó không hoạt động. Vậy tôi nên làm gì để tự động đăng nhập ngay cả trong chế độ văn bản?


Hãy thử liên kết
Peachy

Câu hỏi này thêm điều kiện không nhập tên người dùng và mật khẩu trong chế độ văn bản để đăng nhập.
John S Gruber

Câu trả lời:


10

Để khởi động vào chế độ văn bản

sudo vim / etc / default / grub

và thay đổi dòng sau:

GRUB_CMDLINE_LINUX_DEFAULT="text"

thoát và nhập:

 sudo update-grub

Tự động đăng nhập ở chế độ văn bản mà không chỉ định userid hoặc mật khẩu

Phiên bản mới nhất của Ubuntu

Thêm -a <your-user-name>vào dòng:

exec /sbin/getty -8 38400 tty1

trong tập tin /etc/init/tty1.conf

như vậy

exec /sbin/getty -8 38400 tty6 -a gruber

/etc/init/tty1.conf là công việc mới bắt đầu chạy vào thời điểm thích hợp để bắt đầu phiên cuối trên tty1. Thêm -atùy chọn yêu cầu getty gọi chương trình đăng nhập bằng tùy chọn -f để đăng nhập người dùng đó, bỏ qua lời nhắc người dùng từ getty và lời nhắc mật khẩu từ đăng nhập.

Upstart là hệ thống Ubuntu hoạt động như quá trình khởi tạo kernel (tiến trình 1).

Tôi đã thử nghiệm điều này trên tty6 của tôi và nó hoạt động rất tốt. Bởi vì dòng hồi sinh mới bắt đầu nếu bạn thoát khỏi vỏ, nó sẽ tự động khởi động lại.

Phiên bản hệ thống của Ubuntu

Các phiên bản mới hơn của Ubuntu sử dụng phần lớn systemd để quản lý các quy trình hệ thống. Do đó, có những cách làm mới.

Việc sử dụng systemd tty cũng có một chút khác biệt với các thiết bị đầu cuối đồ họa có thể chạy trên một vài thiết bị ảo đầu tiên. tty6 được dành riêng để trở thành một thiết bị đầu cuối ảo văn bản với systemd và có lẽ cũng sẽ có những cái khác.

Để có tty6 xuất hiện khi bạn nhập:

sudo systemctl edit getty@tty6

Một trình soạn thảo nano sẽ xuất hiện trong một tập tin tạm thời. Nhập thông tin sau vào trình soạn thảo đó:

 [Service]
 ExecStart=
 ExecStart=-/sbin/agetty -o '-p -f gruber' -a gruber --noclear %I $TERM

Thoát khỏi trình soạn thảo.

Đặt thêm dòng ExecStart = không phải là một lỗi đánh máy. nó rất quan trọng vì nó bảo systemd hãy quên tham số ExecStart ban đầu mà nó đã biết (từ /lib/systemd/system/getty@.service) để bạn có thể thay thế ExecStart.

Bạn có thể kiểm tra kết quả bằng lệnh sau:

 systemd-analyze verify getty@tty6.service

Tôi thấy một số cảnh báo ở đó khi tôi thử điều này, nhưng không phải về những gì chúng tôi đang làm ở đây.

Nếu đã có một quá trình tty đang diễn ra trên tty6, bạn sẽ phải khởi động lại nó để xem kết quả.


Để tìm hiểu điều này, tôi đã đề cập đến câu trả lời tuyệt vời tại https://askubfox.com/a/659268/63886 . Ở đó Muru tình cờ sử dụng cùng một mục tiêu như một ví dụ về cách điều chỉnh systemd. Dòng ExecStart của anh là:

 ExecStart=-/sbin/agetty -a muru --noclear %I $TERM

Sự khác biệt dường như là một vài biến môi trường liên quan đến hệ thống hơn xuất hiện trong phiên bản của tôi.

Kết quả cuối cùng của chỉnh sửa ở trên là việc tạo một tệp có tên là override.conf trong /etc/systemd/system/getty@tty6.service.d/ chỉ chứa những gì bạn đã nhập ở trên. Nếu bạn tự tạo một tệp như vậy, bạn sẽ cần chạy systemctl daemon-reloadlệnh để có được systemd để nhận ra nó, và sau đó có thể khởi động lại bất kỳ quy trình agetty hiện có nào trên bảng điều khiển ảo đó. systemctl --edit chăm sóc daemon-tải lại cho bạn.


1
tty1làm việc tốt cho tôi
razzak

1
Không có tệp / etc / init / tty * trên hệ thống của tôi
ka3ak

@ ka3ak Cảm ơn bạn đã đưa nó lên. Ubuntu mới sử dụng systemd và các tệp cấu hình khởi động khác nhau về nội dung và vị trí. Tôi đã cập nhật câu trả lời với phần systemd. Nếu bạn quyết định dùng thử, xin vui lòng đọc câu trả lời của Muru.
John S Gruber

+1 cho giải pháp dựa trên systemd
Paul Grinberg

3

mở terminal và làm như

sudo kate /etc/default/grub

sau đó tìm dòng này và thay đổi như hình bên dưới

GRUB_CMDLINE_LINUX_DEFAULT="text"

Bây giờ hãy đóng trình soạn thảo và làm như

sudo update-grub 

và khởi động lại ngay bây giờ


Tôi thích câu trả lời này, nhưng bạn có thể muốn thêm một phần từ: đến: cho phần tìm dòng này và thay đổi phần
RobotHumans

Tôi đã làm theo hướng dẫn nhưng nó vẫn khởi động GUI. Có thể là do tôi đang sử dụng hộp ảo?
errorHandler-

1

sudo gedit etc/default/grub

và thay thế

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

đến

GRUB_CMDLINE_LINUX_DEFAULT="text"

Đồng thời nhận xét GRUB_HIDDEN_TIMEOUT = 0 Dòng này là để bỏ ẩn menu GRUB (nhận xét là đặt "#" trong dòng)

sudo update-grub

và để bắt đầu x chỉ cần gõ startx


1
Không, tôi đã làm điều này trước đây, tôi chỉ muốn chế độ văn bản không yêu cầu tên người dùng và mật khẩu
Navid777

0
sudo update-rc.d -f gdm remove

Nếu bạn sử dụng Kubfox, hãy thay thế gdm bằng kdm trong lệnh trên.

nếu nó vẫn thực hiện khởi động / tắt đồ họa, nhưng nó sẽ thả bạn xuống dòng lệnh sau khi khởi động. Bạn có thể nên kiểm tra cấu hình grub. Cho rằng Bấm vào đây


Tôi đã thử điều đó nhưng nó vẫn khởi động vào GUI
errorhandler

Sau đó, bạn có thể muốn thử cấu hình GRUB.
Mitch
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.