1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Tìm hiểu thêm.

Quản lý thư mục và tập tin

Thảo luận trong 'Linux - Unix' bắt đầu bởi hungpt, 13/5/09. Trả lời: 4 Xem: 2,046.

Chia sẻ trang này

Thị Trường Xe Máy

  1. hungpt

    hungpt New Member
    New Member

    Tham gia ngày:
    13/5/09
    Bài viết:
    31
    Đã được thích:
    0
    I. Quyền sử dụng tập tin và thư mục
    - Tất cả các tập tin và thư mục của Linux đều có người sở hữu và quyền truy nhập. Có thể đổi các tính chất này cho phép nhiều hay ít quyền truy nhập hơn đối với một tập tin hay thư mục. Quyền của tập tin còn cho phép xác định tập tin có là một chương trình (application) hay không (khác với Windows xác định tính chất này qua phần mở rộng của tên tập tin). Dùng lệnh [FONT=&quot]ls – l[/FONT] (lệnh [FONT=&quot]ll[/FONT] là symbolic link đến [FONT=&quot]ls – l[/FONT]):
    Có 3 đối tượng chính là {[FONT=&quot]owner[/FONT], [FONT=&quot]group[/FONT], [FONT=&quot]other[/FONT]} và mỗi đối tượng ứng với 3 quyền cụ thể {[FONT=&quot]read[/FONT], [FONT=&quot]write[/FONT], [FONT=&quot]execute[/FONT]}.
    [FONT=&quot]r[/FONT]: Read ð Quyền đọc (không có quyền ghi/xóa)
    [FONT=&quot]w[/FONT]: Write ð Quyền ghi (hiệu chỉnh nội dung)
    [FONT=&quot]x[/FONT]: Execute ð Quyền thực thi (chạy chương trình)
    [FONT=&quot]-[/FONT]: None ð Không có quyền trên đối tượng

    1. Kiểu tập tin
    - Thể hiện bằng ký tự đầu tiên trong chuỗi thuộc tính của tập tin.

    [FONT=&quot]
    [/FONT]
    File thông thường (regular file) [FONT=&quot]-[/FONT]
    [FONT=&quot]
    [/FONT]
    Hard link [FONT=&quot]-[/FONT]
    [FONT=&quot]
    [/FONT]
    Thư mục [FONT=&quot]d[/FONT]
    [FONT=&quot]
    [/FONT]
    Link mềm (symbolic link) [FONT=&quot]l[/FONT]
    [FONT=&quot]
    [/FONT]
    Character (c) / Block device (b) [FONT=&quot]c/b[/FONT]
    [FONT=&quot]
    [/FONT]
    Domain socket [FONT=&quot]s[/FONT]
    [FONT=&quot]
    [/FONT]
    Named pipe [FONT=&quot]p[/FONT]
    Thư mục được gán sticky bit thì chỉ owner của tập tin và root mới được phép sửa, xóa file. Nhận diện thư mục có sticky bit [FONT=&quot]drwxr-xr-t[/FONT]: quyền thực thi của người dùng khác là [FONT=&quot]t[/FONT].

    2. Quyền truy cập tập tin
    - Quyền truy cập tập tin được thay đổi bằng lệnh [FONT=&quot]chmod[/FONT]: chú ý không thay đổi được quyền của symbolic link
    [FONT=&quot]chmod [-R] mode file ...[/FONT]

    Có hai phương pháp dùng [FONT=&quot]chmod[/FONT]: phương pháp tượng trưng và phương pháp tuyệt đối.
    - Phương pháp tượng trưng:
    Đối tượng truy nhập (Who)
    Một bộ:

    [FONT=&quot]u[/FONT] (user, tức owner)

    [FONT=&quot]g[/FONT] (group – nhóm)

    [FONT=&quot]o[/FONT] (other – người dùng còn lại)

    [FONT=&quot]a[/FONT] (all –tương đương [FONT=&quot]ugo[/FONT])

    Gán/thu hồi quyền (Operation)
    Có quyền:

    [FONT=&quot]=[/FONT] (gán quyền)

    [FONT=&quot]+[/FONT] (thêm quyền)

    [FONT=&quot]-[/FONT] (thu hồi quyền)

    Quyền (Permission)
    Một bộ:


    [FONT=&quot]r[/FONT] (read – đọc)

    [FONT=&quot]w[/FONT] (write - ghi)

    [FONT=&quot]x[/FONT] (execute – thực thi)

    hoặc một trong các đối tượng sau để sao chép quyền:

    [FONT=&quot]u[/FONT] (user, tức owner)

    [FONT=&quot]g[/FONT] (group – nhóm)

    [FONT=&quot]o[/FONT] (other – người dùng còn lại)

    để thiết lập user id, group id: [FONT=&quot]s[/FONT]

    Ví dụ:
    [FONT=&quot]$ chmod u+rx-w /tmp[/FONT]
    [FONT=&quot]$ chmod –R u+rwx,g+r-w,o-rwx /tmp[/FONT]
    [FONT=&quot]$ chmod a=rx abc.txt[/FONT]
    - Phương pháp tuyệt đối:
    Song song với cách ký hiệu miêu tả bằng ký tự như ở trên, quyền thao tác tập tin còn có thể cho dưới dạng 3 số, ví dụ quyền 644. Các số có thể nhận tất cả các giá trị từ 0 đến 7. Số đầu tiên miêu tả quyền của [FONT=&quot]owner[/FONT] (sở hữu), số thứ hai cho [FONT=&quot]group[/FONT] (nhóm) và số thứ ba cho [FONT=&quot]other[/FONT] (những người còn lại).
    Mỗi số là tổng của các quyền theo quy tắc sau :
    Quyền đọc 4
    Quyền ghi 2
    Quyền thực thi 1
     
    #1 hungpt, 13/5/09
    Last edited by a moderator: 13/5/09
    Tags: Không có
  2. hungpt

    hungpt New Member
    New Member

    Tham gia ngày:
    13/5/09
    Bài viết:
    31
    Đã được thích:
    0
    Kết hợp như sau (cho một đối tượng [FONT=&quot]u[/FONT], [FONT=&quot]o[/FONT] hoặc [FONT=&quot]g[/FONT])

    0 000 --- không có mọi quyền
    1 001 --x quyền thực thi
    2 010 -w- chỉ ghi (hiếm gặp)
    3 011 -wx ghi và thực thi (hiếm gặp)
    4 100 r-- chỉ đọc
    5 101 r-x đọc và thực thi
    6 110 rw- đọc và ghi
    7 110 rwx đọc, ghi và thực thi


    Ví dụ:
    [FONT=&quot]$ chmod 751 abc.txt[/FONT]
    có nghĩa là [FONT=&quot]owner[/FONT] có quyền [FONT=&quot]read[/FONT], [FONT=&quot]write[/FONT], và [FONT=&quot]execute[/FONT] (4+2+1=7), [FONT=&quot]group[/FONT] có quyền [FONT=&quot]read[/FONT][FONT=&quot]execute[/FONT] (4+1=5), và [FONT=&quot]other[/FONT] chỉ có quyền [FONT=&quot]execute[/FONT] (1). Xem cách tính toán sau:
    Owner
    r w x
    4 2 1
    7
    -------------------------------
    Group
    r w x
    4 0 1
    5
    -------------------------------
    Other
    r w x
    0 0 1
    1
    -------------------------------
    Gán bit sticky cho thư mục theo mẫu [FONT=&quot]0xxx[/FONT] như sau:
    [FONT=&quot]$ mkdir test[/FONT]
    [FONT=&quot]$ chmod -R 1777 test[/FONT]
    [FONT=&quot]$ ls –l[/FONT]
    [FONT=&quot]drwxwrxrwt 2 s01 student 40 Apr 12 16:00 test[/FONT]
    - Các quyền là mặc định khi tạo tập tin. Khi một tập tin hay thư mục được tạo ra, quyền mặc định sẽ được xác định bởi các quyền 666 trừ bớt các quyền hiển thị bằng lệnh [FONT=&quot]umask[/FONT]. Quyền cao nhất ở đây là 666 do quyền thực thi chương trình cần được gán cố ý bởi người sử dụng hay các chương trình biên dịch.
    [FONT=&quot]umask [-S] mode[/FONT]

    [FONT=&quot]$ umask [/FONT]
    [FONT=&quot]002 [/FONT]
    [FONT=&quot]$ echo tao mot file > tmp [/FONT]
    [FONT=&quot]$ ls -l [/FONT]
    [FONT=&quot]total 5472 [/FONT]
    [FONT=&quot]-rw-rw-r-- 1 s01 student 12 Apr 3 21:55 tmp[/FONT]Quyền 664
    [FONT=&quot]$ umask 022 [/FONT]
    [FONT=&quot]$ echo tao mot file khac > tmp1 [/FONT]
    [FONT=&quot]$ ls -l [/FONT]
    [FONT=&quot]-rw-rw-r-- 1 s01 student 12 Apr 3 21:55 tmp [/FONT]
    [FONT=&quot]-rw-r--r-- 1 s01 student 12 Apr 3 21:59 tmp1[/FONT]Quyền 644
    Giá trị mặc định của các quyền thường được gán mỗi khi người sử dụng login vào hệ thống thông qua các tập tin ẩn khởi tạo biến môi trường như [FONT=&quot].profile[/FONT], [FONT=&quot].bashrc[/FONT]. Đứng trên quan điểm bảo mật hệ thống, giá trị 027 là tốt nhất, nó cho người cùng nhóm có quyền đọc và không cho quyền nào với những người khác.

    3. Số liên kết
    [​IMG]- Một symbolic link là một tập tin chỉ đến một tập tin hay một thư mục khác, giống như là một bí danh (alias) của tập tin hay thư mục khác. Giống shortcut trong Windows, symbolic link cho phép truy xuất tập tin và thư mục nhanh chóng ở mọi nơi.
    [FONT=&quot]$ ls –l /etc/init.d[/FONT]
    [FONT=&quot]lrwxrwxrwx 1 root root 11 Feb 27 12:52 /etc/init.d -> rc.d/init.d[/FONT]
    - Một hard link là một tên khác của một tập tin (không tạo được với thư mục).
    - Tạo hard link / symbolic link
    [FONT=&quot]ln [options] sources destination[/FONT]

    Trường hợp [FONT=&quot]sources[/FONT] gồm nhiều tập tin, [FONT=&quot]destination[/FONT] phải là một thư mục.
    Không tạo được hard link cho thư mục mà chỉ tạo được hard link trên cùng partion.
    Khi tạo symbolic link, [FONT=&quot]sources[/FONT][FONT=&quot]destination[/FONT] phải chỉ ra theo đường dẫn tuyệt đối
    Ví dụ:
    [FONT=&quot]$ ln saleha saleba [/FONT]
    [FONT=&quot]$ ln –sb /sales/mach /dept/mach[/FONT]
     
    #2 hungpt, 13/5/09
    Last edited by a moderator: 13/5/09
  3. hungpt

    hungpt New Member
    New Member

    Tham gia ngày:
    13/5/09
    Bài viết:
    31
    Đã được thích:
    0
    II. Tác vụ trên tập tin và thư mục
    1. Tập tin
    a) Sao chép tập tin (copy)
    [FONT=&quot]cp [options] source destination[/FONT]
    [FONT=&quot]cp [options] source ... directory[/FONT]

    Trường hợp [FONT=&quot]source[/FONT] gồm nhiều tập tin, [FONT=&quot]destination[/FONT] phải là một thư mục
    Ví dụ:
    [FONT=&quot]$ cp -l saleha saleba (~ ln ) [/FONT]
    [FONT=&quot]$ cp -s /sales/mach /dept/mach (~ ln -s)[/FONT]
    [FONT=&quot]$ cp –r /sales /salebk/[/FONT]
    [FONT=&quot]$ cp –u /sales /dept[/FONT]

    b) Di chuyển tập tin (move)
    [FONT=&quot]mv [options] source destination[/FONT]
    [FONT=&quot]mv [options] source ... directory[/FONT]

    Trường hợp [FONT=&quot]source[/FONT] gồm nhiều tập tin, [FONT=&quot]destination[/FONT] phải là một thư mục
    Ví dụ:
    [FONT=&quot]$ mv –f *.txt /tmp[/FONT]
    [FONT=&quot]$ mv -u /sales/* /backup[/FONT]
    [FONT=&quot]$ mv -b abc.txt xyz.dat[/FONT]

    c) Tìm kiếm tập tin (find)
    [FONT=&quot]find [path] criteria[/FONT]

    Tự động thực hiện tìm kiếm trong các thư mục con.
    Ví dụ:
    [FONT=&quot]$ find –name '*.txt'[/FONT]
    [FONT=&quot]$ find /tmp -size +50k[/FONT]
    [FONT=&quot]$ find /doc -size -100c[/FONT]
    [FONT=&quot]$ find –mtime +5 -type l[/FONT]
    [FONT=&quot]$ find –mtime 8[/FONT]
    [FONT=&quot]$ find –newer abc.txt –type d[/FONT]

    d) Xác định vị trí tập tin chương trình
    [FONT=&quot]whereis [options] application[/FONT]
    [FONT=&quot]which [command][/FONT]

    Ví dụ:
    [FONT=&quot]$ whereis –b apache[/FONT]
    [FONT=&quot]$ whereis –s iptables[/FONT]
    [FONT=&quot]$ whereis -m samba[/FONT]

    e) So sánh tập tin (compare)
    Kiểm tra nội dung hai tập tin có giống nhau không?
    [FONT=&quot]cmp [-l] file1 file2[/FONT]

    Ví dụ:
    [FONT=&quot]$ cmp -l abc.txt xyz.txt
    2 141 145
    9 12 62 [/FONT]

    Tìm sự khác nhau giữa hai tập tin (difference):
    [FONT=&quot]diff [options] file1 file2[/FONT]

    Ví dụ:
    [FONT=&quot]$ diff -iw –-ignore-blank-lines abc.txt xyz.txt[/FONT]
    [FONT=&quot]$ diff -r /source /backup[/FONT]
    [FONT=&quot]$ diff -c abc xyz[/FONT]

    f) Xem nội dung tập tin
    - Xem nội dung tập tin text
    [FONT=&quot]more files[/FONT]
    [FONT=&quot]less files[/FONT]

    Lệnh tương tác tương tự như [FONT=&quot]vi[/FONT]. [FONT=&quot]less[/FONT] cho phép sử dụng các phím mũi tên để cuốn nội dung. Để thoát, lệnh [FONT=&quot]q[/FONT].
    - Xem những dòng đầu tập tin
    [FONT=&quot]head [-n] [files][/FONT]

    Xem những dòng cuối tập tin
    [FONT=&quot]tail [-n] [files][/FONT]

    [FONT=&quot]n[/FONT] là số dòng muốn xem, mặc định là 10.
     
  4. hungpt

    hungpt New Member
    New Member

    Tham gia ngày:
    13/5/09
    Bài viết:
    31
    Đã được thích:
    0
    [FONT=&quot]$ head -30 /var/log/message[/FONT]
    [FONT=&quot]$ tail /var/log/boot[/FONT]
    [FONT=&quot]$ head -20 mydoc | tail -6[/FONT]
    - Xem / kết hợp / tạo tập tin
    [FONT=&quot]cat [files][/FONT]

    Ví dụ:
    [FONT=&quot]$ cat /var/log/messages[/FONT]
    [FONT=&quot]$ cat /var/log/boot | more[/FONT]
    [FONT=&quot]$ cat file1 file2 file3 > mydoc[/FONT]
    [FONT=&quot]$ cat > /tmp/log.txt[/FONT]
    Khi nhập nội dung, E nter để xuống dòng, Ctrl+d (dùng putty,: Ctrl+c) để kết thúc và ghi lại.
    - Đếm số từ, số dòng, … (word count)
    [FONT=&quot]wc [-w|-l|-c|-L] [files][/FONT]

    Ví dụ:
    [FONT=&quot]$ wc –l myfile[/FONT]
    [FONT=&quot]$ wc myfile mail.txt[/FONT]
    [FONT=&quot] 4 11 48 myfile
    574 3678 29372 mail.txt
    578 3689 29420 total[/FONT]

    (số dòng) (số dòng) (kích thước, bytes)

    2. Thư mục
    Linux, không có khái niệm ổ đĩa. Toàn bộ các thư mục và tập tin được "gắn" lên (mount) và tạo thành một hệ thống tập tin thống nhất, bắt đầu từ gốc "/’"
    Tổ chức cây thư mục của Linux như sau:
    [FONT=&quot]/[/FONT] (root: duy nhất, nơi các hệ thống tập tin phải gắn vào)
    _[FONT=&quot]dev [/FONT]Chứa các tập tin đại diện thiết bị
    _[FONT=&quot]etc[/FONT] Chứa các tập tin cấu hình hệ thống
    _[FONT=&quot]var[/FONT] Chứa các tập tin nhật ký (log), hàng đợi các chương trình, mailbox của các user
    _[FONT=&quot]lib[/FONT] Chứa các thư viện chương trình hệ thống, dùng chung cho các tập tin nhị phân trong [FONT=&quot]/bin[/FONT][FONT=&quot]/sbin[/FONT]
    _[FONT=&quot]proc [/FONT]Hệ thống tập tin giả, chứa thông tin tiến trình
    _[FONT=&quot]sbin[/FONT] Chứa các chương trình quản trị hệ thống
    _[FONT=&quot]usr[/FONT] Chứa các chương trình dùng chung của người dùng
    _[FONT=&quot]root[/FONT] Thư mục tiếp nhận của root
    _[FONT=&quot]tmp[/FONT] Chứa các tập tin tạm thời
    _[FONT=&quot]home [/FONT]Chứa các thư mục tiếp nhận của người dùng
    _[FONT=&quot]mnt[/FONT] Chứa các mounted point

    a) Xem đường dẫn hiện hành (print working directory)
    [FONT=&quot]pwd [-L | -P][/FONT]


    b) Chuyển thư mục (change directory)
    [FONT=&quot]cd [options] [directory][/FONT]

    Ví dụ:
    [FONT=&quot]$ cd /etc[/FONT]
    [FONT=&quot]$ cd ~[/FONT]
    [FONT=&quot]$ cd ..[/FONT]

    c) Xem nội dung thư mục (list)
    [FONT=&quot]ls [options] [file][/FONT]

    Tùy chọn
    Ý nghĩa
    [FONT=&quot]-L[/FONT] Hiển thị danh sách tập tin (chỉ hiện thị tên).
    [FONT=&quot]-l[/FONT] Hiển thị danh sách tập tin đầy đủ chi tiết.
    [FONT=&quot]-a[/FONT] (all) Liệt kê tất cả các tập tin, bao gồm những tập tin ẩn.
    [FONT=&quot]-R[/FONT] (recursive) Liệt kê tất cả các tập tin, kể cả các tập tin bên trong thư mục con.

    Ví dụ:
    [FONT=&quot]$ ls -a /doc[/FONT]
    [FONT=&quot]$ ls -R /etc[/FONT]
    [FONT=&quot]$ ls -l[/FONT]

    d) Tạo thư mục (make directory)
    [FONT=&quot]mkdir [-p] directoy ...[/FONT]


     
    #4 hungpt, 13/5/09
    Last edited by a moderator: 13/5/09
  5. hungpt

    hungpt New Member
    New Member

    Tham gia ngày:
    13/5/09
    Bài viết:
    31
    Đã được thích:
    0
    [FONT=&quot]$ mkdir /tmp/Y2K[/FONT]
    [FONT=&quot]$ mkdir /tmp/Y2K/sale /tmp/Y2K/sale/Jul[/FONT]
    [FONT=&quot]$ mkdir –p /tmp/Y2K/sale/Jul[/FONT]

    e) Xóa tập tin/thư mục (remove directory)
    Xóa thư mục: Chỉ xóa được thư mục rỗng.
    [FONT=&quot]rmdir [-p] directory ...[/FONT]

    Ví dụ:
    [FONT=&quot]$ mkdir –p /tmp/Y2K/sale/Jul[/FONT]
    Xóa tập tin:
    [FONT=&quot]rm [-rf] file ...[/FONT]

    Ví dụ:
    [FONT=&quot]$ rm –rd /tmp/Y2K[/FONT]
     

Chia sẻ trang này

Users Viewing Thread (Users: 0, Guests: 0)