Tùy chọn người dùng trên mạng làm việc cho núi, không phải cho


9

Tôi đang thử nghiệm các tùy chọn gắn kết cho một chương trình tôi đang viết. Tôi đang chạy Linux Mageia 2.

Tôi đã thêm dòng sau vào /etc/fstab

/dev/sr0 /mem  auto user,noauto, 0 0

và tôi đã xóa tất cả các mục khác liên quan đến /dev/sr0thiết bị cho ổ đĩa DVD của tôi.

Sau đó, hoạt động như người dùng bình thường, tôi có thể thành công

$ mount /dev/sr0

nhưng sau đó tôi nhận được thông báo lỗi ("Chỉ root mới có thể ...") cho

$ umount /dev/sr0

Tất nhiên, thiết bị không bận: Tôi không làm gì giữa mount và umount.

Đã thêm sau khi giải : Nếu bạn chỉ quan tâm đến việc giải quyết vấn đề đó, bạn có thể bỏ qua phần còn lại của câu hỏi và đi thẳng đến câu trả lời được chấp nhận. Phần còn lại của câu hỏi là về công việc của tôi để tìm một giải pháp hoặc tài liệu tốt hơn cho vấn đề. Tuy nhiên, có một phần sau khi chết ở cuối câu hỏi bổ sung cho câu trả lời bằng nhận xét của riêng tôi.

Quyền sở hữu của các tập tin:

$ ls -ld /mem /dev/sr0
brw-rw----+  1 root cdrom 11, 0 mai   14 01:01 /dev/sr0
drwxr-xr-x  12 root root   4096 janv. 21 22:34 /mem/

Và tôi là thành viên của nhóm "cdrom"

Tôi có cùng một vấn đề khi gắn một hình ảnh hệ thống tập tin với một thiết bị vòng lặp.

Tuy nhiên, mọi thứ hoạt động tốt khi tôi thay thế "người dùng" bằng tùy chọn "người dùng", điều này dường như cho thấy hệ thống bị nhầm lẫn khi nhớ ai đã gắn hệ thống tệp.

Câu trả lời đầu tiên của Rahul Patil không mang lại cái nhìn sâu sắc hơn vì về cơ bản nó tương đương với những gì tôi đã sử dụng, nếu sự hiểu biết của tôi về thủ tục vượt qua là chính xác. Tuy nhiên, điều đó khiến tôi phải suy nghĩ thêm về quá trình này (do đó, một upvote) và để biết thêm chi tiết. Điều này thậm chí còn được hỗ trợ nhiều hơn bởi bình luận của Hauke ​​Laging. Theo tôi hiểu, cuối cùng, lệnh umount lấy đối số của nó (một thiết bị hoặc điểm gắn kết) và cố gắng xác định các mục có thể áp dụng /etc/mtabvà sau đó kiểm tra /etc/fstabxem liệu nó có thể thực hiện yêu cầu hay không.

Theo trang man cho mount (8) , tên của người dùng gắn [nên] được ghi vào mtab để anh ta có thể ngắt kết nối lại hệ thống tập tin. Khi tôi kiểm tra /etc/mtabsau khi lắp, không có thông tin nào được viết mà tôi có thể tìm thấy. Tôi không biết làm thế nào nó được lưu trữ và nó sẽ trông như thế nào.

Do đó, vấn đề là thực sự với mountchứ không phải với umount.

Để chắc chắn rằng vấn đề không phải là một /etc/fstabmục khác được sử dụng để gắn kết (điều này sẽ giải thích sự thiếu hiểu biết của tùy chọn "người dùng"), tôi đã xóa tất cả các mục khác trong /etc/fstab, chỉ giữ lại một dòng duy nhất ở đầu câu hỏi của tôi. Sau đó, tôi lặp lại trình tự gắn kết, không may với kết quả tương tự.

$ grep sr0 /etc/mtab
/dev/sr0 /mem udf ro,nosuid,nodev,noexec,relatime,utf8 0 0

$ mount | grep sr0
/dev/sr0 on /mem type udf (ro,nosuid,nodev,noexec,relatime,utf8)

Hauke ​​Laging đã yêu cầu ls -l /etc/mtab, điều mà tôi nghĩ là có lỗi và anh ta thực sự đang yêu cầu cat /etc/mtab. Nhưng dù sao thì tôi cũng đã làm được ...

$ ls -l /etc/mtab
lrwxrwxrwx 1 root root 12 juin  25  2012 /etc/mtab -> /proc/mounts
$ ls -l /proc/mounts
lrwxrwxrwx 1 root root 11 mai   19 13:21 /proc/mounts -> self/mounts
$ ls -l /proc/self/mounts
-r--r--r-- 1 myself mygroup 0 mai   19 13:22 /proc/self/mounts

Thông tin cuối cùng này làm tôi ngạc nhiên. Mặc dù về cơ bản tôi là người dùng duy nhất trên máy tính đó, tôi không thấy lý do tại sao tệp này nên thuộc về tôi hoặc bất kỳ người dùng nào khác ngoài chính root. Rất cám ơn Hauke, nhưng tại sao bạn lại hỏi câu hỏi đó?

Thật ra tập tin không thuộc về tôi. Tôi đoán nó phải là một tập tin ảo. Tôi đã lặp lại yêu cầu là "người bạn" của người dùng, và sau đó là "root":

$ ls -l /proc/self/mounts
-r--r--r-- 1 friend users 0 mai   19 14:10 /proc/self/mounts

# ls -l /proc/self/mounts
-r--r--r-- 1 root root 0 mai   19 14:10 /proc/self/mounts

Tôi sẽ hoan nghênh bất kỳ đề xuất nào về vấn đề có thể xảy ra hoặc để thử nghiệm.

Cảm ơn

Hậu kỳ : đây là một số nhận xét cuối cùng sau khi vấn đề được giải quyết bởi Hauke ​​Laging.

Tôi theo dõi trên web lời dẫn của lời giải thích của Hauke.

Rõ ràng đây là một vấn đề cũ. Nó được giải thích trong một tài liệu cũ từ tháng 10 năm 2000 , đề cập đến một số vấn đề với các lựa chọn khác, nhưng không user. Hy vọng rằng một số vấn đề độ tin cậy kernel hiện đã được sửa chữa.

Vấn đề được đề cập ngắn gọn trong phần lỗi của mounttrang man nhưng không đủ chi tiết, đặc biệt là liên quan đến các thiết lập và hiệu ứng thay thế trên các tùy chọn.

Tuy nhiên, bị mất trong trang người đàn ông rất dài đó là thông tin sau:

When the proc filesystem is mounted (say at /proc), the files
/etc/mtab and /proc/mounts have very similar contents. **The
former has somewhat more information, such as the mount options
used**, but is not necessarily up-to-date (cf. the -n option
below). It is possible to replace /etc/mtab by a symbolic link to
/proc/mounts, and especially when you have very large numbers of
mounts things will be much faster with that symlink, but **some
information is lost that way, and in particular using the "user"
option will fail**.

Chắc chắn sẽ rất hữu ích khi có một gợi ý về điều này trong đó tùy chọn userđược mô tả, đó là nơi đầu tiên tôi nhìn.


Có phải cùng một người dùng mà cả hai hoạt động?
Hauke ​​Laging

Đầu ra mountsau khi thiết bị đã được gắn là gì? Và ls -l /etc/mtab?
Hauke ​​Laging

@Hauke ​​Laging - Tại sao bạn yêu cầu ls -l /etc/mtab?
babou

Xem câu trả lời của tôi dưới đây.
Hauke ​​Laging

/proc/selfchỉ là một liên kết đến /proc/$PIDquá trình gọi. Về vấn đề trang nam: Hãy thoải mái cải thiện văn bản. Tôi chắc chắn những người duy trì sẽ được hạnh phúc.
Hauke ​​Laging

Câu trả lời:


4

Vấn đề là của bạn /etc/mtabkhông phải là một tập tin mà là một liên kết tượng trưng đến /proc/mounts. Điều này có lợi thế nhưng cũng có nhược điểm userkhông hoạt động. Bạn đã đoán đúng lý do cho điều đó: "hệ thống bối rối khi nhớ ai đã gắn hệ thống tập tin". Thông tin này được ghi vào mtab, không thể được ghi ở đó trong trường hợp của bạn. Hạt nhân không quan tâm (thậm chí không biết) về sự gắn kết của người dùng (đây là một tính năng không gian người dùng). Do đó thông tin này không được chứa trong /proc/mounts.

Làm cái này:

cd /etc
cp mtab mtab.file
rm mtab
mv mtab.file mtab

umount vì người dùng sẽ làm việc sau khi bạn đã gắn lại âm lượng.


1

thay vì /dev/sr0tên thiết bị ( ) hãy thử sử dụng điểm gắn kết (trong trường hợp của bạn là điểm gắn kết /mem)

Vì vậy, chỉ sử dụng cho mount:

mount /mem

Để sử dụng không đếm được:

umount /mem

Tôi đã thử nghiệm và làm việc về phía tôi, HĐH là CentOS 5.8


Tại sao nên / mnt có bất cứ điều gì để làm với nó. Nó không phải là một phần của thiết lập gắn kết của tôi. Hay bạn có nghĩa là "umount / mem"? Dù sao, nó không hoạt động.
babou

bạn có thể xóa dấu phẩy sau khi được phép như user,noauto, thay đổi user,noautotừ fstab của bạn
Rahul Patil

Cảm ơn bạn đã nhận xét. Dấu phẩy là kết quả của việc đơn giản hóa /etc/fstabmục nhập tôi đã thực hiện sau khi tôi gặp phải sự cố ... không may vẫn tồn tại mà không có dấu phẩy. Tuy nhiên nhận xét của bạn cho phép tôi làm sạch một mục khác trong stackexchange thực sự thúc đẩy câu hỏi của tôi.
babou
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.