Điểm:1

Làm cách nào một tệp có thể hiển thị với người dùng thông thường nhưng không tồn tại với root?

lá cờ de

Tôi đã hỏi câu hỏi này ngày hôm qua nhưng nó được đánh dấu là trùng lặp và bị đóng do ngữ cảnh của nó, vì nó được cho là một câu hỏi X/Y, trong khi tôi chỉ quan tâm đến vấn đề chung chung là "điều này có thể xảy ra như thế nào", như của tôi nghiên cứu cá nhân (trên trang web này cũng như trên internet) không trả lại kết quả nào và tôi muốn tìm hiểu thêm về cách phát hiện và xử lý loại sự cố đặc biệt đó.

Vì vậy, không có bất kỳ ngữ cảnh nào, ngày hôm qua tôi đã tìm thấy một số tệp trên một trong các máy chủ Debian của chúng tôi mà người dùng thông thường có thể nhìn thấy nhưng không hiển thị. nguồn gốc, mặc dù chúng thuộc sở hữu của nguồn gốc.

Nó đã thử rất nhiều lệnh trên các tệp đó và bất cứ điều gì tôi thử, người dùng xử lý các tệp như các tệp thông thường, nhưng nguồn gốc phản ứng giống như những tệp đó đơn giản là không tồn tại ngay từ đầu (nhưng dù sao cũng không thể ghi đè lên chúng). Những người đang có KHÔNG PHẢI tập tin dấu chấm.

Đây là kết quả của các lệnh này:

Như người dùng

người dùng@debian:/tmp$ nhóm
người dùng cdrom đĩa mềm âm thanh nhúng video plugdev netdev

người dùng@debian:/tmp$ pwd
/tmp

user@debian:/tmp$ ls -lai
tổng cộng 320
1048577 drwxrwxrwt 11 gốc gốc 4096 ngày 7 tháng 9 13:04 .
      2 drwxr-xr-x 23 gốc gốc 4096 ngày 6 tháng 9 17:34 ..
5901230 -rw-r----- 1 gốc gốc 0 ngày 7 tháng 9 12:59visible_file
<các_tệp khác>

user@debian:/tmp$ touch vô hình_file
chạm: không thể chạm vào 'invisible_file': Quyền bị từ chối

user@debian:/tmp$ rmvisible_file
rm: xóa tệp trống thông thường được bảo vệ chống ghi 'invisible_file'? y
rm: không thể xóa 'invisible_file': Thao tác không được phép

user@debian:/tmp$ statvisible_file
  Tập tin: vô hình_file
  Kích thước: 0 Khối: 0 Khối IO: 4096 tệp trống thông thường
Thiết bị: 801h/2049d Inode: 5901230 Liên kết: 1
Truy cập: (0640/-rw-r-----) Uid: ( 0/ root) Gid: ( 0/ root)
Truy cập: 2021-09-07 12:59:54.859124530 +0200
Sửa đổi: 2021-09-07 12:59:54.859124530 +0200
Thay đổi: 2021-09-07 13:04:03.063441285 +0200
 Sinh: -

user@debian:/tmp$ cài đặt /dev/nullvisible_file
cài đặt: không thể xóa 'invisible_file': Thao tác không được phép

user@debian:/tmp$ con mèo vô hình_file
con mèo: vô hình_file: Quyền bị từ chối

user@debian:/tmp$ find /tmp/ -iname "*invisible_file*"
/tmp/invisible_file

người dùng@debian:/tmp$

Như nguồn gốc

root@debian:/tmp# nhóm
nguồn gốc

root@debian:/tmp# pwd
/tmp

root@debian:/tmp# ls -lai
tổng số 308
1048577 drwxrwxrwt 11 gốc gốc 4096 ngày 7 tháng 9 13:04 .
      2 drwxr-xr-x 23 gốc gốc 4096 ngày 6 tháng 9 17:34 ..
<các_tệp khác>

root@debian:/tmp# touch vô hình_file

root@debian:/tmp# ls -lai
tổng số 308
1048577 drwxrwxrwt 11 gốc gốc 4096 ngày 7 tháng 9 13:04 .
      2 drwxr-xr-x 23 gốc gốc 4096 ngày 6 tháng 9 17:34 ..
<các_tệp khác>

root@debian:/tmp# rmvisible_file
rm: không thể xóa 'invisible_file': Không có tệp hoặc thư mục như vậy

root@debian:/tmp# statvisible_file
stat: không thể stat 'invisible_file': Không có tệp hoặc thư mục như vậy

root@debian:/tmp# cài đặt /dev/nullvisible_file
cài đặt: không thể tạo tệp thông thường 'invisible_file': Không có tệp hoặc thư mục như vậy

root@debian:/tmp# con mèo vô hình_file
con mèo: vô hình_file: Không có tệp hoặc thư mục như vậy

root@debian:/tmp# find /tmp/ -iname "*invisible_file*"

root@debian:/tmp#

Lưu ý rằng ngay cả trong ls lệnh số lượng tổng số khối được sử dụng là khác nhau, sự khác biệt tương ứng với vô hình_file kích thước.

Cách duy nhất tôi có thể ghi đè lên tệp là tạo một tệp có tên khác (và thậm chí cả các quyền khác) và như nguồn gốc, mv điều đó qua rồi vô hình_file, nhưng vô hình_file tiếp tục được ẩn để nguồn gốc.

Câu hỏi của tôi là: làm thế nào, trong thế giới Linux, người ta có thể làm cho root hoàn toàn bỏ qua một số tệp thông thường như thể chúng không có ở đó ngay từ đầu, như trong trường hợp của tôi? Và làm cách nào tôi có thể điều tra vấn đề đó, hiển thị lại các tệp đó và đảm bảo rằng không có tệp vô hình nào khác để root?

CHỈNH SỬA :

Đây là gắn kết đầu ra, nó không hiển thị bất cứ điều gì đặc biệt với tôi:

root@debian:~# núi
sysfs trên /sys gõ sysfs (rw,nosuid,nodev,noexec,relatime)
proc trên /proc loại proc (rw,nosuid,nodev,noexec,relatime)
udev trên /dev gõ devtmpfs (rw,nosuid,relatime,size=4078644k,nr_inodes=1019661,mode=755)
devpts trên /dev/pts gõ devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs bật/chạy gõ tmpfs (rw,nosuid,noexec,relatime,size=817960k,mode=755)
/dev/sda1 on / gõ ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs trên/sys/kernel/loại bảo mật securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs trên /dev/shm gõ tmpfs (rw,nosuid,nodev)
tmpfs trên /run/lock gõ tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs trên /sys/fs/cgroup gõ tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup trên /sys/fs/cgroup/systemd gõ cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore trên /sys/fs/pstore gõ pstore (rw,nosuid,nodev,noexec,relatime)
cgroup trên /sys/fs/cgroup/devices gõ cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup trên /sys/fs/cgroup/net_cls,net_prio gõ cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup trên /sys/fs/cgroup/pids gõ cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup trên /sys/fs/cgroup/cpu,cpuacct gõ cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup trên /sys/fs/cgroup/loại bộ nhớ cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup trên /sys/fs/cgroup/cpuset loại cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup trên /sys/fs/cgroup/perf_event loại cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup trên /sys/fs/cgroup/blkio gõ cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup trên /sys/fs/cgroup/freezer loại cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
systemd-1 trên /proc/sys/fs/binfmt_misc gõ autofs (rw,relatime,fd=35,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=9463)
Hugetlbfs trên /dev/hugepages gõ Hugetlbfs (rw,relatime)
debugfs trên /sys/kernel/debug loại debugfs (rw,relatime)
mqueue trên /dev/mqueue gõ mqueue (rw,relatime)
tmpfs trên /run/user/1000 gõ tmpfs (rw,nosuid,nodev,relatime,size=817956k,mode=700,uid=1000,gid=1000)
binfmt_misc trên /proc/sys/fs/binfmt_misc gõ binfmt_misc (rw,relatime)

đầu ra của fsck -nf là như sau:

root@debian:~# fsck -nf
fsck từ util-linux 2.29.2
e2fsck 1.43.4 (31-Jan-2017)
Cảnh báo! /dev/sda1 được gắn kết.
Cảnh báo: bỏ qua khôi phục nhật ký vì thực hiện kiểm tra hệ thống tệp chỉ đọc.
Vượt qua 1: Kiểm tra nút, khối và kích thước
Đã xóa inode 524799 không có dtime. Sửa chữa? không

Đã tìm thấy các nút là một phần của danh sách liên kết mồ côi bị hỏng. Sửa chữa? không

Inode 1441794 là một phần của danh sách inode mồ côi. LÀM NGƠ.
Pass 2: Kiểm tra cấu trúc thư mục
Pass 3: Kiểm tra kết nối thư mục
Vượt qua 4: Kiểm tra số lượng tham chiếu
Pass 5: Kiểm tra thông tin tóm tắt nhóm
Chặn sự khác biệt về bitmap: -(11108512--11108538)
Sửa chữa? không

Số khối miễn phí bị sai (16886612, được tính = 16857986).
Sửa chữa? không

Sự khác biệt về bitmap inode: -524799 -1441794
Sửa chữa? không

Số inode miễn phí bị sai (5867140, được tính = 5866555).
Sửa chữa? không


/dev/sda1: ********** CẢNH BÁO: Hệ thống tập tin vẫn có lỗi **********

/dev/sda1: 162172/6029312 tệp (0,3% không liền kề), 7230636/24117248 khối
root@Confluence:~#

Cuối cùng tôi đã có thể chạy đầy đủ fsck trên hệ thống tập tin. Nó đã sửa các lỗi được hiển thị ở trên, nhưng không có kết quả vì các tệp vẫn không hiển thị.

lá cờ ng
`mount` có nói gì đặc biệt về `/tmp` không? Nói cách khác, bạn có thể giải thích về cấu trúc hệ thống tệp của hệ thống không? Tôi cũng tò mò điều gì sẽ xảy ra nếu bạn `fsck` nó; có lẽ nó bị hỏng?
mbernard avatar
lá cờ de
@Halfgaar Đầu ra của `mount` giống với `root` hoặc `user` và dường như không hiển thị bất cứ điều gì liên quan đến `/tmp`. Tôi sẽ cập nhật bài đăng của mình với đầu ra đã nói.
mbernard avatar
lá cờ de
@Halfgaar Tôi đã cập nhật câu trả lời của mình với những gì đã xảy ra với `fsck`. Thật không may, nó không làm gì cả.
lá cờ ng
Bạn đã chạy lại fsck chưa? Tôi đã gặp sự cố trước đó, tôi phải chạy nó nhiều lần cho đến khi hết lỗi.
mbernard avatar
lá cờ de
@Halfgaar Xin lỗi, tôi không quen với trang web đó và không thấy rằng tôi đã nhận được câu trả lời từ bạn. Tôi thực sự đã chạy `fsck` nhiều lần. Nó cho biết không còn lỗi nào nữa sau những lỗi đầu tiên đó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.