'Script / dev / null' làm gì?


21

Mỗi lần tôi đăng nhập vào VM bằng root, suvào tài khoản người dùng và thử sử dụng screennó sẽ gây ra lỗi:

Cannot open your terminal '/dev/pts/0' - please check.

Một bài đăng Stack Overflow cho biết tôi cần sử dụng script /dev/nullđể sửa nó và nó hoạt động, nhưng nó vẫn không giải thích được tại sao tôi cần gõ script /dev/null. Tôi muốn hiểu những gì nó làm và tại sao tôi cần phải gõ nó.


2
> Một bài đăng Stack Overflow cho biết - có thể hữu ích nếu bạn cũng thêm một liên kết đến bài đăng đó, có thể trong một bình luận.
törzsmókus

Nó có thể đã được stackoverflow.com/a/44244425/340790 , ví dụ.
JdeBP

Câu trả lời:


27

Bạn không thể mở /dev/pts/0vì nó thuộc quyền sở hữu của root và sau khi bạn chuyển sang một người dùng khác, bạn không còn có thể mở nó thông qua đường dẫn của nó, nhưng bạn vẫn có thể sử dụng nó thông qua tay cầm đã mở cho nó, được kế thừa từ quá trình cha mẹ.

script /dev/null sẽ tạo ra một pty khác, thuộc sở hữu của người dùng hiện tại.

Dù sao, lỗi / giới hạn đó dường như đã được sửa trong các phiên bản gần đây của screen(ví dụ: 4.99.0), sẽ gửi chính xác tay cầm đến thiết bị đầu cuối hiện tại thông qua SCM_RIGHTStin nhắn phụ trợ trên ổ cắm tên miền unix, thay vì chỉ gửi tên của thiết bị đầu cuối và screenmáy chủ cố gắng mở nó (và thất bại). Điều tương tự với tmux.

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.