














Preview text:
lOMoAR cPSD| 58488183 THỰC HÀNH BUỔI 5:
Bài tập 1: Cho biết thư mục home của người dùng hiện đang làm việc và mô tả các quyền trên thư
mục home của người dùng đó (sinh viên cần chỉ ra chi tiết mục từ của thư mục home). Trả lời:
Thư mục home của người dùng hiện tại đang làm việc là:
Các quyền trên thư mục home của người dùng:
- Nhóm người sở hữu có quyền đọc, ghi và thực thi (wxr).
- Nhóm có quyền đọc, thực thi (xr).
- Người dùng khác có quyền thực thi (x).
- Student: Tên người sở hữu.
- Student: Tên nhóm người sở hữu.
- 4096: Kích thước của thư mục.
- Thg 1 11 13:11: Thời gian sửa đổi lần cuối.
Bài tập 2: Liệt kê tên tất cả các thư mục dưới /. Mô tả nội dung và các quyền trên từng thư mục
(sinh viên cần chỉ ra chi tiết mục từ của từng thư mục). Trả lời:
Ở cột đầu tiên chỉ các quyền trên thư mục
Cột thứ 2 chỉ số liên kết
Cột thứ 3 là tên chủ sở hữu
Cột thứ 4 là nhóm sở hữu
Cột thứ 5 là thời điểm sửa đổi cuối cùng Cột
cuối là tên thư mục, tập tin.
Bài tập 3: Hãy giải thích chi tiết mục từ thư mục: drwxr-xr-- 2 abc users 1024 Mar 7 12:35 ddd Trả lời: lOMoAR cPSD| 58488183 - d: Thư mục (directory).
- rwx: Quyền của chủ sở hữu (owner). r là quyền đọc, w là quyền ghi, và x là quyền thực thi (truy cập thư mục).
- r-x: Quyền của nhóm (group). Nhóm này có quyền đọc (r) và thực thi (x), nhưng không có quyền ghi (w).
- r-x: Quyền của người dùng khác (others). Người dùng khác có quyền đọc (r) và thực thi (x),
nhưng không có quyền ghi (w).
- 2: Số lượng liên kết đến thư mục.
- abc: Tên người sở hữu thư mục.
- users: Nhóm của người sở hữu thư mục.
- 4096: Kích thước của thư mục
- Mar 7 12:35 : Thời gian thư mục được thay đổi lần cuối
Bài tập 4: Trong hệ thống tập tin linux, thư mục nào có chứa các tập tin cấu hình hệ thống ? Trả
lời: Thư mục /etc: thư mục /etc chứa các tệp cấu hình cho các ứng dụng và dịch vụ trên hệ thống.
Các tệp cấu hình này kiểm soát hành vi của hệ thống và các ứng dụng trong suốt quá trình hoạt động.
Bài tập 5: Cho biết tên của hai thư mục trong hệ thống tập tin linux có chứa các tập tin thư viện lệnh ? Trả lời:
/lib: Chứa các thư viện hệ thống cơ bản.
/usr/lib: Chứa các thư viện cho các phần mềm và ứng dụng đã được cài đặt thêm vào hệ thống.
Bài tập 6: Hãy cho biết sự khác nhau giữa thư mục / (mà nó được gọi là thư mục gốc - root) và thư mục /root ?
Trả lời: / là thư mục gốc của hệ thống tệp, còn /root là thư mục home của người dùng quản trị root. /
(Root Directory): thư mục gốc của hệ thống tệp, chứa tất cả các thư mục con quan trọng của hệ thống
như /bin, /etc, /home, /usr, v.v. Đây là thư mục cao nhất trong hệ thống tệp.
/root: Là thư mục home của người dùng root (siêu người dùng). Đây là nơi lưu trữ các tệp cá nhân và
cấu hình của người dùng root. Thư mục này chỉ có thể truy cập bởi người dùng root.
Bài tập 7: Hiển thị thư mục hiện hành của người dùng, sau đó thực hiện tuần tự các lệnh sau và
cho biết tên thư mục hiện hành tương ứng: Trả lời:
- Pwd: hiển thị đường dẫn hiện hành. /home/student/b2107120
- cd ~: Chuyển đến thư mục home của người dùng. /home/student
- cd .: Giữ nguyên thư mục hiện tại. /home/student
- cd ..: Di chuyển lên một cấp thư mục cha. /home
- cd ten_tai_khoan_login: Chuyển đến thư mục con ten_tai_khoan_login (nếu có).
Bài tập 8: Giả sử thư mục hiện hành là /var/spool. Hãy cho biết tên thư mục tương ứng khi
thực hiện tuần tự các lệnh sau: cd mail cd ../../spool/mail Trả lời: Sau khi thực hiện các lệnh sau: lOMoAR cPSD| 58488183
cd mail: Di chuyển vào thư mục /var/spool/mail. cd ../../spool/mail: Di chuyển lên hai
cấp thư mục (từ /var/spool/mail lên /var, rồi xuống /var/spool/mail).
Kết quả: Thư mục hiện hành cuối cùng là /var/spool/mail.
Bài tập 9: Chuyển đến thư mục /var và trả lời các câu hỏi sau:
1. Có bao nhiêu thư mục con dưới var ?
2. Thử xem nội dung thư mục /sbin, thông báo gì được hiển thị ? tại sao ?
3. Tạo thư mục mới userxxx là thư mục con của var, thông báo gì được hiển thị ? tại sao ?
4. Chuyển đến thư mục home của người dùng và tạo một thư mục con ddddd (ddddd là mã số
của sinh viên), thông báo gì được hiển thị ? tại sao ?
5. Chuyển đến thư mục ddddd và tạo một tập tin mới fffff với nội dung “This is a message”. Cho biết kết quả
6. Vẫn ở trong thư mục ddddd. Thực hiện xóa thư mục ddddd dùng câu lệnh rmdir, thông báo
gì được hiển thị ? tại sao ? Trả lời:
1. Có 9 thư mục con ở dưới var.
2. Thư mục này chứa các tệp nhị phân của hệ thống.
3. Thông báo “Permission denied”, quyền truy cập bị từ chối vì var là thư mực hệ thống, người
dùng bình thường sẽ không truy cập sửa đổi được.
4. Không có thông báo, vì người dùng hiện tại được phép tạo thư mục con ở thư mục home. lOMoAR cPSD| 58488183
5. Có thể truy cập và tạo tập tin, gọi tập tin hoàn toàn bình thường, vì người dùng hiện tại có
toàn quyền trên thư mục home.
6. Dòng thông báo không tìm thấy thư mục hoặc tập tin, vì vị trí hiện tại là thư mực b2107120a.
Bài tập 10: Liệt kê tất cả các tập tin trong thư mục home của người dùng hiện đang làm việc và cho biết các tập tin ẩn.
Trả lời: Các tập tin ẩn trong Linux/Unix có tên bắt đầu bằng dấu chấm (.), ví dụ
như .bashrc, .profile, .gitconfig, v.v. Chúng là các tập tin cấu hình hoặc các thư mục cấu hình ẩn của người dùng
Bài tập 11: Thực hiện các yêu cầu sau:
1. Hiển thị 4 dòng cuối của tập tin /etc/passwd
2. Hiển thị 6 dòng cuối của tập tin /etc/group
3. Hiển thị 8 dòng cuối của tập tin /etc/login.defs
4. Hiển thị 20 dòng cuối của tập tin /etc/login.defs và cho nhận xét Trả lời: lOMoAR cPSD| 58488183 Nhận xét: -
Kết quả bạn nhận được cho thấy một đoạn ghi chú liên quan đến các tùy chọn đã lỗi thời: # CFHN_AUTH # FAIL_DELAY -
Phần thông báo ghi chú cho biết rằng những tùy chọn này đã lỗi thời và hiện không còn được
xử lý bởi shadow utilities.
Bài tập 12: Giả sử người dùng hiện ở tại thư mục home của mình, lần lượt thực hiện các yêu cầu sau: 1.
Sử dụng câu lệnh touch để tạo 7 tập tin : one, two, three, four, five, r1 và
r2. Liệt kê thư mục để đảm bảo rằng việc tạo là thành công. Cho biết quyền trên các tập tin. 2.
Cũng với yêu cầu như câu 1 nhưng các tập tin được tạo trong thư mục
/var.Cho biết kết quả thực hiện. So sánh với kết quả câu 1 và giải thích. 3.
Làm một bản sao của tập tin .bash_profile được gọi là bprofile. Kiểm tra lại nộidung thư mục. 4.
Tạo một liên kết có tên lbprofile mà nó trỏ đến tập tin bprofile. Cho biết
sựkhác biệt giữa lbprofile và bprofile. 5.
Chép 7 tập tin trên đến thư mục /tmp. Kiểm tra lại nội dung thư mục /tmp6.
Chép 7 tập tin trên đến thư mục /root. Kết quả thực hiện. So sánh với kết quả câu 5 và giải thích.
7. Chép tập tin /etc/passwd đến thư mục home của mình. So sánh quyền tương táctrên
tập tin passwd vừa được sao chép với tập tin /etc/passwd. Giải thích.
8. Tạo 2 thư mục con dir1 và dir2. Sau đó tạo thư mục con dir2a trong thư mụcdir2.
Cho biết quyền trên các thư mục.
9. Chuyển tập tin one đến thư mục dir1. Kiểm tra kết quả thực hiện
10.Dùng một câu lệnh đơn để chuyển tất cả các tập tin mà có ký tự đầu tiên là “f” đến
thư mục dir2. Kiểm tra lại thư mục dir2
11.Dùng một câu lệnh đơn để chuyển hai tập tin r1và r2 đến thư mục dir2a (không
dùng ký tự đại diện *,?). Kiểm tra lại thư mục dir2a 12.Xóa thư mục dir2a Trả lời: lOMoAR cPSD| 58488183
1. Các tập tin đều có chung quyền đọc ghi cho người sở hữu, quyền đọc ghi cho nhóm người sở
hữu và quyền đọc cho người dùng khác.
2. Không thể tạo các tập tin vì ở người dùng hiện tại không có đủ quyền để tạo tập tin trên var.
(Dưới đây là ảnh bổ sung ý “kiểm tra lại thư mục” của câu 3, được chụp sau khi hoàn thành câu 4)
3. Tạo bản sao và kiểm tra lại thư mục.
4. lbprofile là liên kết mềm (symbolic link), chỉ trỏ đến bprofile.bprofile là tập tin thực tế.
5. Chép 7 tập tin đến thư mục /tmp và kiểm tra. lOMoAR cPSD| 58488183
6. Quyền truy cập bị từ chối do người dùng hiện tại không có đủ quyền để chép 7 tập tin lên thư mục root
7. Thư mục /etc/passwd là thuộc sở hữu người dùng root, còn thư mục vừa tạo là người dùng student.
8. Cả 2 thư mục điều có quyền đọc ghi thực thi cho người sở hữu, quyền đọc ghi thực thi cho
nhóm người sở hữu và quyền thực thi cho các người dùng khác.
9. Chuyển tập tin one đến dir1 và kiểm tra lại.
10. Dùng một câu lệnh đơn chuyển tất cả tập tin có kí hiệu bắt đầu là ‘f’ vào dir2 và kiểm tra.
11. Chuyển r1 r2 vào dir2a và kiểm tra. 12. Xóa thư mục dir2a.
Bài tập 13: Chuyển đến thư mục home của người dùng, tuần tự thực hiện các câu lệnh sau:
1. Tạo chương trình (script) hello với nội dung : print “Hello” print “How are you ?”
2. Tạo chương trình reply với nội dung : print “Hello” print “Fine. And you ?”
3. Xem các quyền trên các tập tin trên
4. Chạy 2 chương trình trên. Cho biết kết quả và nhận xét lOMoAR cPSD| 58488183
5. Cấp quyền thực thi cho 2 chương trình trên. Chạy lại chúng, cho biết kết quảvà nhận xét
6. Bỏ các quyền thâm nhập tới hello và reply của những người cùng nhóm
(group) và của những người khác (other)
7. Thay đổi quyền thâm nhập sao cho những người cùng nhóm có khả năng đọcvà
chạy các tập tin hello và reply.
8. Hãy thử thay đổi người hoặc nhóm sở hữu của tập tin trên (hello hoặc reply).
Sau đó xóa tập tin trên. Cho biết kết quả và giải thích.
9. Tạo tập tin mới có tên hello1. Nội dung tập tin : echo Hello1. Sau đó sửaquyền
thâm nhập để cho phép người dùng hiện đang làm việc có thể chạy được. Điều
gì xảy ra nếu như một người dùng khác chạy tập tin hello1 đó. Cho biết kết quả và giải thích.
10.Để tập tin hello1 có thể chạy được bởi người dùng nào đó trong hệ thống (user1
chẳng hạn) thì cần có điều kiện gì ? Đưa ra các giải pháp có thể.
11.Để người dùng nào đó trong hệ thống (user1 chẳng hạn) cấp quyền thực thi cho
người dùng khác (user2 chẳng hạn) thì đòi hỏi người dùng user1 cần có những quyền
gì ? Đưa ra giải pháp cụ thể (các câu lệnh để thực hiện).
12.Đổi tên tập tin hello1 thành rm. Thực hiện việc xóa một tập tin nào đó đang tồn tại
(hello chẳng hạn). Điều gì sẽ xảy ra ? giải thích. Trả lời:
1. Tạo chương trình hello
2. Tạo chương trình reply
3. Các quyền của hello và reply
4. Tập tin hello và reply chỉ có quyền đọc và ghi (rw-) cho người sở hữu, không có quyền thực
thi (x), vì vậy không thể chạy được.
5. Cấp quyền thực thi cho 2 tập tin và chương trình đã có thể chạy. lOMoAR cPSD| 58488183
6. Bỏ quyền của nhóm người dùng và người dùng khác.
7. Cấp quyền đọc và thực thi cho người dùng cùng nhóm. 8. …
9. Người dùng khác có thể không có quyền truy cập hoặc thực thi nếu không được cấp quyền phù hợp.
10. Để hello1 có thể chạy bởi user1: Cấp quyền thực thi cho other: chmod o+x hello1
11. Để user1 cấp quyền cho user2: user1 cần có quyền sở hữu hoặc quyền sudo. Lệnh cụ thể: sudo
chmod u+x /home/user1/hello1 sudo setfacl -m u:user2:x /home/user1/hello1
12. Hoàn toàn không có vấn đề nào xảy ra, nhưng yêu cầu cần phải phân biệt rõ lệnh rm để tránh
nhầm lẫn gọi nhầm tên tệp.
Bài tập 14: Phân biệt các lệnh more, less, head, tail và cat. Cho ví dụ minh họa Trả lời:
- Cat: Hiển thị toàn bộ nội dung
- More: Xem nội dung theo trang
- Less: Xem nội dung với điều hướng đầy đủ
- Head: Hiển thị các dòng đầu tiên
- Tail: Hiển thị các dòng cuối cùng
Bài tập 15: Sử dụng lệnh find để thực hiện các yêu cầu sau: 1.
Tìm tất cả các tập tin có phần mở rộng .html lOMoAR cPSD| 58488183 2.
Tìm tất cả các tập tin thuộc về người dùng root
Sử dụng lệnh find / -type f –user root 3.
Tìm thư mục có tên là lib trong thư mục /usr 4.
Đưa ra một ví dụ về lệnh find mà khi thực hiện nó sẽ hiển thị thông báo lỗi: "permission denied". Giải thích. lOMoAR cPSD| 58488183
Vì những tập tin này thuộc quyền sở hữu người dùng root nên người dùng bình thường truy cập sẽ có thông báo như trên 5.
Liệt kê tất cả các tập tin mà chúng bị sữa đổi cách đây không quá 1 ngày
Sử dụng lệnh find / -type f –mtime -1 6.
Liệt kê tất cả các thư mục rỗng
Bài tập 16: Sử dụng lệnh grep thực hiện các yêu cầu sau:
1. Hiển thị số dòng và các dòng của tập tin /etc/passwd mà có chứa chuỗi root
2. Hiển thị số dòng và các dòng của tập tin /etc/passwd mà không chứa chuỗi root lOMoAR cPSD| 58488183
3. Liệt kê các tập tin trong thư mục /etc/init.d mà có chứa chuỗi echo
4. Hiển thị các dòng trong tập tin /etc/login.defs mà không là các dòng chú thích
5. Hiển thị danh sách người dùng mà tập tin shell khi đăng nhập của họ là/bin/bash lOMoAR cPSD| 58488183
Bài tập 17: Giả sử người dùng hiện đang ở tại thư mục home của mình, sử dụng lệnh linux để thực hiện các yêu cầu sau:
1. Lưu danh sách các thư mục con trong thư mục hiện hành vào tập tin one. Sauđó kiểm tra lại nội dung tập tin one.
2. Hiển thị danh sách người dùng đã đăng nhập ra màn hình đồng thời lưu danhsách đó vào tập tin
users. Sau đó kiểm tra lại nội dung tập tin users.
3. Hiển thị tất cả các tiến trình hiện đang chạy đồng thời lưu những thông tin đóvào cuối tập tin users.
4. Hiển thị nội dung thư mục /etc theo từng trang
5. Đếm số byte, số từ (word) và số dòng (line) trong tập tin /etc/passwd lOMoAR cPSD| 58488183
6. Sắp xếp nội dung tập tin /etc/group
7. Hiển thị nội dung thư mục var/spool/mail được sắp xếp theo kích thước
8. Liệt kê các dịch vụ sử dụng giao thức tcp
9. Nhập vào một danh sách họ tên sinh viên từ bàn phím đồng thời lưu danh sáchđó đã được sắp xếp
vào tập tin students. Kiểm tra lại nội dung tập tin students
Bài tập 18: Tạo tập tin “commands” trong thư mục home của người dùng có nội dung như sau: cal /usr/bin 9416 date /bin 2860 who lOMoAR cPSD| 58488183 /usr/bin 8692 cat /bin 18056 lpd /usr/sbin 42012
Sau đó thực hiện các yêu cầu:
1. Giải thích output của pipeline khi thực thi lệnh : sort -r commands | head -1.
Giải thích: sort -r commands: Lệnh này sắp xếp nội dung của tập tin commands theo thứ tự giảm dần
(reverse) dựa trên thứ tự từ điển của các dòng.
head -1: Lệnh này lấy dòng đầu tiên từ kết quả đã sắp xếp.
2. Giải thích output của pipeline khi thực thi lệnh : grep ^c commands | wc –l
Giải thích: grep ^c commands: Lệnh này tìm các dòng trong tập tin commands bắt đầu bằng ký tự c
(dấu ^ có nghĩa là "bắt đầu dòng").
wc -l: Lệnh này đếm số dòng tìm được.
3. Giải thích output của pipeline khi thực thi lệnh : grep at commands | sort | head -1
Giải thích: grep at commands: Lệnh này tìm các dòng trong tập tin commands có chứa chuỗi at.
sort: Lệnh này sắp xếp các dòng kết quả theo thứ tự từ điển tăng dần. head -1: Lấy dòng đầu tiên
từ kết quả đã sắp xếp.