Câu trả lời:
Giả sử bạn chỉ quan tâm đến việc ẩn các tệp hiển thị trong nautilus, có một lỗi trên Gnome Bugzilla về điều này. Tuy nhiên, hiện tại, lỗi đó vẫn chưa được giải quyết.
Có một cách khác để ẩn các tập tin xuất hiện trong nautilus. Nếu bạn tạo một tệp được gọi .hidden
bên trong thư mục, mọi tên tệp được liệt kê trong tệp sẽ không được hiển thị.
Ví dụ, bên dưới là tệp .hidden mà tôi đã tạo. Tệp này sẽ ẩn bất kỳ tệp hoặc thư mục có tên b
hoặc e
nằm trong cùng thư mục với tệp .hidden.
Dưới đây là một ảnh chụp màn hình của thư mục chứa tệp .hidden. Lưu ý rằng bạn chỉ nhìn thấy ba tập tin: a
, c
, và f
. Bạn không thấy tệp .hidden do '.' ở đầu tên của nó.
Ảnh chụp màn hình bên dưới là của cùng một thư mục như trước đây. Tuy nhiên, lần này, tôi nhấn Ctrl+ Hđể khiến nautilus hiển thị các tệp và thư mục ẩn. Lưu ý cách có một số tệp bổ sung hiển thị. Bây giờ bạn thấy một số tệp đã bị ẩn trước đó do có tên bắt đầu bằng '.'. Hiện tại cũng có các tệp được gọi là 'b' và 'e', mặc dù không có tên bắt đầu bằng '.', Đã bị ẩn do được liệt kê trong tệp .hidden.
Các tệp được đề cập trong tệp .hidden sẽ chỉ bị ẩn trong nautilus. Các công cụ như ls
vẫn sẽ hiển thị chúng. Tệp .hidden cũng không được đệ quy. Nó chỉ ảnh hưởng đến các tệp trong cùng thư mục với tệp .hidden nằm trong.
Một số người trên diễn đàn đã đi trước và tạo các tập lệnh cho nautilus để giúp dễ dàng thêm tệp vào tệp .hidden. Các kịch bản đầu tiên bao gồm một lời giải thích tốt đẹp về cách cài đặt và sử dụng các kịch bản, nhưng kịch bản thứ hai là một chút bụi và ngắn hơn. Hãy sử dụng một trong hai kịch bản để làm cho cuộc sống của bạn dễ dàng hơn một chút.
Unix và Linux chỉ hỗ trợ ẩn các thư mục đi kèm với a .
.
Nếu bạn thực sự muốn đưa chúng ra khỏi đường đi, nhưng muốn chúng không có .
s, hãy đặt tất cả chúng .hidden
vào cùng một thư mục với tệp hoặc thư mục bạn muốn ẩn. .hidden
sẽ không bị lộ bởi trình quản lý tệp và các tệp của bạn sẽ không thay đổi tên.
Từ dòng lệnh, bạn có thể thử một cái gì đó như thế này trong .bash_aliases
tệp của mình :
lsh() {
[ -s .hidden ] && echo "lsh: hiding $(wc -l .hidden) patterns" && ls $@ | grep -v -F "$(cat .hidden)";
[ ! -f .hidden ] && ls $@
}
Điều này thêm một lệnh mới lsh
hoạt động như thế ls
, nhưng ẩn các tệp được liệt kê trong một .hidden
thư mục. (Nó cũng thiếu một số tính năng của nó như danh sách cột và đầu ra được tô màu.)
Nếu bạn muốn ẩn các tệp, bạn chỉ còn lại việc đổi tên chúng với .
quy ước * NIX. Xin lỗi, nhưng đó là nó.
Tuy nhiên, nếu bạn muốn ẩn nội dung của tệp / thư mục, bạn có thể làm như vậy với quyền truy cập tệp.
Vì vậy, giả sử bạn có một loạt các tệp trong một thư mục được gọi secret_stash
, bạn có thể thay đổi nó để chỉ bạn (chủ sở hữu) có r-x
(đọc, thực thi) và mọi người khác không có gì ---
(không có quyền truy cập). Vì r-x
là các phép tối thiểu cần thiết để xem một thư mục (đọc để truy cập nội dung của nó và thực thi để có thể nhìn thấy chúng), mọi thứ bên trong thư mục đó đều bị ẩn khỏi mọi người một cách hiệu quả root
.
LƯU Ý : Tôi đang chạy bản demo này root
và cố gắng truy cập vào thư mục dưới dạngmyuser
Để làm điều này, bạn chạy chmod 700 dirname
(700 phương tiện rwx------
):
% mkdir secret_stash
% chmod 700 secret_stash
Và đây là:
% whoami
root
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash
./ ../ secret.txt
% cat secret_stash/secret.txt
TOP SECRET DATA
Bây giờ và nếu tôi cố gắng truy cập nó từ myuser
, cố gắng truy cập vào thư mục hoặc nội dung của nó không thành công:
% whoami
myuser
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash
ls: cannot open directory secret_stash: Permission denied
% cat secret_stash/secret.txt
cat: secret_stash/secret.txt: Permission denied
Và bây giờ tôi đã nói từ "bí mật" rất nhiều lần nó mất hết ý nghĩa !!
chmod -R 000 secret_stash
sau đó sẽ không ai có thể đọc nó!
Tắt 1: nếu bạn muốn ẩn tệp khỏi bất kỳ ai: cài đặt hệ thống phát hiện xâm nhập linux . ( Snort là một ví dụ) Bạn thậm chí có thể ẩn một tệp khỏi "root" nhưng "root" cũng sẽ có thể hoàn nguyên các cài đặt đó.
Nhưng có thể dễ dàng hơn khi chỉ đặt quyền của thư mục chứa tệp thành "root". Thí dụ:
$ sudo su
# mkdir tmp/
# touch tmp/1
# chown root:root tmp
# chmod 000 tmp
# ls -l
total 4
d--------- 2 root root 4096 2015-08-07 06:36 tmp
# exit
exit
$ ls
tmp
$ cd tmp/
bash: cd: tmp/: Permission denied
Và các tập tin 1
được ẩn hiệu quả từ xem.
Thư mục sẽ được hiển thị; tập tin sẽ không được nhìn thấy. Mặc dù vậy: "root" sẽ LUÔN có quyền truy cập vào bất kỳ tập tin nào.
Cùng với chattr
bạn thậm chí có thể làm cho tập tin bất biến.
sudo su
chattr + i {file}
và thậm chí "root" không thể thay đổi tập tin -unless- the chattr
được hoàn nguyên (và có "root" có thể làm điều đó).
Bất kỳ bàn phím tắt cho điều đó?
Không, đây là điều bạn cần làm thủ công.
Ngoài ra còn có một phần mở rộng cho Nautilus được gọi là nautilus-hide sẽ cho phép bạn ẩn bất kỳ tệp hoặc thư mục nào bằng một cú nhấp chuột phải vào chúng.
Để cài đặt tiện ích mở rộng này:
sudo apt-get install nautilus-hide
trong một thiết bị đầu cuối hoặc tìm kiếm "ẩn nautilus" trong Trung tâm phần mềm Ubuntu.
Đừng quên thoát Nautilus sau khi cài đặt: Alt+ F2và nhập nautilus -q
.
'
cho tên tệp hoặc thư mục có chứa `` khoảng trống, thì không. Chỉ cần thêm tên tệp hoặc thư mục